Commit Graph

7220 Commits (862bfc53d3aea7be062bcfbc0deda37f5770159e)
 

Author SHA1 Message Date
Rokas Kupstys b3576dd354 Replace UTF-8 decoder with branchless version by Christopher Wellons.
Decoding performance increase ranges from 30-40%.

Changes:
* Errors handling near the end of string changed. If input does not contain enough bytes, decoder returns `IM_UNICODE_CODEPOINT_INVALID`, consuming all remaining bytes while old decoder consumed only one byte.

Guarantees:
* At least one byte is consumed, if input had at least one byte available.
* Number of consumed bytes will never seek past end of string.

Requirements:
* `in_text` is a valid pointer.
* String pointed by `in_text` must be zero-terminated, or `in_text_end` is not NULL.
Warren Moore bca4749346 Examples: Apple: Consolidated example_apple_metal to reduce class and file count (, )
ocornut 5292320110 Amend ffe8f0177f () + readme fixes
Louis Schnellbach ffe8f0177f Backends: OpenGL3: Backup/restore GL_PRIMITIVE_RESTART state ()
Bill Six acb8ef2006
Examples: Vulkan: Fixed CMake include path. ()
The backends directory was not included, so the build was failing.
ocornut 455c21df71 Merge branch 'master' into docking + dockspace demo comments
# Conflicts:
#	backends/imgui_impl_opengl3.cpp
#	docs/CHANGELOG.txt
#	imgui_internal.h
#	imgui_widgets.cpp
ocornut e6b99a420b Tab Bar: Do not display a tooltip if the name already fits over a given tab. ()
ocornut fbe74ed50c Tab Bar: zero clear more structures.
ocornut 8c9b3c9013 Tab Bar: Fixed using more than 128 tabs in a tab bar.
Using ImS16 consistently + some better packing to avoid struct growing size.
ocornut 748bd1ba9c Tab Bar: Restore cursor position in EndTabBar() when amending (amend f2f32602) + made LastTabItemIdx consistent ImS8 as other tab storage relies on same type
Black Cat! c9fafd5ea4 Drag and Drop: Fix drag and drop to tie same-size drop targets by choosen the later one. Fixes dragging into a full-window-sized dockspace inside a zero-padded window. (, )
ocornut d015004f45 Rename colored>color in comments where possible ()
xndcn 127f132447 Backends: OpenGL3: Add compatibility of GL_VERSION for GL 2.x ()
GL_MAJOR_VERSION and GL_MINOR_VERSION are available on GL 3.0 and above.
So we have to parse GL_VERSION under GL 2.x
ocornut 31a144b60c Fix comments ()
ocornut d3a80d9f1b Internals: Docking: More fixes to make DockNodeBeginAmendTabBar() viable (probably some issues left)
ocornut b26f1530b7 Internals: Docking, Tab Bar: Add DockNodeBeginAmendTabBar() and work toward making hybrid dock node with windows tab bars somehow work (not done).
ocornut bae2240eda Tab Bar: Made it possible to append to an existing tab bar by calling BeginTabBar()/EndTabBar() again.
# Conflicts:
#	imgui_widgets.cpp
ocornut f2f326024c Tab Bar: Made it possible to append to an existing tab bar by calling BeginTabBar()/EndTabBar() again.
ocornut 042a3b01d2 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_dx10.cpp
#	backends/imgui_impl_dx10.h
#	backends/imgui_impl_vulkan.h
#	backends/imgui_impl_win32.cpp
#	docs/CHANGELOG.txt
#	examples/README.txt
#	examples/example_glfw_opengl2/main.cpp
#	examples/example_glfw_opengl3/main.cpp
#	examples/example_glfw_vulkan/main.cpp
#	examples/example_sdl_directx11/main.cpp
#	examples/example_sdl_opengl2/main.cpp
#	examples/example_sdl_opengl3/main.cpp
#	examples/example_sdl_vulkan/main.cpp
#	examples/example_win32_directx10/main.cpp
#	examples/example_win32_directx11/main.cpp
#	examples/example_win32_directx12/main.cpp
#	examples/example_win32_directx9/main.cpp
#	imgui.cpp
#	imgui.h
#	imgui_demo.cpp
#	imgui_internal.h
ocornut b1a18d82e3 Moving backends code from examples/ to backends/ (step 6: update markdown documentation)
ocornut a2a3d80f04 Moving backends code from examples/ to backends/ (step 5: move documentation to MD files)
ocornut a2d845f9dd Moving backends code from examples/ to backends/ (step 4: update documentation, much improvement)
ocornut a7e21fb05f Moving backends code from examples/ to backends/ (step 3: fixing project files)
ocornut 428f4fce70 Moving backends code from examples/ to backends/ (step 2: moving vulkan cruft)
ocornut d9b2fb7338 Moving backends code from examples/ to backends/ (step 1: moving source files)
ocornut 124c2608f1 Docs: Renamed all occurences of "binding" and "back-end" to "backend" in comments and documentations, for consistency.
ocornut 041ef01b33 Removed redirecting functions/enums names that were marked obsolete in 1.61: InputFloat, InputFloat2, InputFloat3, InputFloat4 with int decimal_precision parameter. (, )
ocornut 0f13fdd177 Removed redirecting functions/enums names that were marked obsolete in 1.60: io.RenderDrawListsFn, IsAnyWindowFocused(), IsAnyWindowHovered(), etc.
ocornut 04de5ef819 Version 1.80 WIP
ocornut a38c6dfcc8 Internals: Added support for context hooks (for test engine or other extensions)
ocornut 682249396f Merge branch 'master' into docking
# Conflicts:
#	docs/CHANGELOG.txt
#	imgui.cpp
ocornut e5cb04b132 Version 1.79
+ Update readme and mission statement.
Removed "Minimize screen reel-estate usage", removed details on memory consumption (still very valid, just too much noise in a mission statement)
Rokas Kupstys c6f9c558ec CI: Use our own discord notifier.
Christian ae5b4991be
Docs: update gallery links. ()
ocornut 03b1e643b4 Docs: Funding link, Tweaks, Gallery links.
ocornut 12d9505534 CheckboxFlags: Display mixed-value/tristate marker when passed flags that have multiple bits set and stored value matches neither zero neither the full set.
ocornut 4fd43a8b64 Internals: removed NavLayerCurrentMask (redundant, add extra shift in ItemAdd().
ocornut 014e5078a8 Demo: add a small easter egg when the 4x4 board of Selectable is filled + tweaked the demo.
ocornut 01cc666039 ImGuiListClipper: Renamed constructor parameters which created an ambiguous alternative to using the ImGuiListClipper::Begin() function, with misleading edge cases.
Bartosz Taudul 6469b94304
Silence memset warning. ()
Compiling the code as-is results in the following warning:

-->8--
imgui_freetype.cpp:341:72: warning: ‘void* memset(void*, int, size_t)’
        clearing an object of type ‘struct ImFontBuildSrcDataFT’ with no
        trivial copy-assignment; use assignment or value-initialization
        instead [-Wclass-memaccess]
  341 |     memset(src_tmp_array.Data, 0, (size_t)src_tmp_array.size_in_bytes());
      |                                                                        ^
imgui_freetype.cpp:302:8: note: ‘struct ImFontBuildSrcDataFT’ declared here
  302 | struct ImFontBuildSrcDataFT
      |        ^~~~~~~~~~~~~~~~~~~~
--8<--

This is caused by presence of ImVector<> directly in ImFontBuildSrcDataFT data
structure, as well as in the child ImBitVector. Since ImVector<> has a
constructor, the compiler infers that initialization by memset is not valid.
Such initialization is not a bug, however, as the default ImVector<> ctor just
sets the structure data members to 0, which is exactly what the memset does.

Casting the data structure address to void* pointer silences this warning.
ocornut 7b1ab5b275 ImVector: Stricter bound-checking asserts. Fix warnings: trailing comma (old compilers), zealous preprocessor warnings.
ocornut 958e58b06b Merge branch 'master' into docking
# Conflicts:
#	examples/example_apple_opengl2/main.mm
#	imgui.cpp
ocornut 5f336ce8f8 Tab Bar: Fixed buffer underflow in TabBarLayout, introduced by 4a57a982b (, )
+ Link to CI actions added in 3be352f
Rokas Kupstys 3be352fc80 CI: Add discord notifications.
ocornut 179dc04d8a Examples: Added missing comments in example_apple_metal. ()
ocornut c49330fc52 Docking: Fix handling of WindowMenuButtonPosition == ImGuiDir_None in Docking Nodes. ()
ocornut 52c0b1a340 ImGuiListClipper: internal rework and tidying up to facilitate supporting frozen rows in tables + stop promoting using constructors parameters.
ocornut 324e0310ad Renamed ImGuiSliderFlags_ClampOnInput to ImGuiSliderFlags_AlwaysClamp. (, , , )
ocornut fbabf651f4 Style: Renamed style.TabMinWidthForUnselectedCloseButton to style.TabMinWidthForCloseButton. Fixed README links.
ocornut fa004ae79a Merge branch 'master' into docking
# Conflicts:
#	examples/imgui_examples.sln
#	examples/imgui_impl_dx12.cpp
#	examples/imgui_impl_dx12.h
#	examples/imgui_impl_opengl3.cpp
#	imgui.cpp
#	imgui_demo.cpp
#	imgui_internal.h
#	imgui_widgets.cpp