mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-03 22:51:06 +01:00 
			
		
		
		
	TODO list update + Changelog and comments for #1803.
This commit is contained in:
		@@ -74,7 +74,8 @@ Other Changes:
 | 
				
			|||||||
- Examples: Calling IMGUI_CHECKVERSION() in the main.cpp of every example application.
 | 
					- Examples: Calling IMGUI_CHECKVERSION() in the main.cpp of every example application.
 | 
				
			||||||
- Examples: Allegro 5: Added support for 32-bit indices setup via defining ImDrawIdx, to avoid an unnecessary conversion (Allegro 5 doesn't support 16-bit indices).
 | 
					- Examples: Allegro 5: Added support for 32-bit indices setup via defining ImDrawIdx, to avoid an unnecessary conversion (Allegro 5 doesn't support 16-bit indices).
 | 
				
			||||||
- Examples: Allegro 5: Renamed bindings from imgui_impl_a5.cpp to imgui_impl_allegro5.cpp.
 | 
					- Examples: Allegro 5: Renamed bindings from imgui_impl_a5.cpp to imgui_impl_allegro5.cpp.
 | 
				
			||||||
- Examples: DirectX 9 : Saving/restoring Transform because they don't seem to be included in the StateBlock. Setting shading mode to Gouraud. (#1790, #1687) [@sr-tream]
 | 
					- Examples: DirectX 9: Saving/restoring Transform because they don't seem to be included in the StateBlock. Setting shading mode to Gouraud. (#1790, #1687) [@sr-tream]
 | 
				
			||||||
 | 
					- Examples: SDL: Fixed clipboard paste memory leak in the SDL binding code. (#1803) [@eliasdaler]
 | 
				
			||||||
- Various minor fixes, tweaks, refactoring, comments.
 | 
					- Various minor fixes, tweaks, refactoring, comments.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-----------------------------------------------------------------------
 | 
					-----------------------------------------------------------------------
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								TODO.txt
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								TODO.txt
									
									
									
									
									
								
							@@ -36,8 +36,9 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i
 | 
				
			|||||||
 - drawlist: primtiives/helpers to manipulate vertices post submission, so e.g. a quad/rect can be resized to fit later submitted content, _without_ using the ChannelSplit api
 | 
					 - drawlist: primtiives/helpers to manipulate vertices post submission, so e.g. a quad/rect can be resized to fit later submitted content, _without_ using the ChannelSplit api
 | 
				
			||||||
 - drawlist: make it easier to toggle AA per primitive, so we can use e.g. non-AA fill + AA borders more naturally
 | 
					 - drawlist: make it easier to toggle AA per primitive, so we can use e.g. non-AA fill + AA borders more naturally
 | 
				
			||||||
 - drawlist: non-AA strokes have gaps between points (#593, #288), especially RenderCheckmark().
 | 
					 - drawlist: non-AA strokes have gaps between points (#593, #288), especially RenderCheckmark().
 | 
				
			||||||
 - drawlist: would be good to be able to deep copy a draw list (ImVector= op?).
 | 
					 - drawlist: would be good to be able to deep copy of ImDrawData (we have a deep copy of ImDrawList now).
 | 
				
			||||||
 - drawlist/opt: AddRect() axis aligned pixel aligned (no-aa) could use 8 triangles instead of 16 and no normal calculation.
 | 
					 - drawlist/opt: AddRect() axis aligned pixel aligned (no-aa) could use 8 triangles instead of 16 and no normal calculation.
 | 
				
			||||||
 | 
					 - drawlist: rendering: provide a way for imgui to output to a single/global vertex buffer, re-order indices only at the end of the frame (ref: https://gist.github.com/floooh/10388a0afbe08fce9e617d8aefa7d302)
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 - main: considering adding an Init() function? some constructs are awkward in the implementation because of the lack of them.
 | 
					 - main: considering adding an Init() function? some constructs are awkward in the implementation because of the lack of them.
 | 
				
			||||||
 - main: find a way to preserve relative orders of multiple reappearing windows (so an app toggling between "modes" e.g. fullscreen vs all tools) won't lose relative ordering.
 | 
					 - main: find a way to preserve relative orders of multiple reappearing windows (so an app toggling between "modes" e.g. fullscreen vs all tools) won't lose relative ordering.
 | 
				
			||||||
@@ -51,6 +52,7 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i
 | 
				
			|||||||
 - widgets: add always-allow-overlap mode.
 | 
					 - widgets: add always-allow-overlap mode.
 | 
				
			||||||
 - widgets: alignment options in style (e.g. center Selectable, Right-Align within Button, etc.) #1260
 | 
					 - widgets: alignment options in style (e.g. center Selectable, Right-Align within Button, etc.) #1260
 | 
				
			||||||
 - widgets: activate by identifier (trigger button, focus given id)
 | 
					 - widgets: activate by identifier (trigger button, focus given id)
 | 
				
			||||||
 | 
					 - widgets: a way to represent "mixed" values, so e.g. all values replaced with **, including check-boxes, colors, etc. with support for multi-components widgets (e.g. SliderFloat3, make only "Y" mixed)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 - input text: clean up the mess caused by converting UTF-8 <> wchar. the code is rather inefficient right now and super fragile. 
 | 
					 - input text: clean up the mess caused by converting UTF-8 <> wchar. the code is rather inefficient right now and super fragile. 
 | 
				
			||||||
 - input text: reorganize event handling, allow CharFilter to modify buffers, allow multiple events? (#541)
 | 
					 - input text: reorganize event handling, allow CharFilter to modify buffers, allow multiple events? (#541)
 | 
				
			||||||
@@ -131,6 +133,7 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i
 | 
				
			|||||||
 - slider: tint background based on value (e.g. v_min -> v_max, or use 0.0f either side of the sign)
 | 
					 - slider: tint background based on value (e.g. v_min -> v_max, or use 0.0f either side of the sign)
 | 
				
			||||||
 - slider: precision dragging
 | 
					 - slider: precision dragging
 | 
				
			||||||
 - slider: step option (#1183)
 | 
					 - slider: step option (#1183)
 | 
				
			||||||
 | 
					 - slider style: fill % of the bar instead of positioning a drag.
 | 
				
			||||||
 - knob: rotating knob widget (#942)
 | 
					 - knob: rotating knob widget (#942)
 | 
				
			||||||
 - slider & drag: int data passing through a float
 | 
					 - slider & drag: int data passing through a float
 | 
				
			||||||
 - drag float: up/down axis
 | 
					 - drag float: up/down axis
 | 
				
			||||||
@@ -239,6 +242,8 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i
 | 
				
			|||||||
 - font: fix AddRemapChar() to work before font has been built.
 | 
					 - font: fix AddRemapChar() to work before font has been built.
 | 
				
			||||||
 - font: (api breaking) removed "TTF" from symbol names. also because it now supports OTF.
 | 
					 - font: (api breaking) removed "TTF" from symbol names. also because it now supports OTF.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 - nav: wrap around logic to allow e.g. grid based layout (pressing NavRight on the right-most element would go to the next row, etc.)
 | 
				
			||||||
 | 
					 - nav: patterns to make it possible for arrows key to update selection
 | 
				
			||||||
 - nav: SetItemDefaultFocus() level of priority, so widget like Selectable when inside a popup could claim a low-priority default focus on the first selected iem
 | 
					 - nav: SetItemDefaultFocus() level of priority, so widget like Selectable when inside a popup could claim a low-priority default focus on the first selected iem
 | 
				
			||||||
 - nav: allow input system to be be more tolerant of io.DeltaTime=0.0f
 | 
					 - nav: allow input system to be be more tolerant of io.DeltaTime=0.0f
 | 
				
			||||||
 - nav: ESC on a flattened child
 | 
					 - nav: ESC on a flattened child
 | 
				
			||||||
@@ -270,15 +275,18 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 - web/emscriptem: refactor some examples to facilitate integration with emscripten main loop system. (#1713, #336)
 | 
					 - web/emscriptem: refactor some examples to facilitate integration with emscripten main loop system. (#1713, #336)
 | 
				
			||||||
 - web/emscriptem: tweak OpenGL renderers to support OpenGL ES. (#1713, #336)
 | 
					 - web/emscriptem: tweak OpenGL renderers to support OpenGL ES. (#1713, #336)
 | 
				
			||||||
 | 
					 - web/emscriptem: with refactored examples, we could provide a direct imgui_impl_emscripten platform layer (see eg. https://github.com/floooh/sokol-samples/blob/master/html5/imgui-emsc.cc#L42)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 - remote: make a system like RemoteImGui first-class citizen/project (#75)
 | 
					 - remote: make a system like RemoteImGui first-class citizen/project (#75)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 - demo: find a way to demonstrate textures in the examples application, as it such a a common issue for new users.
 | 
				
			||||||
 | 
					 - demo: add drag and drop demo.
 | 
				
			||||||
 - demo: add vertical separator demo
 | 
					 - demo: add vertical separator demo
 | 
				
			||||||
 - demo: add virtual scrolling example?
 | 
					 - demo: add virtual scrolling example?
 | 
				
			||||||
 - examples: directx9: save/restore device state more thoroughly.
 | 
					 - demo: demonstration Plot offset
 | 
				
			||||||
 - examples: window minimize, maximize (#583)
 | 
					 - examples: window minimize, maximize (#583)
 | 
				
			||||||
 - examples: provide a zero-framerate/idle example.
 | 
					 - examples: provide a zero-framerate/idle example.
 | 
				
			||||||
 - examples: glfw: could go idle when minimized? if (glfwGetWindowAttrib(window, GLFW_ICONIFIED)) { glfwWaitEvents(); continue; } // the problem is that DeltaTime will be super high on resume, perhaps provide a way to let impl know (#440)
 | 
					 - examples: glfw: could go idle when minimized? if (glfwGetWindowAttrib(window, GLFW_ICONIFIED)) { glfwWaitEvents(); continue; } // issue: DeltaTime will be super high on resume, perhaps provide a way to let impl know (#440)
 | 
				
			||||||
 - optimization: replace vsnprintf with stb_printf? or enable the defines/infrastructure to allow it (#1038)
 | 
					 - optimization: replace vsnprintf with stb_printf? or enable the defines/infrastructure to allow it (#1038)
 | 
				
			||||||
 - optimization: add clipping for multi-component widgets (SliderFloatX, ColorEditX, etc.). one problem is that nav branch can't easily clip parent group when there is a move request.
 | 
					 - optimization: add clipping for multi-component widgets (SliderFloatX, ColorEditX, etc.). one problem is that nav branch can't easily clip parent group when there is a move request.
 | 
				
			||||||
 - optimization: add a flag to disable most of rendering, for the case where the user expect to skip it (#335)
 | 
					 - optimization: add a flag to disable most of rendering, for the case where the user expect to skip it (#335)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,6 +21,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// CHANGELOG
 | 
					// CHANGELOG
 | 
				
			||||||
// (minor and older changes stripped away, please see git history for details)
 | 
					// (minor and older changes stripped away, please see git history for details)
 | 
				
			||||||
 | 
					//  2018-05-09: Misc: Fixed clipboard paste memory leak (we didn't call SDL_FreeMemory on the data returned by SDL_GetClipboardText).
 | 
				
			||||||
//  2018-03-20: Misc: Setup io.BackendFlags ImGuiBackendFlags_HasMouseCursors flag + honor ImGuiConfigFlags_NoMouseCursorChange flag.
 | 
					//  2018-03-20: Misc: Setup io.BackendFlags ImGuiBackendFlags_HasMouseCursors flag + honor ImGuiConfigFlags_NoMouseCursorChange flag.
 | 
				
			||||||
//  2018-02-16: Inputs: Added support for mouse cursors, honoring ImGui::GetMouseCursor() value.
 | 
					//  2018-02-16: Inputs: Added support for mouse cursors, honoring ImGui::GetMouseCursor() value.
 | 
				
			||||||
//  2018-02-16: Misc: Obsoleted the io.RenderDrawListsFn callback and exposed ImGui_ImplSdlGL2_RenderDrawData() in the .h file so you can call it yourself.
 | 
					//  2018-02-16: Misc: Obsoleted the io.RenderDrawListsFn callback and exposed ImGui_ImplSdlGL2_RenderDrawData() in the .h file so you can call it yourself.
 | 
				
			||||||
@@ -136,9 +137,9 @@ void ImGui_ImplSdlGL2_RenderDrawData(ImDrawData* draw_data)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
static const char* ImGui_ImplSdlGL2_GetClipboardText(void*)
 | 
					static const char* ImGui_ImplSdlGL2_GetClipboardText(void*)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    if (g_ClipboardTextData) SDL_free(g_ClipboardTextData);
 | 
					    if (g_ClipboardTextData) 
 | 
				
			||||||
 | 
					        SDL_free(g_ClipboardTextData);
 | 
				
			||||||
    g_ClipboardTextData = SDL_GetClipboardText();
 | 
					    g_ClipboardTextData = SDL_GetClipboardText();
 | 
				
			||||||
 | 
					 | 
				
			||||||
    return g_ClipboardTextData;
 | 
					    return g_ClipboardTextData;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -289,8 +290,9 @@ void ImGui_ImplSdlGL2_Shutdown()
 | 
				
			|||||||
        SDL_FreeCursor(g_MouseCursors[cursor_n]);
 | 
					        SDL_FreeCursor(g_MouseCursors[cursor_n]);
 | 
				
			||||||
    memset(g_MouseCursors, 0, sizeof(g_MouseCursors));
 | 
					    memset(g_MouseCursors, 0, sizeof(g_MouseCursors));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Remove previously allocated clipboard text data
 | 
					    // Destroy last known clipboard data
 | 
				
			||||||
    if (g_ClipboardTextData) SDL_free(g_ClipboardTextData);
 | 
					    if (g_ClipboardTextData)
 | 
				
			||||||
 | 
					        SDL_free(g_ClipboardTextData);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Destroy OpenGL objects
 | 
					    // Destroy OpenGL objects
 | 
				
			||||||
    ImGui_ImplSdlGL2_InvalidateDeviceObjects();
 | 
					    ImGui_ImplSdlGL2_InvalidateDeviceObjects();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,6 +14,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// CHANGELOG
 | 
					// CHANGELOG
 | 
				
			||||||
// (minor and older changes stripped away, please see git history for details)
 | 
					// (minor and older changes stripped away, please see git history for details)
 | 
				
			||||||
 | 
					//  2018-05-09: Misc: Fixed clipboard paste memory leak (we didn't call SDL_FreeMemory on the data returned by SDL_GetClipboardText).
 | 
				
			||||||
//  2018-03-20: Misc: Setup io.BackendFlags ImGuiBackendFlags_HasMouseCursors flag + honor ImGuiConfigFlags_NoMouseCursorChange flag.
 | 
					//  2018-03-20: Misc: Setup io.BackendFlags ImGuiBackendFlags_HasMouseCursors flag + honor ImGuiConfigFlags_NoMouseCursorChange flag.
 | 
				
			||||||
//  2018-03-06: OpenGL: Added const char* glsl_version parameter to ImGui_ImplSdlGL3_Init() so user can override the GLSL version e.g. "#version 150".
 | 
					//  2018-03-06: OpenGL: Added const char* glsl_version parameter to ImGui_ImplSdlGL3_Init() so user can override the GLSL version e.g. "#version 150".
 | 
				
			||||||
//  2018-02-23: OpenGL: Create the VAO in the render function so the setup can more easily be used with multiple shared GL context.
 | 
					//  2018-02-23: OpenGL: Create the VAO in the render function so the setup can more easily be used with multiple shared GL context.
 | 
				
			||||||
@@ -184,9 +185,9 @@ void ImGui_ImplSdlGL3_RenderDrawData(ImDrawData* draw_data)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
static const char* ImGui_ImplSdlGL3_GetClipboardText(void*)
 | 
					static const char* ImGui_ImplSdlGL3_GetClipboardText(void*)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    if (g_ClipboardTextData) SDL_free(g_ClipboardTextData);
 | 
					    if (g_ClipboardTextData) 
 | 
				
			||||||
 | 
					        SDL_free(g_ClipboardTextData);
 | 
				
			||||||
    g_ClipboardTextData = SDL_GetClipboardText();
 | 
					    g_ClipboardTextData = SDL_GetClipboardText();
 | 
				
			||||||
 | 
					 | 
				
			||||||
    return g_ClipboardTextData;
 | 
					    return g_ClipboardTextData;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -422,8 +423,9 @@ void ImGui_ImplSdlGL3_Shutdown()
 | 
				
			|||||||
        SDL_FreeCursor(g_MouseCursors[cursor_n]);
 | 
					        SDL_FreeCursor(g_MouseCursors[cursor_n]);
 | 
				
			||||||
    memset(g_MouseCursors, 0, sizeof(g_MouseCursors));
 | 
					    memset(g_MouseCursors, 0, sizeof(g_MouseCursors));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Remove previously allocated clipboard text data
 | 
					    // Destroy last known clipboard data
 | 
				
			||||||
    if (g_ClipboardTextData) SDL_free(g_ClipboardTextData);
 | 
					    if (g_ClipboardTextData)
 | 
				
			||||||
 | 
					        SDL_free(g_ClipboardTextData);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Destroy OpenGL objects
 | 
					    // Destroy OpenGL objects
 | 
				
			||||||
    ImGui_ImplSdlGL3_InvalidateDeviceObjects();
 | 
					    ImGui_ImplSdlGL3_InvalidateDeviceObjects();
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user