Commit Graph

7658 Commits

Author SHA1 Message Date
ocornut
5789e69a62 Checkbox: Added CheckboxFlags() helper with int* type. Demo: removed extraneous casts. 2020-11-05 21:32:05 +01:00
ocornut
5f97809cab Misc tidying up (zero-clear structures, more unused default in ClipRetFullscreen, NavApplyItemToResult() coding style fix)
Zero-clearing more structures
Remove arbitrary default ClipRetFullscreen value in ImDrawListSharedData.
Nav extracted NavApplyItemToResult() function.
Coding style fixes in OSX Backends.
2020-11-05 13:24:27 +01:00
ocornut
046057cebb Selectable: Avoid pushing span-column background if clipped. 2020-11-04 20:11:34 +01:00
ocornut
7a27b2a282 Update Readme, links to Useful Widgets, updated a gif. 2020-11-04 20:11:21 +01:00
ocornut
2bf5ca7ef2 ImDrawListClipper: avoid over reserving memory. 2020-11-04 18:05:51 +01:00
ocornut
d6a2f7e95e Reduced padding + unused storage in ImDrawList (224->192 bytes) + zero-init ImDrawListSplitter and ImDrawList
+ Readme tweak
2020-11-04 13:56:04 +01:00
ocornut
2fa00656a4 Fix for IMGUI_DISABLE_METRICS_WINDOW 2020-11-03 15:46:29 +01:00
Albin Odervall
b934b9bb86 Backends: OSX, Metal: Fix -Wshadow, -Wimplicit-float-conversion, and -Wsign-conversion warnings. (#3555) 2020-11-03 15:38:59 +01:00
Rokas Kupstys
9cca1b2e97 Replace UTF-8 decoder with one based on branchless version by Christopher Wellons. (not branchless anymore tho)
Decoding performance increase ~30%
2020-11-03 14:43:08 +01:00
ocornut
3777fbbd81 Renamed io.ConfigWindowsMemoryCompactTimer to io.ConfigMemoryCompactTimer as the feature will apply to other data structures. 2020-11-03 14:43:08 +01:00
ocornut
047d4c4500 Metrics: Extracted most functions.
+ avoid using full namesapce prefix
2020-10-30 23:48:58 +01:00
ocornut
044ed22379 Metrics: Fixed mishandling of ImDrawCmd::VtxOffset in wireframe mesh renderer + omitting trailing empty ImDrawCmd in count + relying on IdxOffset value. 2020-10-30 22:56:29 +01:00
M. Frink ~ Lemur
a129621292
Doc: mention IMGUI_USE_WCHAR32 in fonts documentation (#3562) 2020-10-29 18:21:06 +01:00
Rokas Kupstys
6f57d58e82 Backends: OSX: Fix KeyPadEnter on MacOS. (#3554) 2020-10-28 12:31:10 +01:00
ocornut
df35157397 Drag and Drop: Fix losing drop source ActiveID (and often source tooltip) when opening a TreeNode() or CollapsingHeader() while dragging. (#1738)
Amend 7b3d379, 8241cd62 etc.
2020-10-26 14:40:44 +01:00
ocornut
b7530e5d04 Revert "Replace UTF-8 decoder with branchless version by Christopher Wellons." (#3558)
This reverts commit b3576dd354.
2020-10-25 16:27:43 +01:00
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.
2020-10-23 13:10:37 +02:00
Warren Moore
bca4749346 Examples: Apple: Consolidated example_apple_metal to reduce class and file count (#1873, #3543) 2020-10-23 11:33:08 +02:00
ocornut
5292320110 Amend ffe8f0177f (#3544) + readme fixes 2020-10-23 11:25:26 +02:00
Louis Schnellbach
ffe8f0177f Backends: OpenGL3: Backup/restore GL_PRIMITIVE_RESTART state (#3544) 2020-10-23 11:17:56 +02:00
Bill Six
acb8ef2006
Examples: Vulkan: Fixed CMake include path. (#3550)
The backends directory was not included, so the build was failing.
2020-10-21 09:13:54 +02:00
ocornut
e6b99a420b Tab Bar: Do not display a tooltip if the name already fits over a given tab. (#3521) 2020-10-19 15:01:24 +02:00
ocornut
fbe74ed50c Tab Bar: zero clear more structures. 2020-10-19 12:10:31 +02:00
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.
2020-10-19 12:01:15 +02:00
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 2020-10-19 11:49:37 +02:00
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. (#3519, #2717) 2020-10-15 20:20:35 +02:00
ocornut
d015004f45 Rename colored>color in comments where possible (#3528) 2020-10-15 20:05:35 +02:00
xndcn
127f132447 Backends: OpenGL3: Add compatibility of GL_VERSION for GL 2.x (#3530)
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
2020-10-15 19:48:45 +02:00
ocornut
31a144b60c Fix comments (#3534) 2020-10-15 19:37:18 +02:00
ocornut
f2f326024c Tab Bar: Made it possible to append to an existing tab bar by calling BeginTabBar()/EndTabBar() again. 2020-10-14 18:34:33 +02:00
ocornut
b1a18d82e3 Moving backends code from examples/ to backends/ (step 6: update markdown documentation) 2020-10-14 14:42:00 +02:00
ocornut
a2a3d80f04 Moving backends code from examples/ to backends/ (step 5: move documentation to MD files) 2020-10-14 14:41:40 +02:00
ocornut
a2d845f9dd Moving backends code from examples/ to backends/ (step 4: update documentation, much improvement) 2020-10-14 14:41:40 +02:00
ocornut
a7e21fb05f Moving backends code from examples/ to backends/ (step 3: fixing project files) 2020-10-14 14:41:40 +02:00
ocornut
428f4fce70 Moving backends code from examples/ to backends/ (step 2: moving vulkan cruft) 2020-10-14 14:41:40 +02:00
ocornut
d9b2fb7338 Moving backends code from examples/ to backends/ (step 1: moving source files) 2020-10-14 14:41:40 +02:00
ocornut
124c2608f1 Docs: Renamed all occurences of "binding" and "back-end" to "backend" in comments and documentations, for consistency. 2020-10-12 17:54:52 +02:00
ocornut
041ef01b33 Removed redirecting functions/enums names that were marked obsolete in 1.61: InputFloat, InputFloat2, InputFloat3, InputFloat4 with int decimal_precision parameter. (#648, #712) 2020-10-12 15:09:21 +02:00
ocornut
0f13fdd177 Removed redirecting functions/enums names that were marked obsolete in 1.60: io.RenderDrawListsFn, IsAnyWindowFocused(), IsAnyWindowHovered(), etc. 2020-10-12 13:17:05 +02:00
ocornut
04de5ef819 Version 1.80 WIP 2020-10-12 13:04:34 +02:00
ocornut
a38c6dfcc8 Internals: Added support for context hooks (for test engine or other extensions) 2020-10-09 17:13:03 +02:00
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)
2020-10-08 16:01:59 +02:00
Rokas Kupstys
c6f9c558ec CI: Use our own discord notifier. 2020-10-08 14:23:55 +02:00
Christian
ae5b4991be
Docs: update gallery links. (#3514) 2020-10-08 13:56:05 +02:00
ocornut
03b1e643b4 Docs: Funding link, Tweaks, Gallery links. 2020-10-08 10:47:10 +02:00
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. 2020-10-07 15:13:04 +02:00
ocornut
4fd43a8b64 Internals: removed NavLayerCurrentMask (redundant, add extra shift in ItemAdd(). 2020-10-05 14:52:18 +02:00
ocornut
014e5078a8 Demo: add a small easter egg when the 4x4 board of Selectable is filled + tweaked the demo. 2020-10-05 13:08:32 +02:00
ocornut
01cc666039 ImGuiListClipper: Renamed constructor parameters which created an ambiguous alternative to using the ImGuiListClipper::Begin() function, with misleading edge cases. 2020-10-05 12:28:28 +02:00
Bartosz Taudul
6469b94304
Silence memset warning. (#3505)
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.
2020-10-02 19:12:53 +02:00