mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 13:11:05 +01:00 
			
		
		
		
	Merge branch 'viewport' into docking
This commit is contained in:
		
							
								
								
									
										12
									
								
								.github/issue_template.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/issue_template.md
									
									
									
									
										vendored
									
									
								
							| @@ -11,15 +11,18 @@ https://discourse.dearimgui.org/c/getting-started | |||||||
|  |  | ||||||
| ---- | ---- | ||||||
|  |  | ||||||
|  | _(you may also go to Demo>About Window, and click "Config/Build Information" to obtain a bunch of detailed information that you can paste here)_ | ||||||
|  |  | ||||||
| **Version/Branch of Dear ImGui:** | **Version/Branch of Dear ImGui:** | ||||||
|  |  | ||||||
| XXX | Version: XXX | ||||||
|  | Branch: XXX _(master/viewport/docking/etc.)_ | ||||||
|  |  | ||||||
| **Back-end file/Renderer/OS:** _(or specify if you are using a custom engine back-end)_ | **Back-end/Renderer/Compiler/OS**  | ||||||
|  |  | ||||||
| Back-ends: imgui_impl_XXX.cpp + imgui_impl_XXX.cpp | Back-ends: imgui_impl_XXX.cpp + imgui_impl_XXX.cpp _(or specify if using a custom engine/back-end)_ | ||||||
| OS: XXX  |  | ||||||
| Compiler: XXX _(if the question is related to building)_ | Compiler: XXX _(if the question is related to building)_ | ||||||
|  | Operating System: XXX  | ||||||
|  |  | ||||||
| **My Issue/Question:** _(please provide context)_ | **My Issue/Question:** _(please provide context)_ | ||||||
|  |  | ||||||
| @@ -27,6 +30,7 @@ XXX | |||||||
|  |  | ||||||
| **Standalone, minimal, complete and verifiable example:** _(see CONTRIBUTING.md)_ | **Standalone, minimal, complete and verifiable example:** _(see CONTRIBUTING.md)_ | ||||||
| ``` | ``` | ||||||
|  | // Please do not forget this! | ||||||
| ImGui::Begin("Example Bug"); | ImGui::Begin("Example Bug"); | ||||||
| MoreCodeToExplainMyIssue(); | MoreCodeToExplainMyIssue(); | ||||||
| ImGui::End(); | ImGui::End(); | ||||||
|   | |||||||
| @@ -64,6 +64,11 @@ Breaking Changes: | |||||||
|  |  | ||||||
| Other Changes: | Other Changes: | ||||||
|  |  | ||||||
|  | - When the focused window become inactive don't restore focus to a window with the ImGuiWindowFlags_NoInputs flag. (#2213) [@zzzyap] | ||||||
|  | - Separator: Fixed Separator() outputting an extraneous empty line when captured into clipboard/text/file.  | ||||||
|  | - Demo: Added ShowAboutWindow() call, previously was only accessible from the demo window. | ||||||
|  | - Demo: ShowAboutWindow() now display various Build/Config Information (compiler, os, etc.) that can easily be copied into bug reports. | ||||||
|  | - Fixed build issue with osxcross and macOS. (#2218) [@dos1] | ||||||
| - Examples: SDL: changed the signature of ImGui_ImplSDL2_ProcessEvent() to use a const SDL_Event*. (#2187) | - Examples: SDL: changed the signature of ImGui_ImplSDL2_ProcessEvent() to use a const SDL_Event*. (#2187) | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -15,6 +15,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-11-30: Misc: Setting up io.BackendPlatformName/io.BackendRendererName so they can be displayed in the About Window. | ||||||
| //  2018-06-13: Platform: Added clipboard support (from Allegro 5.1.12). | //  2018-06-13: Platform: Added clipboard support (from Allegro 5.1.12). | ||||||
| //  2018-06-13: Renderer: Use draw_data->DisplayPos and draw_data->DisplaySize to setup projection matrix and clipping rectangle. | //  2018-06-13: Renderer: Use draw_data->DisplayPos and draw_data->DisplaySize to setup projection matrix and clipping rectangle. | ||||||
| //  2018-06-13: Renderer: Backup/restore transform and clipping rectangle. | //  2018-06-13: Renderer: Backup/restore transform and clipping rectangle. | ||||||
| @@ -231,6 +232,7 @@ bool ImGui_ImplAllegro5_Init(ALLEGRO_DISPLAY* display) | |||||||
|     // Setup back-end capabilities flags |     // Setup back-end capabilities flags | ||||||
|     ImGuiIO& io = ImGui::GetIO(); |     ImGuiIO& io = ImGui::GetIO(); | ||||||
|     io.BackendFlags |= ImGuiBackendFlags_HasMouseCursors;       // We can honor GetMouseCursor() values (optional) |     io.BackendFlags |= ImGuiBackendFlags_HasMouseCursors;       // We can honor GetMouseCursor() values (optional) | ||||||
|  |     io.BackendPlatformName = io.BackendRendererName = "imgui_impl_allegro5"; | ||||||
|  |  | ||||||
|     // Create custom vertex declaration. |     // Create custom vertex declaration. | ||||||
|     // Unfortunately Allegro doesn't support 32-bits packed colors so we have to convert them to 4 floats. |     // Unfortunately Allegro doesn't support 32-bits packed colors so we have to convert them to 4 floats. | ||||||
|   | |||||||
| @@ -12,6 +12,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-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. | //  2018-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. | ||||||
|  | //  2018-11-30: Misc: Setting up io.BackendRendererName so it can be displayed in the About Window. | ||||||
| //  2018-07-13: DirectX10: Fixed unreleased resources in Init and Shutdown functions. | //  2018-07-13: DirectX10: Fixed unreleased resources in Init and Shutdown functions. | ||||||
| //  2018-06-08: Misc: Extracted imgui_impl_dx10.cpp/.h away from the old combined DX10+Win32 example. | //  2018-06-08: Misc: Extracted imgui_impl_dx10.cpp/.h away from the old combined DX10+Win32 example. | ||||||
| //  2018-06-08: DirectX10: Use draw_data->DisplayPos and draw_data->DisplaySize to setup projection matrix and clipping rectangle. | //  2018-06-08: DirectX10: Use draw_data->DisplayPos and draw_data->DisplaySize to setup projection matrix and clipping rectangle. | ||||||
| @@ -469,6 +470,11 @@ void    ImGui_ImplDX10_InvalidateDeviceObjects() | |||||||
|  |  | ||||||
| bool    ImGui_ImplDX10_Init(ID3D10Device* device) | bool    ImGui_ImplDX10_Init(ID3D10Device* device) | ||||||
| { | { | ||||||
|  |     // Setup back-end capabilities flags | ||||||
|  |     ImGuiIO& io = ImGui::GetIO(); | ||||||
|  |     io.BackendFlags |= ImGuiBackendFlags_RendererHasViewports;    // We can create multi-viewports on the Renderer side (optional) | ||||||
|  |     io.BackendRendererName = "imgui_impl_dx10"; | ||||||
|  |  | ||||||
|     // Get factory from device |     // Get factory from device | ||||||
|     IDXGIDevice* pDXGIDevice = NULL; |     IDXGIDevice* pDXGIDevice = NULL; | ||||||
|     IDXGIAdapter* pDXGIAdapter = NULL; |     IDXGIAdapter* pDXGIAdapter = NULL; | ||||||
| @@ -484,9 +490,6 @@ bool    ImGui_ImplDX10_Init(ID3D10Device* device) | |||||||
|     if (pDXGIDevice) pDXGIDevice->Release(); |     if (pDXGIDevice) pDXGIDevice->Release(); | ||||||
|     if (pDXGIAdapter) pDXGIAdapter->Release(); |     if (pDXGIAdapter) pDXGIAdapter->Release(); | ||||||
|  |  | ||||||
|     // Setup back-end capabilities flags |  | ||||||
|     ImGuiIO& io = ImGui::GetIO(); |  | ||||||
|     io.BackendFlags |= ImGuiBackendFlags_RendererHasViewports;    // We can create multi-viewports on the Renderer side (optional) |  | ||||||
|     if (io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) |     if (io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) | ||||||
|         ImGui_ImplDX10_InitPlatformInterface(); |         ImGui_ImplDX10_InitPlatformInterface(); | ||||||
|     return true; |     return true; | ||||||
|   | |||||||
| @@ -12,6 +12,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-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. | //  2018-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. | ||||||
|  | //  2018-11-30: Misc: Setting up io.BackendRendererName so it can be displayed in the About Window. | ||||||
| //  2018-08-01: DirectX11: Querying for IDXGIFactory instead of IDXGIFactory1 to increase compatibility. | //  2018-08-01: DirectX11: Querying for IDXGIFactory instead of IDXGIFactory1 to increase compatibility. | ||||||
| //  2018-07-13: DirectX11: Fixed unreleased resources in Init and Shutdown functions. | //  2018-07-13: DirectX11: Fixed unreleased resources in Init and Shutdown functions. | ||||||
| //  2018-06-08: Misc: Extracted imgui_impl_dx11.cpp/.h away from the old combined DX11+Win32 example. | //  2018-06-08: Misc: Extracted imgui_impl_dx11.cpp/.h away from the old combined DX11+Win32 example. | ||||||
| @@ -476,6 +477,11 @@ void    ImGui_ImplDX11_InvalidateDeviceObjects() | |||||||
|  |  | ||||||
| bool    ImGui_ImplDX11_Init(ID3D11Device* device, ID3D11DeviceContext* device_context) | bool    ImGui_ImplDX11_Init(ID3D11Device* device, ID3D11DeviceContext* device_context) | ||||||
| { | { | ||||||
|  |     // Setup back-end capabilities flags | ||||||
|  |     ImGuiIO& io = ImGui::GetIO(); | ||||||
|  |     io.BackendFlags |= ImGuiBackendFlags_RendererHasViewports;    // We can create multi-viewports on the Renderer side (optional) | ||||||
|  |     io.BackendRendererName = "imgui_impl_dx11"; | ||||||
|  |  | ||||||
|     // Get factory from device |     // Get factory from device | ||||||
|     IDXGIDevice* pDXGIDevice = NULL; |     IDXGIDevice* pDXGIDevice = NULL; | ||||||
|     IDXGIAdapter* pDXGIAdapter = NULL; |     IDXGIAdapter* pDXGIAdapter = NULL; | ||||||
| @@ -492,9 +498,6 @@ bool    ImGui_ImplDX11_Init(ID3D11Device* device, ID3D11DeviceContext* device_co | |||||||
|     if (pDXGIDevice) pDXGIDevice->Release(); |     if (pDXGIDevice) pDXGIDevice->Release(); | ||||||
|     if (pDXGIAdapter) pDXGIAdapter->Release(); |     if (pDXGIAdapter) pDXGIAdapter->Release(); | ||||||
|  |  | ||||||
|     // Setup back-end capabilities flags |  | ||||||
|     ImGuiIO& io = ImGui::GetIO(); |  | ||||||
|     io.BackendFlags |= ImGuiBackendFlags_RendererHasViewports;    // We can create multi-viewports on the Renderer side (optional) |  | ||||||
|     if (io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) |     if (io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) | ||||||
|         ImGui_ImplDX11_InitPlatformInterface(); |         ImGui_ImplDX11_InitPlatformInterface(); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -12,6 +12,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-11-30: Misc: Setting up io.BackendRendererName so it can be displayed in the About Window. | ||||||
| //  2018-06-12: DirectX12: Moved the ID3D12GraphicsCommandList* parameter from NewFrame() to RenderDrawData(). | //  2018-06-12: DirectX12: Moved the ID3D12GraphicsCommandList* parameter from NewFrame() to RenderDrawData(). | ||||||
| //  2018-06-08: Misc: Extracted imgui_impl_dx12.cpp/.h away from the old combined DX12+Win32 example. | //  2018-06-08: Misc: Extracted imgui_impl_dx12.cpp/.h away from the old combined DX12+Win32 example. | ||||||
| //  2018-06-08: DirectX12: Use draw_data->DisplayPos and draw_data->DisplaySize to setup projection matrix and clipping rectangle (to ease support for future multi-viewport). | //  2018-06-08: DirectX12: Use draw_data->DisplayPos and draw_data->DisplaySize to setup projection matrix and clipping rectangle (to ease support for future multi-viewport). | ||||||
| @@ -590,6 +591,11 @@ void    ImGui_ImplDX12_InvalidateDeviceObjects() | |||||||
| bool ImGui_ImplDX12_Init(ID3D12Device* device, int num_frames_in_flight, DXGI_FORMAT rtv_format, | bool ImGui_ImplDX12_Init(ID3D12Device* device, int num_frames_in_flight, DXGI_FORMAT rtv_format, | ||||||
|                          D3D12_CPU_DESCRIPTOR_HANDLE font_srv_cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE font_srv_gpu_desc_handle) |                          D3D12_CPU_DESCRIPTOR_HANDLE font_srv_cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE font_srv_gpu_desc_handle) | ||||||
| { | { | ||||||
|  |     // Setup back-end capabilities flags | ||||||
|  |     ImGuiIO& io = ImGui::GetIO(); | ||||||
|  |     io.BackendFlags |= ImGuiBackendFlags_RendererHasViewports;    // We can create multi-viewports on the Renderer side (optional) // FIXME-VIEWPORT: Actually unfinished.. | ||||||
|  |     io.BackendRendererName = "imgui_impl_dx12"; | ||||||
|  |  | ||||||
|     g_pd3dDevice = device; |     g_pd3dDevice = device; | ||||||
|     g_RTVFormat = rtv_format; |     g_RTVFormat = rtv_format; | ||||||
|     g_hFontSrvCpuDescHandle = font_srv_cpu_desc_handle; |     g_hFontSrvCpuDescHandle = font_srv_cpu_desc_handle; | ||||||
| @@ -607,10 +613,6 @@ bool ImGui_ImplDX12_Init(ID3D12Device* device, int num_frames_in_flight, DXGI_FO | |||||||
|         g_pFrameResources[i].IndexBufferSize = 10000; |         g_pFrameResources[i].IndexBufferSize = 10000; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     // Setup back-end capabilities flags |  | ||||||
|     // FIXME-VIEWPORT: Actually unfinished.. |  | ||||||
|     ImGuiIO& io = ImGui::GetIO(); |  | ||||||
|     io.BackendFlags |= ImGuiBackendFlags_RendererHasViewports;    // We can create multi-viewports on the Renderer side (optional) |  | ||||||
|     if (io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) |     if (io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) | ||||||
|         ImGui_ImplDX12_InitPlatformInterface(); |         ImGui_ImplDX12_InitPlatformInterface(); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -10,6 +10,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-11-30: Misc: Setting up io.BackendRendererName so it can be displayed in the About Window. | ||||||
| //  2018-06-08: Misc: Extracted imgui_impl_dx9.cpp/.h away from the old combined DX9+Win32 example. | //  2018-06-08: Misc: Extracted imgui_impl_dx9.cpp/.h away from the old combined DX9+Win32 example. | ||||||
| //  2018-06-08: DirectX9: Use draw_data->DisplayPos and draw_data->DisplaySize to setup projection matrix and clipping rectangle. | //  2018-06-08: DirectX9: Use draw_data->DisplayPos and draw_data->DisplaySize to setup projection matrix and clipping rectangle. | ||||||
| //  2018-05-07: Render: Saving/restoring Transform because they don't seem to be included in the StateBlock. Setting shading mode to Gouraud. | //  2018-05-07: Render: Saving/restoring Transform because they don't seem to be included in the StateBlock. Setting shading mode to Gouraud. | ||||||
| @@ -199,6 +200,9 @@ void ImGui_ImplDX9_RenderDrawData(ImDrawData* draw_data) | |||||||
|  |  | ||||||
| bool ImGui_ImplDX9_Init(IDirect3DDevice9* device) | bool ImGui_ImplDX9_Init(IDirect3DDevice9* device) | ||||||
| { | { | ||||||
|  |     ImGuiIO& io = ImGui::GetIO(); | ||||||
|  |     io.BackendRendererName = "imgui_impl_dx9"; | ||||||
|  |  | ||||||
|     g_pd3dDevice = device; |     g_pd3dDevice = device; | ||||||
|     return true; |     return true; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -11,6 +11,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-11-30: Misc: Setting up io.BackendPlatformName so it can be displayed in the About Window. | ||||||
| //  2018-03-22: Added FreeGLUT Platform binding. | //  2018-03-22: Added FreeGLUT Platform binding. | ||||||
|  |  | ||||||
| #include "imgui.h" | #include "imgui.h" | ||||||
| @@ -26,6 +27,8 @@ static int g_Time = 0;          // Current time, in milliseconds | |||||||
| bool ImGui_ImplFreeGLUT_Init() | bool ImGui_ImplFreeGLUT_Init() | ||||||
| { | { | ||||||
|     ImGuiIO& io = ImGui::GetIO(); |     ImGuiIO& io = ImGui::GetIO(); | ||||||
|  |     io.BackendPlatformName ="imgui_impl_freeglut"; | ||||||
|  |  | ||||||
|     g_Time = 0; |     g_Time = 0; | ||||||
|  |  | ||||||
|     // Glut has 1 function for characters and one for "special keys". We map the characters in the 0..255 range and the keys above. |     // Glut has 1 function for characters and one for "special keys". We map the characters in the 0..255 range and the keys above. | ||||||
|   | |||||||
| @@ -16,6 +16,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-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. | //  2018-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. | ||||||
|  | //  2018-11-30: Misc: Setting up io.BackendPlatformName so it can be displayed in the About Window. | ||||||
| //  2018-11-07: Inputs: When installing our GLFW callbacks, we save user's previously installed ones - if any - and chain call them. | //  2018-11-07: Inputs: When installing our GLFW callbacks, we save user's previously installed ones - if any - and chain call them. | ||||||
| //  2018-08-01: Inputs: Workaround for Emscripten which doesn't seem to handle focus related calls. | //  2018-08-01: Inputs: Workaround for Emscripten which doesn't seem to handle focus related calls. | ||||||
| //  2018-06-29: Inputs: Added support for the ImGuiMouseCursor_Hand cursor. | //  2018-06-29: Inputs: Added support for the ImGuiMouseCursor_Hand cursor. | ||||||
| @@ -143,6 +144,7 @@ static bool ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks, Glfw | |||||||
| #if GLFW_HAS_GLFW_HOVERED | #if GLFW_HAS_GLFW_HOVERED | ||||||
|     io.BackendFlags |= ImGuiBackendFlags_HasMouseHoveredViewport; // We can set io.MouseHoveredViewport correctly (optional, not easy) |     io.BackendFlags |= ImGuiBackendFlags_HasMouseHoveredViewport; // We can set io.MouseHoveredViewport correctly (optional, not easy) | ||||||
| #endif | #endif | ||||||
|  |     io.BackendPlatformName = "imgui_impl_glfw"; | ||||||
|  |  | ||||||
|     // Keyboard mapping. ImGui will use those indices to peek into the io.KeysDown[] array. |     // Keyboard mapping. ImGui will use those indices to peek into the io.KeysDown[] array. | ||||||
|     io.KeyMap[ImGuiKey_Tab] = GLFW_KEY_TAB; |     io.KeyMap[ImGuiKey_Tab] = GLFW_KEY_TAB; | ||||||
|   | |||||||
| @@ -10,6 +10,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-11-30: Misc: Setting up io.BackendPlatformName/io.BackendRendererName so they can be displayed in the About Window. | ||||||
| //  2018-02-16: Misc: Obsoleted the io.RenderDrawListsFn callback and exposed ImGui_Marmalade_RenderDrawData() in the .h file so you can call it yourself. | //  2018-02-16: Misc: Obsoleted the io.RenderDrawListsFn callback and exposed ImGui_Marmalade_RenderDrawData() in the .h file so you can call it yourself. | ||||||
| //  2018-02-06: Misc: Removed call to ImGui::Shutdown() which is not available from 1.60 WIP, user needs to call CreateContext/DestroyContext themselves. | //  2018-02-06: Misc: Removed call to ImGui::Shutdown() which is not available from 1.60 WIP, user needs to call CreateContext/DestroyContext themselves. | ||||||
| //  2018-02-06: Inputs: Added mapping for ImGuiKey_Space. | //  2018-02-06: Inputs: Added mapping for ImGuiKey_Space. | ||||||
| @@ -42,7 +43,7 @@ void ImGui_Marmalade_RenderDrawData(ImDrawData* draw_data) | |||||||
|     draw_data->ScaleClipRects(io.DisplayFramebufferScale); |     draw_data->ScaleClipRects(io.DisplayFramebufferScale); | ||||||
|  |  | ||||||
|     // Render command lists |     // Render command lists | ||||||
|     for(int n = 0; n < draw_data->CmdListsCount; n++) |     for (int n = 0; n < draw_data->CmdListsCount; n++) | ||||||
|     { |     { | ||||||
|         const ImDrawList* cmd_list = draw_data->CmdLists[n]; |         const ImDrawList* cmd_list = draw_data->CmdLists[n]; | ||||||
|         const ImDrawIdx* idx_buffer = cmd_list->IdxBuffer.Data; |         const ImDrawIdx* idx_buffer = cmd_list->IdxBuffer.Data; | ||||||
| @@ -51,7 +52,7 @@ void ImGui_Marmalade_RenderDrawData(ImDrawData* draw_data) | |||||||
|         CIwFVec2* pUVStream = IW_GX_ALLOC(CIwFVec2, nVert); |         CIwFVec2* pUVStream = IW_GX_ALLOC(CIwFVec2, nVert); | ||||||
|         CIwColour* pColStream = IW_GX_ALLOC(CIwColour, nVert); |         CIwColour* pColStream = IW_GX_ALLOC(CIwColour, nVert); | ||||||
|  |  | ||||||
|         for( int i=0; i < nVert; i++ ) |         for (int i = 0; i < nVert; i++) | ||||||
|         { |         { | ||||||
|             // TODO: optimize multiplication on gpu using vertex shader/projection matrix. |             // TODO: optimize multiplication on gpu using vertex shader/projection matrix. | ||||||
|             pVertStream[i].x = cmd_list->VtxBuffer[i].pos.x * g_RenderScale.x; |             pVertStream[i].x = cmd_list->VtxBuffer[i].pos.x * g_RenderScale.x; | ||||||
| @@ -214,6 +215,8 @@ void    ImGui_Marmalade_InvalidateDeviceObjects() | |||||||
| bool    ImGui_Marmalade_Init(bool install_callbacks) | bool    ImGui_Marmalade_Init(bool install_callbacks) | ||||||
| { | { | ||||||
|     ImGuiIO& io = ImGui::GetIO(); |     ImGuiIO& io = ImGui::GetIO(); | ||||||
|  |     io.BackendPlatformName = io.BackendRendererName = "imgui_impl_marmalade"; | ||||||
|  |  | ||||||
|     io.KeyMap[ImGuiKey_Tab] = s3eKeyTab;                     // Keyboard mapping. ImGui will use those indices to peek into the io.KeysDown[] array. |     io.KeyMap[ImGuiKey_Tab] = s3eKeyTab;                     // Keyboard mapping. ImGui will use those indices to peek into the io.KeysDown[] array. | ||||||
|     io.KeyMap[ImGuiKey_LeftArrow] = s3eKeyLeft; |     io.KeyMap[ImGuiKey_LeftArrow] = s3eKeyLeft; | ||||||
|     io.KeyMap[ImGuiKey_RightArrow] = s3eKeyRight; |     io.KeyMap[ImGuiKey_RightArrow] = s3eKeyRight; | ||||||
|   | |||||||
| @@ -12,6 +12,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-11-30: Misc: Setting up io.BackendRendererName so it can be displayed in the About Window. | ||||||
| //  2018-07-05: Metal: Added new Metal backend implementation. | //  2018-07-05: Metal: Added new Metal backend implementation. | ||||||
|  |  | ||||||
| #include "imgui.h" | #include "imgui.h" | ||||||
| @@ -67,6 +68,9 @@ static MetalContext *g_sharedMetalContext = nil; | |||||||
|  |  | ||||||
| bool ImGui_ImplMetal_Init(id<MTLDevice> device) | bool ImGui_ImplMetal_Init(id<MTLDevice> device) | ||||||
| { | { | ||||||
|  |     ImGuiIO& io = ImGui::GetIO(); | ||||||
|  |     io.BackendRendererName = "imgui_impl_metal"; | ||||||
|  |  | ||||||
|     static dispatch_once_t onceToken; |     static dispatch_once_t onceToken; | ||||||
|     dispatch_once(&onceToken, ^{ |     dispatch_once(&onceToken, ^{ | ||||||
|         g_sharedMetalContext = [[MetalContext alloc] init]; |         g_sharedMetalContext = [[MetalContext alloc] init]; | ||||||
|   | |||||||
| @@ -20,6 +20,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-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. | //  2018-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. | ||||||
|  | //  2018-11-30: Misc: Setting up io.BackendRendererName so it can be displayed in the About Window. | ||||||
| //  2018-08-03: OpenGL: Disabling/restoring GL_LIGHTING and GL_COLOR_MATERIAL to increase compatibility with legacy OpenGL applications. | //  2018-08-03: OpenGL: Disabling/restoring GL_LIGHTING and GL_COLOR_MATERIAL to increase compatibility with legacy OpenGL applications. | ||||||
| //  2018-06-08: Misc: Extracted imgui_impl_opengl2.cpp/.h away from the old combined GLFW/SDL+OpenGL2 examples. | //  2018-06-08: Misc: Extracted imgui_impl_opengl2.cpp/.h away from the old combined GLFW/SDL+OpenGL2 examples. | ||||||
| //  2018-06-08: OpenGL: Use draw_data->DisplayPos and draw_data->DisplaySize to setup projection matrix and clipping rectangle. | //  2018-06-08: OpenGL: Use draw_data->DisplayPos and draw_data->DisplaySize to setup projection matrix and clipping rectangle. | ||||||
| @@ -62,6 +63,7 @@ bool    ImGui_ImplOpenGL2_Init() | |||||||
|     // Setup back-end capabilities flags |     // Setup back-end capabilities flags | ||||||
|     ImGuiIO& io = ImGui::GetIO(); |     ImGuiIO& io = ImGui::GetIO(); | ||||||
|     io.BackendFlags |= ImGuiBackendFlags_RendererHasViewports;    // We can create multi-viewports on the Renderer side (optional) |     io.BackendFlags |= ImGuiBackendFlags_RendererHasViewports;    // We can create multi-viewports on the Renderer side (optional) | ||||||
|  |     io.BackendRendererName = "imgui_impl_opengl2"; | ||||||
|     if (io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) |     if (io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) | ||||||
|         ImGui_ImplOpenGL2_InitPlatformInterface(); |         ImGui_ImplOpenGL2_InitPlatformInterface(); | ||||||
|     return true; |     return true; | ||||||
|   | |||||||
| @@ -13,6 +13,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-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. | //  2018-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. | ||||||
|  | //  2018-11-30: Misc: Setting up io.BackendRendererName so it can be displayed in the About Window. | ||||||
| //  2018-11-13: OpenGL: Support for GL 4.5's glClipControl(GL_UPPER_LEFT). | //  2018-11-13: OpenGL: Support for GL 4.5's glClipControl(GL_UPPER_LEFT). | ||||||
| //  2018-08-29: OpenGL: Added support for more OpenGL loaders: glew and glad, with comments indicative that any loader can be used. | //  2018-08-29: OpenGL: Added support for more OpenGL loaders: glew and glad, with comments indicative that any loader can be used. | ||||||
| //  2018-08-09: OpenGL: Default to OpenGL ES 3 on iOS and Android. GLSL version default to "#version 300 ES". | //  2018-08-09: OpenGL: Default to OpenGL ES 3 on iOS and Android. GLSL version default to "#version 300 ES". | ||||||
| @@ -106,6 +107,11 @@ static void ImGui_ImplOpenGL3_ShutdownPlatformInterface(); | |||||||
| // Functions | // Functions | ||||||
| bool    ImGui_ImplOpenGL3_Init(const char* glsl_version) | bool    ImGui_ImplOpenGL3_Init(const char* glsl_version) | ||||||
| { | { | ||||||
|  |     // Setup back-end capabilities flags | ||||||
|  |     ImGuiIO& io = ImGui::GetIO(); | ||||||
|  |     io.BackendFlags |= ImGuiBackendFlags_RendererHasViewports;    // We can create multi-viewports on the Renderer side (optional) | ||||||
|  |     io.BackendRendererName = "imgui_impl_opengl3"; | ||||||
|  |  | ||||||
|     // Store GLSL version string so we can refer to it later in case we recreate shaders. Note: GLSL version is NOT the same as GL version. Leave this to NULL if unsure. |     // Store GLSL version string so we can refer to it later in case we recreate shaders. Note: GLSL version is NOT the same as GL version. Leave this to NULL if unsure. | ||||||
| #ifdef USE_GL_ES3 | #ifdef USE_GL_ES3 | ||||||
|     if (glsl_version == NULL) |     if (glsl_version == NULL) | ||||||
| @@ -118,9 +124,6 @@ bool    ImGui_ImplOpenGL3_Init(const char* glsl_version) | |||||||
|     strcpy(g_GlslVersionString, glsl_version); |     strcpy(g_GlslVersionString, glsl_version); | ||||||
|     strcat(g_GlslVersionString, "\n"); |     strcat(g_GlslVersionString, "\n"); | ||||||
|  |  | ||||||
|     // Setup back-end capabilities flags |  | ||||||
|     ImGuiIO& io = ImGui::GetIO(); |  | ||||||
|     io.BackendFlags |= ImGuiBackendFlags_RendererHasViewports;    // We can create multi-viewports on the Renderer side (optional) |  | ||||||
|     if (io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) |     if (io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) | ||||||
|         ImGui_ImplOpenGL3_InitPlatformInterface(); |         ImGui_ImplOpenGL3_InitPlatformInterface(); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -13,6 +13,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-11-30: Misc: Setting up io.BackendPlatformName so it can be displayed in the About Window. | ||||||
| //  2018-07-07: Initial version. | //  2018-07-07: Initial version. | ||||||
|  |  | ||||||
| // Data | // Data | ||||||
| @@ -28,6 +29,7 @@ bool ImGui_ImplOSX_Init() | |||||||
|     //io.BackendFlags |= ImGuiBackendFlags_HasSetMousePos;          // We can honor io.WantSetMousePos requests (optional, rarely used) |     //io.BackendFlags |= ImGuiBackendFlags_HasSetMousePos;          // We can honor io.WantSetMousePos requests (optional, rarely used) | ||||||
|     //io.BackendFlags |= ImGuiBackendFlags_PlatformHasViewports;    // We can create multi-viewports on the Platform side (optional) |     //io.BackendFlags |= ImGuiBackendFlags_PlatformHasViewports;    // We can create multi-viewports on the Platform side (optional) | ||||||
|     //io.BackendFlags |= ImGuiBackendFlags_HasMouseHoveredViewport; // We can set io.MouseHoveredViewport correctly (optional, not easy) |     //io.BackendFlags |= ImGuiBackendFlags_HasMouseHoveredViewport; // We can set io.MouseHoveredViewport correctly (optional, not easy) | ||||||
|  |     io.BackendPlatformName = "imgui_impl_osx"; | ||||||
|  |  | ||||||
|     // Keyboard mapping. ImGui will use those indices to peek into the io.KeyDown[] array. |     // Keyboard mapping. ImGui will use those indices to peek into the io.KeyDown[] array. | ||||||
|     const int offset_for_function_keys = 256 - 0xF700; |     const int offset_for_function_keys = 256 - 0xF700; | ||||||
|   | |||||||
| @@ -19,6 +19,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-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. | //  2018-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. | ||||||
|  | //  2018-11-30: Misc: Setting up io.BackendPlatformName so it can be displayed in the About Window. | ||||||
| //  2018-11-14: Changed the signature of ImGui_ImplSDL2_ProcessEvent() to take a 'const SDL_Event*'. | //  2018-11-14: Changed the signature of ImGui_ImplSDL2_ProcessEvent() to take a 'const SDL_Event*'. | ||||||
| //  2018-08-01: Inputs: Workaround for Emscripten which doesn't seem to handle focus related calls. | //  2018-08-01: Inputs: Workaround for Emscripten which doesn't seem to handle focus related calls. | ||||||
| //  2018-06-29: Inputs: Added support for the ImGuiMouseCursor_Hand cursor. | //  2018-06-29: Inputs: Added support for the ImGuiMouseCursor_Hand cursor. | ||||||
| @@ -154,6 +155,7 @@ static bool ImGui_ImplSDL2_Init(SDL_Window* window, void* sdl_gl_context) | |||||||
| #if SDL_HAS_CAPTURE_MOUSE | #if SDL_HAS_CAPTURE_MOUSE | ||||||
|     io.BackendFlags |= ImGuiBackendFlags_PlatformHasViewports;  // We can create multi-viewports on the Platform side (optional) |     io.BackendFlags |= ImGuiBackendFlags_PlatformHasViewports;  // We can create multi-viewports on the Platform side (optional) | ||||||
| #endif | #endif | ||||||
|  |     io.BackendPlatformName = "imgui_impl_sdl"; | ||||||
|  |  | ||||||
|     // Keyboard mapping. ImGui will use those indices to peek into the io.KeysDown[] array. |     // Keyboard mapping. ImGui will use those indices to peek into the io.KeysDown[] array. | ||||||
|     io.KeyMap[ImGuiKey_Tab] = SDL_SCANCODE_TAB; |     io.KeyMap[ImGuiKey_Tab] = SDL_SCANCODE_TAB; | ||||||
|   | |||||||
| @@ -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-11-30: Misc: Setting up io.BackendRendererName so it can be displayed in the About Window. | ||||||
| //  2018-08-25: Vulkan: Fixed mishandled VkSurfaceCapabilitiesKHR::maxImageCount=0 case. | //  2018-08-25: Vulkan: Fixed mishandled VkSurfaceCapabilitiesKHR::maxImageCount=0 case. | ||||||
| //  2018-06-22: Inverted the parameters to ImGui_ImplVulkan_RenderDrawData() to be consistent with other bindings. | //  2018-06-22: Inverted the parameters to ImGui_ImplVulkan_RenderDrawData() to be consistent with other bindings. | ||||||
| //  2018-06-08: Misc: Extracted imgui_impl_vulkan.cpp/.h away from the old combined GLFW+Vulkan example. | //  2018-06-08: Misc: Extracted imgui_impl_vulkan.cpp/.h away from the old combined GLFW+Vulkan example. | ||||||
| @@ -700,6 +701,11 @@ void    ImGui_ImplVulkan_InvalidateDeviceObjects() | |||||||
|  |  | ||||||
| bool    ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info, VkRenderPass render_pass) | bool    ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info, VkRenderPass render_pass) | ||||||
| { | { | ||||||
|  |     // Setup back-end capabilities flags | ||||||
|  |     ImGuiIO& io = ImGui::GetIO(); | ||||||
|  |     io.BackendFlags |= ImGuiBackendFlags_RendererHasViewports;    // We can create multi-viewports on the Renderer side (optional) | ||||||
|  |     io.BackendRendererName = "imgui_impl_vulkan"; | ||||||
|  |  | ||||||
|     IM_ASSERT(info->Instance != VK_NULL_HANDLE); |     IM_ASSERT(info->Instance != VK_NULL_HANDLE); | ||||||
|     IM_ASSERT(info->PhysicalDevice != VK_NULL_HANDLE); |     IM_ASSERT(info->PhysicalDevice != VK_NULL_HANDLE); | ||||||
|     IM_ASSERT(info->Device != VK_NULL_HANDLE); |     IM_ASSERT(info->Device != VK_NULL_HANDLE); | ||||||
| @@ -720,9 +726,6 @@ bool    ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info, VkRenderPass rend | |||||||
|  |  | ||||||
|     ImGui_ImplVulkan_CreateDeviceObjects(); |     ImGui_ImplVulkan_CreateDeviceObjects(); | ||||||
|  |  | ||||||
|     // Setup back-end capabilities flags |  | ||||||
|     ImGuiIO& io = ImGui::GetIO(); |  | ||||||
|     io.BackendFlags |= ImGuiBackendFlags_RendererHasViewports;    // We can create multi-viewports on the Renderer side (optional) |  | ||||||
|     if (io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) |     if (io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable) | ||||||
|         ImGui_ImplVulkan_InitPlatformInterface(); |         ImGui_ImplVulkan_InitPlatformInterface(); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -20,6 +20,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-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. | //  2018-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. | ||||||
|  | //  2018-11-30: Misc: Setting up io.BackendPlatformName so it can be displayed in the About Window. | ||||||
| //  2018-06-29: Inputs: Added support for the ImGuiMouseCursor_Hand cursor. | //  2018-06-29: Inputs: Added support for the ImGuiMouseCursor_Hand cursor. | ||||||
| //  2018-06-10: Inputs: Fixed handling of mouse wheel messages to support fine position messages (typically sent by track-pads). | //  2018-06-10: Inputs: Fixed handling of mouse wheel messages to support fine position messages (typically sent by track-pads). | ||||||
| //  2018-06-08: Misc: Extracted imgui_impl_win32.cpp/.h away from the old combined DX9/DX10/DX11/DX12 examples. | //  2018-06-08: Misc: Extracted imgui_impl_win32.cpp/.h away from the old combined DX9/DX10/DX11/DX12 examples. | ||||||
| @@ -61,6 +62,7 @@ bool    ImGui_ImplWin32_Init(void* hwnd) | |||||||
|     io.BackendFlags |= ImGuiBackendFlags_HasSetMousePos;          // We can honor io.WantSetMousePos requests (optional, rarely used) |     io.BackendFlags |= ImGuiBackendFlags_HasSetMousePos;          // We can honor io.WantSetMousePos requests (optional, rarely used) | ||||||
|     io.BackendFlags |= ImGuiBackendFlags_PlatformHasViewports;    // We can create multi-viewports on the Platform side (optional) |     io.BackendFlags |= ImGuiBackendFlags_PlatformHasViewports;    // We can create multi-viewports on the Platform side (optional) | ||||||
|     io.BackendFlags |= ImGuiBackendFlags_HasMouseHoveredViewport; // We can set io.MouseHoveredViewport correctly (optional, not easy) |     io.BackendFlags |= ImGuiBackendFlags_HasMouseHoveredViewport; // We can set io.MouseHoveredViewport correctly (optional, not easy) | ||||||
|  |     io.BackendPlatformName = "imgui_impl_win32"; | ||||||
|  |  | ||||||
|     // Our mouse update function expect PlatformHandle to be filled for the main viewport |     // Our mouse update function expect PlatformHandle to be filled for the main viewport | ||||||
|     g_hWnd = (HWND)hwnd; |     g_hWnd = (HWND)hwnd; | ||||||
|   | |||||||
| @@ -1126,7 +1126,8 @@ ImGuiIO::ImGuiIO() | |||||||
|     ConfigInputTextCursorBlink = true; |     ConfigInputTextCursorBlink = true; | ||||||
|     ConfigResizeWindowsFromEdges = true; |     ConfigResizeWindowsFromEdges = true; | ||||||
|  |  | ||||||
|     // Settings (User Functions) |     // Platform Functions | ||||||
|  |     BackendPlatformName = BackendRendererName = NULL; | ||||||
|     GetClipboardTextFn = GetClipboardTextFn_DefaultImpl;   // Platform dependent default implementations |     GetClipboardTextFn = GetClipboardTextFn_DefaultImpl;   // Platform dependent default implementations | ||||||
|     SetClipboardTextFn = SetClipboardTextFn_DefaultImpl; |     SetClipboardTextFn = SetClipboardTextFn_DefaultImpl; | ||||||
|     ClipboardUserData = NULL; |     ClipboardUserData = NULL; | ||||||
| @@ -1135,7 +1136,7 @@ ImGuiIO::ImGuiIO() | |||||||
|     RenderDrawListsFn = NULL; |     RenderDrawListsFn = NULL; | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|     // Input (NB: we already have memset zero the entire structure) |     // Input (NB: we already have memset zero the entire structure!) | ||||||
|     MousePos = ImVec2(-FLT_MAX, -FLT_MAX); |     MousePos = ImVec2(-FLT_MAX, -FLT_MAX); | ||||||
|     MousePosPrev = ImVec2(-FLT_MAX, -FLT_MAX); |     MousePosPrev = ImVec2(-FLT_MAX, -FLT_MAX); | ||||||
|     MouseDragThreshold = 6.0f; |     MouseDragThreshold = 6.0f; | ||||||
| @@ -5832,8 +5833,10 @@ void ImGui::FocusPreviousWindowIgnoringOne(ImGuiWindow* ignore_window) | |||||||
|     ImGuiContext& g = *GImGui; |     ImGuiContext& g = *GImGui; | ||||||
|     for (int i = g.WindowsFocusOrder.Size - 1; i >= 0; i--) |     for (int i = g.WindowsFocusOrder.Size - 1; i >= 0; i--) | ||||||
|     { |     { | ||||||
|  |         // We may later decide to test for different NoXXXInputs based on the active navigation input (mouse vs nav) but that may feel more confusing to the user. | ||||||
|         ImGuiWindow* window = g.WindowsFocusOrder[i]; |         ImGuiWindow* window = g.WindowsFocusOrder[i]; | ||||||
|         if (window != ignore_window && window->WasActive && !(window->Flags & ImGuiWindowFlags_ChildWindow)) |         if (window != ignore_window && window->WasActive && !(window->Flags & ImGuiWindowFlags_ChildWindow)) | ||||||
|  |             if ((window->Flags & (ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs)) != (ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs)) | ||||||
|             { |             { | ||||||
|                 ImGuiWindow* focus_window = NavRestoreLastChildNavWindow(window); |                 ImGuiWindow* focus_window = NavRestoreLastChildNavWindow(window); | ||||||
|                 FocusWindow(focus_window); |                 FocusWindow(focus_window); | ||||||
| @@ -6235,6 +6238,8 @@ bool ImGui::IsWindowDocked() | |||||||
| } | } | ||||||
|  |  | ||||||
| // Can we focus this window with CTRL+TAB (or PadMenu + PadFocusPrev/PadFocusNext) | // Can we focus this window with CTRL+TAB (or PadMenu + PadFocusPrev/PadFocusNext) | ||||||
|  | // Note that NoNavFocus makes the window not reachable with CTRL+TAB but it can still be focused with mouse or programmaticaly. | ||||||
|  | // If you want a window to never be focused, you may use the e.g. NoInputs flag. | ||||||
| bool ImGui::IsWindowNavFocusable(ImGuiWindow* window) | bool ImGui::IsWindowNavFocusable(ImGuiWindow* window) | ||||||
| { | { | ||||||
|     return window->Active && window == window->RootWindowDockStop && !(window->Flags & ImGuiWindowFlags_NoNavFocus); |     return window->Active && window == window->RootWindowDockStop && !(window->Flags & ImGuiWindowFlags_NoNavFocus); | ||||||
|   | |||||||
							
								
								
									
										34
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -217,7 +217,8 @@ namespace ImGui | |||||||
|  |  | ||||||
|     // Demo, Debug, Information |     // Demo, Debug, Information | ||||||
|     IMGUI_API void          ShowDemoWindow(bool* p_open = NULL);        // create demo/test window (previously called ShowTestWindow). demonstrate most ImGui features. call this to learn about the library! try to make it always available in your application! |     IMGUI_API void          ShowDemoWindow(bool* p_open = NULL);        // create demo/test window (previously called ShowTestWindow). demonstrate most ImGui features. call this to learn about the library! try to make it always available in your application! | ||||||
|     IMGUI_API void          ShowMetricsWindow(bool* p_open = NULL);     // create metrics window. display ImGui internals: draw commands (with individual draw calls and vertices), window list, basic internal state, etc. |     IMGUI_API void          ShowAboutWindow(bool* p_open = NULL);       // create about window. display Dear ImGui version, credits and build/system information. | ||||||
|  |     IMGUI_API void          ShowMetricsWindow(bool* p_open = NULL);     // create metrics window. display Dear ImGui internals: draw commands (with individual draw calls and vertices), window list, basic internal state, etc. | ||||||
|     IMGUI_API void          ShowStyleEditor(ImGuiStyle* ref = NULL);    // add style editor block (not a window). you can pass in a reference ImGuiStyle structure to compare to, revert to and save to (else it uses the default style) |     IMGUI_API void          ShowStyleEditor(ImGuiStyle* ref = NULL);    // add style editor block (not a window). you can pass in a reference ImGuiStyle structure to compare to, revert to and save to (else it uses the default style) | ||||||
|     IMGUI_API bool          ShowStyleSelector(const char* label);       // add style selector block (not a window), essentially a combo listing the default styles. |     IMGUI_API bool          ShowStyleSelector(const char* label);       // add style selector block (not a window), essentially a combo listing the default styles. | ||||||
|     IMGUI_API void          ShowFontSelector(const char* label);        // add font selector block (not a window), essentially a combo listing the loaded fonts. |     IMGUI_API void          ShowFontSelector(const char* label);        // add font selector block (not a window), essentially a combo listing the loaded fonts. | ||||||
| @@ -1254,7 +1255,7 @@ struct ImGuiIO | |||||||
|     //------------------------------------------------------------------ |     //------------------------------------------------------------------ | ||||||
|  |  | ||||||
|     ImGuiConfigFlags   ConfigFlags;         // = 0                  // See ImGuiConfigFlags_ enum. Set by user/application. Gamepad/keyboard navigation options, etc. |     ImGuiConfigFlags   ConfigFlags;         // = 0                  // See ImGuiConfigFlags_ enum. Set by user/application. Gamepad/keyboard navigation options, etc. | ||||||
|     ImGuiBackendFlags  BackendFlags;        // = 0                  // Set ImGuiBackendFlags_ enum. Set by imgui_impl_xxx files or custom back-end to communicate features supported by the back-end. |     ImGuiBackendFlags  BackendFlags;        // = 0                  // See ImGuiBackendFlags_ enum. Set by back-end (imgui_impl_xxx files or custom back-end) to communicate features supported by the back-end. | ||||||
|     ImVec2        DisplaySize;              // <unset>              // Main display size, in pixels. Used e.g. to clamp windows positions. This is the default viewport. Use BeginViewport() for other viewports. |     ImVec2        DisplaySize;              // <unset>              // Main display size, in pixels. Used e.g. to clamp windows positions. This is the default viewport. Use BeginViewport() for other viewports. | ||||||
|     float         DeltaTime;                // = 1.0f/60.0f         // Time elapsed since last frame, in seconds. |     float         DeltaTime;                // = 1.0f/60.0f         // Time elapsed since last frame, in seconds. | ||||||
|     float         IniSavingRate;            // = 5.0f               // Minimum time between saving positions/sizes to .ini file, in seconds. |     float         IniSavingRate;            // = 5.0f               // Minimum time between saving positions/sizes to .ini file, in seconds. | ||||||
| @@ -1283,10 +1284,15 @@ struct ImGuiIO | |||||||
|     bool          ConfigResizeWindowsFromEdges;     // = true       // [BETA] Enable resizing of windows from their edges and from the lower-left corner. This requires (io.BackendFlags & ImGuiBackendFlags_HasMouseCursors) because it needs mouse cursor feedback. (This used to be the ImGuiWindowFlags_ResizeFromAnySide flag) |     bool          ConfigResizeWindowsFromEdges;     // = true       // [BETA] Enable resizing of windows from their edges and from the lower-left corner. This requires (io.BackendFlags & ImGuiBackendFlags_HasMouseCursors) because it needs mouse cursor feedback. (This used to be the ImGuiWindowFlags_ResizeFromAnySide flag) | ||||||
|  |  | ||||||
|     //------------------------------------------------------------------ |     //------------------------------------------------------------------ | ||||||
|     // Settings (User Functions) |     // Platform Functions | ||||||
|  |     // (the imgui_impl_xxxx back-end files are setting those up for you) | ||||||
|     //------------------------------------------------------------------ |     //------------------------------------------------------------------ | ||||||
|  |  | ||||||
|     // Optional: access OS clipboard |     // Optional: Platform/Renderer back-end name (informational only! will be displayed in About Window) | ||||||
|  |     const char* BackendPlatformName; | ||||||
|  |     const char* BackendRendererName; | ||||||
|  |  | ||||||
|  |     // Optional: Access OS clipboard | ||||||
|     // (default to use native Win32 clipboard on Windows, otherwise uses a private clipboard. Override to access OS clipboard on other architectures) |     // (default to use native Win32 clipboard on Windows, otherwise uses a private clipboard. Override to access OS clipboard on other architectures) | ||||||
|     const char* (*GetClipboardTextFn)(void* user_data); |     const char* (*GetClipboardTextFn)(void* user_data); | ||||||
|     void        (*SetClipboardTextFn)(void* user_data, const char* text); |     void        (*SetClipboardTextFn)(void* user_data, const char* text); | ||||||
| @@ -1346,7 +1352,7 @@ struct ImGuiIO | |||||||
|     // [Internal] ImGui will maintain those fields. Forward compatibility not guaranteed! |     // [Internal] ImGui will maintain those fields. Forward compatibility not guaranteed! | ||||||
|     //------------------------------------------------------------------ |     //------------------------------------------------------------------ | ||||||
|  |  | ||||||
|     ImVec2      MousePosPrev;               // Previous mouse position temporary storage (nb: not for public use, set to MousePos in NewFrame()) |     ImVec2      MousePosPrev;               // Previous mouse position (note that MouseDelta is not necessary == MousePos-MousePosPrev, in case either position is invalid) | ||||||
|     ImVec2      MouseClickedPos[5];         // Position at time of clicking |     ImVec2      MouseClickedPos[5];         // Position at time of clicking | ||||||
|     double      MouseClickedTime[5];        // Time of last click (used to figure out double-click) |     double      MouseClickedTime[5];        // Time of last click (used to figure out double-click) | ||||||
|     bool        MouseClicked[5];            // Mouse button went from !Down to Down |     bool        MouseClicked[5];            // Mouse button went from !Down to Down | ||||||
| @@ -1483,7 +1489,7 @@ namespace ImGui | |||||||
|     static inline bool  IsMouseHoveringAnyWindow()            { return IsWindowHovered(ImGuiHoveredFlags_AnyWindow); } |     static inline bool  IsMouseHoveringAnyWindow()            { return IsWindowHovered(ImGuiHoveredFlags_AnyWindow); } | ||||||
|     static inline bool  IsMouseHoveringWindow()               { return IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem); } |     static inline bool  IsMouseHoveringWindow()               { return IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem); } | ||||||
| } | } | ||||||
| typedef ImGuiInputTextCallback      ImGuiTextEditCallback;      // [OBSOLETE 1.63+] Made the names consistent | typedef ImGuiInputTextCallback      ImGuiTextEditCallback;      // OBSOLETE in 1.63 (from Aug 2018): made the names consistent | ||||||
| typedef ImGuiInputTextCallbackData  ImGuiTextEditCallbackData; | typedef ImGuiInputTextCallbackData  ImGuiTextEditCallbackData; | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| @@ -1544,7 +1550,7 @@ public: | |||||||
|         Capacity = new_capacity; |         Capacity = new_capacity; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     // NB: It is forbidden to call push_back/push_front/insert with a reference pointing inside the ImVector data itself! e.g. v.push_back(v[10]) is forbidden. |     // NB: It is illegal to call push_back/push_front/insert with a reference pointing inside the ImVector data itself! e.g. v.push_back(v[10]) is forbidden. | ||||||
|     inline void         push_back(const value_type& v)                  { if (Size == Capacity) reserve(_grow_capacity(Size + 1)); memcpy(&Data[Size], &v, sizeof(v)); Size++; } |     inline void         push_back(const value_type& v)                  { if (Size == Capacity) reserve(_grow_capacity(Size + 1)); memcpy(&Data[Size], &v, sizeof(v)); Size++; } | ||||||
|     inline void         pop_back()                                      { IM_ASSERT(Size > 0); Size--; } |     inline void         pop_back()                                      { IM_ASSERT(Size > 0); Size--; } | ||||||
|     inline void         push_front(const value_type& v)                 { if (Size == 0) push_back(v); else insert(Data, v); } |     inline void         push_front(const value_type& v)                 { if (Size == 0) push_back(v); else insert(Data, v); } | ||||||
| @@ -1753,9 +1759,10 @@ struct ImColor | |||||||
| //----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||||
|  |  | ||||||
| // Draw callbacks for advanced uses. | // Draw callbacks for advanced uses. | ||||||
| // NB- You most likely do NOT need to use draw callbacks just to create your own widget or customized UI rendering (you can poke into the draw list for that) | // NB: You most likely do NOT need to use draw callbacks just to create your own widget or customized UI rendering, | ||||||
| // Draw callback may be useful for example, A) Change your GPU render state, B) render a complex 3D scene inside a UI element (without an intermediate texture/render target), etc. | // you can poke into the draw list for that! Draw callback may be useful for example to: A) Change your GPU render state,  | ||||||
| // The expected behavior from your rendering function is 'if (cmd.UserCallback != NULL) cmd.UserCallback(parent_list, cmd); else RenderTriangles()' | // B) render a complex 3D scene inside a UI element without an intermediate texture/render target, etc. | ||||||
|  | // The expected behavior from your rendering function is 'if (cmd.UserCallback != NULL) { cmd.UserCallback(parent_list, cmd); } else { RenderTriangles() }' | ||||||
| typedef void (*ImDrawCallback)(const ImDrawList* parent_list, const ImDrawCmd* cmd); | typedef void (*ImDrawCallback)(const ImDrawList* parent_list, const ImDrawCmd* cmd); | ||||||
|  |  | ||||||
| // Typically, 1 command = 1 GPU draw call (unless command is a callback) | // Typically, 1 command = 1 GPU draw call (unless command is a callback) | ||||||
| @@ -1770,7 +1777,7 @@ struct ImDrawCmd | |||||||
|     ImDrawCmd() { ElemCount = 0; ClipRect.x = ClipRect.y = ClipRect.z = ClipRect.w = 0.0f; TextureId = (ImTextureID)NULL; UserCallback = NULL; UserCallbackData = NULL; } |     ImDrawCmd() { ElemCount = 0; ClipRect.x = ClipRect.y = ClipRect.z = ClipRect.w = 0.0f; TextureId = (ImTextureID)NULL; UserCallback = NULL; UserCallbackData = NULL; } | ||||||
| }; | }; | ||||||
|  |  | ||||||
| // Vertex index (override with '#define ImDrawIdx unsigned int' inside in imconfig.h) | // Vertex index (override with '#define ImDrawIdx unsigned int' in imconfig.h) | ||||||
| #ifndef ImDrawIdx | #ifndef ImDrawIdx | ||||||
| typedef unsigned short ImDrawIdx; | typedef unsigned short ImDrawIdx; | ||||||
| #endif | #endif | ||||||
| @@ -1814,8 +1821,9 @@ enum ImDrawCornerFlags_ | |||||||
|  |  | ||||||
| enum ImDrawListFlags_ | enum ImDrawListFlags_ | ||||||
| { | { | ||||||
|     ImDrawListFlags_AntiAliasedLines = 1 << 0, |     ImDrawListFlags_None             = 0, | ||||||
|     ImDrawListFlags_AntiAliasedFill  = 1 << 1 |     ImDrawListFlags_AntiAliasedLines = 1 << 0,  // Lines are anti-aliased (*2 the number of triangles for 1.0f wide line, otherwise *3 the number of triangles) | ||||||
|  |     ImDrawListFlags_AntiAliasedFill  = 1 << 1   // Filled shapes have anti-aliased edges (*2 the number of vertices) | ||||||
| }; | }; | ||||||
|  |  | ||||||
| // Draw command list | // Draw command list | ||||||
|   | |||||||
							
								
								
									
										143
									
								
								imgui_demo.cpp
									
									
									
									
									
								
							
							
						
						
									
										143
									
								
								imgui_demo.cpp
									
									
									
									
									
								
							| @@ -27,6 +27,7 @@ Index of this file: | |||||||
|  |  | ||||||
| // [SECTION] Forward Declarations, Helpers | // [SECTION] Forward Declarations, Helpers | ||||||
| // [SECTION] Demo Window / ShowDemoWindow() | // [SECTION] Demo Window / ShowDemoWindow() | ||||||
|  | // [SECTION] About Window / ShowAboutWindow() | ||||||
| // [SECTION] Style Editor / ShowStyleEditor() | // [SECTION] Style Editor / ShowStyleEditor() | ||||||
| // [SECTION] Example App: Main Menu Bar / ShowExampleAppMainMenuBar() | // [SECTION] Example App: Main Menu Bar / ShowExampleAppMainMenuBar() | ||||||
| // [SECTION] Example App: Debug Console / ShowExampleAppConsole() | // [SECTION] Example App: Debug Console / ShowExampleAppConsole() | ||||||
| @@ -216,15 +217,7 @@ void ImGui::ShowDemoWindow(bool* p_open) | |||||||
|  |  | ||||||
|     if (show_app_metrics)             { ImGui::ShowMetricsWindow(&show_app_metrics); } |     if (show_app_metrics)             { ImGui::ShowMetricsWindow(&show_app_metrics); } | ||||||
|     if (show_app_style_editor)        { ImGui::Begin("Style Editor", &show_app_style_editor); ImGui::ShowStyleEditor(); ImGui::End(); } |     if (show_app_style_editor)        { ImGui::Begin("Style Editor", &show_app_style_editor); ImGui::ShowStyleEditor(); ImGui::End(); } | ||||||
|     if (show_app_about) |     if (show_app_about)               { ShowAboutWindow(&show_app_about); } | ||||||
|     { |  | ||||||
|         ImGui::Begin("About Dear ImGui", &show_app_about, ImGuiWindowFlags_AlwaysAutoResize); |  | ||||||
|         ImGui::Text("Dear ImGui, %s", ImGui::GetVersion()); |  | ||||||
|         ImGui::Separator(); |  | ||||||
|         ImGui::Text("By Omar Cornut and all dear imgui contributors."); |  | ||||||
|         ImGui::Text("Dear ImGui is licensed under the MIT License, see LICENSE for more information."); |  | ||||||
|         ImGui::End(); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     // Demonstrate the various window flags. Typically you would just use the default! |     // Demonstrate the various window flags. Typically you would just use the default! | ||||||
|     static bool no_titlebar = false; |     static bool no_titlebar = false; | ||||||
| @@ -2571,6 +2564,137 @@ static void ShowDemoWindowMisc() | |||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | //----------------------------------------------------------------------------- | ||||||
|  | // [SECTION] About Window / ShowAboutWindow() | ||||||
|  | // Access from ImGui Demo -> Help -> About | ||||||
|  | //----------------------------------------------------------------------------- | ||||||
|  |  | ||||||
|  | void ImGui::ShowAboutWindow(bool* p_open) | ||||||
|  | { | ||||||
|  |     ImGui::Begin("About Dear ImGui", p_open, ImGuiWindowFlags_AlwaysAutoResize); | ||||||
|  |     ImGui::Text("Dear ImGui, %s", ImGui::GetVersion()); | ||||||
|  |     ImGui::Separator(); | ||||||
|  |     ImGui::Text("By Omar Cornut and all dear imgui contributors."); | ||||||
|  |     ImGui::Text("Dear ImGui is licensed under the MIT License, see LICENSE for more information."); | ||||||
|  |  | ||||||
|  |     static bool show_config_info = false; | ||||||
|  |     ImGui::Checkbox("Config/Build Information", &show_config_info); | ||||||
|  |     if (show_config_info) | ||||||
|  |     { | ||||||
|  |         ImGuiIO& io = ImGui::GetIO(); | ||||||
|  |         ImGuiStyle& style = ImGui::GetStyle(); | ||||||
|  |  | ||||||
|  |         bool copy_to_clipboard = ImGui::Button("Copy to clipboard"); | ||||||
|  |         ImGui::BeginChildFrame(ImGui::GetID("cfginfos"), ImVec2(0, ImGui::GetTextLineHeightWithSpacing() * 18), ImGuiWindowFlags_NoMove); | ||||||
|  |         if (copy_to_clipboard) | ||||||
|  |             ImGui::LogToClipboard(); | ||||||
|  |  | ||||||
|  |         ImGui::Text("Dear ImGui %s (%d)", IMGUI_VERSION, IMGUI_VERSION_NUM); | ||||||
|  |         ImGui::Separator(); | ||||||
|  |         ImGui::Text("sizeof(size_t): %d, sizeof(ImDrawIdx): %d, sizeof(ImDrawVert): %d", (int)sizeof(size_t), (int)sizeof(ImDrawIdx), (int)sizeof(ImDrawVert)); | ||||||
|  |         ImGui::Text("define: __cplusplus=%d", (int)__cplusplus); | ||||||
|  | #ifdef IMGUI_DISABLE_OBSOLETE_FUNCTIONS | ||||||
|  |         ImGui::Text("define: IMGUI_DISABLE_OBSOLETE_FUNCTIONS"); | ||||||
|  | #endif | ||||||
|  | #ifdef IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS | ||||||
|  |         ImGui::Text("define: IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS"); | ||||||
|  | #endif | ||||||
|  | #ifdef IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS | ||||||
|  |         ImGui::Text("define: IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS"); | ||||||
|  | #endif | ||||||
|  | #ifdef IMGUI_DISABLE_WIN32_FUNCTIONS | ||||||
|  |         ImGui::Text("define: IMGUI_DISABLE_WIN32_FUNCTIONS"); | ||||||
|  | #endif | ||||||
|  | #ifdef IMGUI_DISABLE_FORMAT_STRING_FUNCTIONS | ||||||
|  |         ImGui::Text("define: IMGUI_DISABLE_FORMAT_STRING_FUNCTIONS"); | ||||||
|  | #endif | ||||||
|  | #ifdef IMGUI_DISABLE_MATH_FUNCTIONS | ||||||
|  |         ImGui::Text("define: IMGUI_DISABLE_MATH_FUNCTIONS"); | ||||||
|  | #endif | ||||||
|  | #ifdef IMGUI_DISABLE_DEFAULT_ALLOCATORS | ||||||
|  |         ImGui::Text("define: IMGUI_DISABLE_DEFAULT_ALLOCATORS"); | ||||||
|  | #endif | ||||||
|  | #ifdef IMGUI_USE_BGRA_PACKED_COLOR | ||||||
|  |         ImGui::Text("define: IMGUI_USE_BGRA_PACKED_COLOR"); | ||||||
|  | #endif | ||||||
|  | #ifdef _WIN32 | ||||||
|  |         ImGui::Text("define: _WIN32"); | ||||||
|  | #endif | ||||||
|  | #ifdef _WIN64 | ||||||
|  |         ImGui::Text("define: _WIN64"); | ||||||
|  | #endif | ||||||
|  | #ifdef __linux__ | ||||||
|  |         ImGui::Text("define: __linux__"); | ||||||
|  | #endif | ||||||
|  | #ifdef __APPLE__ | ||||||
|  |         ImGui::Text("define: __APPLE__"); | ||||||
|  | #endif | ||||||
|  | #ifdef _MSC_VER | ||||||
|  |         ImGui::Text("define: _MSC_VER=%d", _MSC_VER); | ||||||
|  | #endif | ||||||
|  | #ifdef __MINGW32__ | ||||||
|  |         ImGui::Text("define: __MINGW32__"); | ||||||
|  | #endif | ||||||
|  | #ifdef __MINGW64__ | ||||||
|  |         ImGui::Text("define: __MINGW64__"); | ||||||
|  | #endif | ||||||
|  | #ifdef __GNUC__ | ||||||
|  |         ImGui::Text("define: __GNUC__=%d", (int)__GNUC__); | ||||||
|  | #endif | ||||||
|  | #ifdef __clang_version__ | ||||||
|  |         ImGui::Text("define: __clang_version__=%s", __clang_version__); | ||||||
|  | #endif | ||||||
|  | #ifdef IMGUI_HAS_VIEWPORT | ||||||
|  |         ImGui::Text("define: IMGUI_HAS_VIEWPORT"); | ||||||
|  | #endif | ||||||
|  |         ImGui::Separator(); | ||||||
|  |         ImGui::Text("io.ConfigFlags: 0x%08X", io.ConfigFlags); | ||||||
|  |         if (io.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard)        ImGui::Text(" NavEnableKeyboard"); | ||||||
|  |         if (io.ConfigFlags & ImGuiConfigFlags_NavEnableGamepad)         ImGui::Text(" NavEnableGamepad"); | ||||||
|  |         if (io.ConfigFlags & ImGuiConfigFlags_NavEnableSetMousePos)     ImGui::Text(" NavEnableSetMousePos"); | ||||||
|  |         if (io.ConfigFlags & ImGuiConfigFlags_NavNoCaptureKeyboard)     ImGui::Text(" NavNoCaptureKeyboard"); | ||||||
|  |         if (io.ConfigFlags & ImGuiConfigFlags_NoMouse)                  ImGui::Text(" NoMouse"); | ||||||
|  |         if (io.ConfigFlags & ImGuiConfigFlags_NoMouseCursorChange)      ImGui::Text(" NoMouseCursorChange"); | ||||||
|  |         if (io.ConfigFlags & ImGuiConfigFlags_ViewportsEnable)          ImGui::Text(" ViewportsEnable"); | ||||||
|  |         if (io.ConfigFlags & ImGuiConfigFlags_ViewportsNoTaskBarIcon)   ImGui::Text(" ViewportsNoTaskBarIcon"); | ||||||
|  |         if (io.ConfigFlags & ImGuiConfigFlags_ViewportsNoMerge)         ImGui::Text(" ViewportsNoMerge"); | ||||||
|  |         if (io.ConfigFlags & ImGuiConfigFlags_ViewportsDecoration)      ImGui::Text(" ViewportsDecoration"); | ||||||
|  |         if (io.ConfigFlags & ImGuiConfigFlags_DpiEnableScaleViewports)  ImGui::Text(" DpiEnableScaleViewports"); | ||||||
|  |         if (io.ConfigFlags & ImGuiConfigFlags_DpiEnableScaleFonts)      ImGui::Text(" DpiEnableScaleFonts"); | ||||||
|  |         if (io.ConfigFlags & ImGuiConfigFlags_IsSRGB)                   ImGui::Text(" IsSRGB"); | ||||||
|  |         if (io.ConfigFlags & ImGuiConfigFlags_IsTouchScreen)            ImGui::Text(" IsTouchScreen"); | ||||||
|  |         if (io.MouseDrawCursor)                                         ImGui::Text(" MouseDrawCursor"); | ||||||
|  |         if (io.ConfigMacOSXBehaviors)                                   ImGui::Text(" ConfigMacOSXBehaviors"); | ||||||
|  |         if (io.ConfigInputTextCursorBlink)                              ImGui::Text(" ConfigInputTextCursorBlink"); | ||||||
|  |         if (io.ConfigResizeWindowsFromEdges)                            ImGui::Text(" ConfigResizeWindowsFromEdges"); | ||||||
|  |         ImGui::Text("io.BackendFlags: 0x%08X", io.BackendFlags); | ||||||
|  |         if (io.BackendFlags & ImGuiBackendFlags_HasGamepad)             ImGui::Text(" HasGamepad"); | ||||||
|  |         if (io.BackendFlags & ImGuiBackendFlags_HasMouseCursors)        ImGui::Text(" HasMouseCursors"); | ||||||
|  |         if (io.BackendFlags & ImGuiBackendFlags_HasSetMousePos)         ImGui::Text(" HasSetMousePos"); | ||||||
|  |         if (io.BackendFlags & ImGuiBackendFlags_PlatformHasViewports)   ImGui::Text(" PlatformHasViewports"); | ||||||
|  |         if (io.BackendFlags & ImGuiBackendFlags_HasMouseHoveredViewport)ImGui::Text(" HasMouseHoveredViewport"); | ||||||
|  |         if (io.BackendFlags & ImGuiBackendFlags_RendererHasViewports)   ImGui::Text(" RendererHasViewports"); | ||||||
|  |         ImGui::Text("io.BackendPlatformName: %s", io.BackendPlatformName ? io.BackendPlatformName : "NULL"); | ||||||
|  |         ImGui::Text("io.BackendRendererName: %s", io.BackendRendererName ? io.BackendRendererName : "NULL"); | ||||||
|  |         ImGui::Separator(); | ||||||
|  |         ImGui::Text("io.Fonts: %d fonts, Flags: 0x%08X, TexSize: %d,%d", io.Fonts->Fonts.Size, io.Fonts->Flags, io.Fonts->TexWidth, io.Fonts->TexHeight); | ||||||
|  |         ImGui::Text("io.DisplaySize: %.2f,%.2f", io.DisplaySize.x, io.DisplaySize.y); | ||||||
|  |         ImGui::Separator(); | ||||||
|  |         ImGui::Text("style.WindowPadding: %.2f,%.2f", style.WindowPadding.x, style.WindowPadding.y); | ||||||
|  |         ImGui::Text("style.WindowBorderSize: %.2f", style.WindowBorderSize); | ||||||
|  |         ImGui::Text("style.FramePadding: %.2f,%.2f", style.FramePadding.x, style.FramePadding.y); | ||||||
|  |         ImGui::Text("style.FrameRounding: %.2f", style.FrameRounding); | ||||||
|  |         ImGui::Text("style.FrameBorderSize: %.2f", style.FrameBorderSize); | ||||||
|  |         ImGui::Text("style.ItemSpacing: %.2f,%.2f", style.ItemSpacing.x, style.ItemSpacing.y); | ||||||
|  |         ImGui::Text("style.ItemInnerSpacing: %.2f,%.2f", style.ItemInnerSpacing.x, style.ItemInnerSpacing.y); | ||||||
|  |  | ||||||
|  |         if (copy_to_clipboard) | ||||||
|  |             ImGui::LogFinish(); | ||||||
|  |         ImGui::EndChildFrame(); | ||||||
|  |     } | ||||||
|  |     ImGui::End(); | ||||||
|  | } | ||||||
|  |  | ||||||
| //----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||||
| // [SECTION] Style Editor / ShowStyleEditor() | // [SECTION] Style Editor / ShowStyleEditor() | ||||||
| //----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||||
| @@ -4179,6 +4303,7 @@ void ShowExampleAppDocuments(bool* p_open) | |||||||
| // End of Demo code | // End of Demo code | ||||||
| #else | #else | ||||||
|  |  | ||||||
|  | void ImGui::ShowAboutWindow(bool*) {} | ||||||
| void ImGui::ShowDemoWindow(bool*) {} | void ImGui::ShowDemoWindow(bool*) {} | ||||||
| void ImGui::ShowUserGuide() {} | void ImGui::ShowUserGuide() {} | ||||||
| void ImGui::ShowStyleEditor(ImGuiStyle*) {} | void ImGui::ShowStyleEditor(ImGuiStyle*) {} | ||||||
|   | |||||||
| @@ -883,7 +883,7 @@ struct ImGuiContext | |||||||
|     ImGuiID                 NavJustTabbedId;                    // Just tabbed to this id. |     ImGuiID                 NavJustTabbedId;                    // Just tabbed to this id. | ||||||
|     ImGuiID                 NavJustMovedToId;                   // Just navigated to this id (result of a successfully MoveRequest) |     ImGuiID                 NavJustMovedToId;                   // Just navigated to this id (result of a successfully MoveRequest) | ||||||
|     ImGuiID                 NavNextActivateId;                  // Set by ActivateItem(), queued until next frame |     ImGuiID                 NavNextActivateId;                  // Set by ActivateItem(), queued until next frame | ||||||
|     ImGuiInputSource        NavInputSource;                     // Keyboard or Gamepad mode? |     ImGuiInputSource        NavInputSource;                     // Keyboard or Gamepad mode? THIS WILL ONLY BE None or NavGamepad or NavKeyboard. | ||||||
|     ImRect                  NavScoringRectScreen;               // Rectangle used for scoring, in screen space. Based of window->DC.NavRefRectRel[], modified for directional navigation scoring. |     ImRect                  NavScoringRectScreen;               // Rectangle used for scoring, in screen space. Based of window->DC.NavRefRectRel[], modified for directional navigation scoring. | ||||||
|     int                     NavScoringCount;                    // Metrics for debugging |     int                     NavScoringCount;                    // Metrics for debugging | ||||||
|     ImGuiWindow*            NavWindowingTarget;                 // When selecting a window (holding Menu+FocusPrev/Next, or equivalent of CTRL-TAB) this window is temporarily displayed front-most. |     ImGuiWindow*            NavWindowingTarget;                 // When selecting a window (holding Menu+FocusPrev/Next, or equivalent of CTRL-TAB) this window is temporarily displayed front-most. | ||||||
|   | |||||||
| @@ -1186,7 +1186,7 @@ void ImGui::Separator() | |||||||
|     window->DrawList->AddLine(bb.Min, ImVec2(bb.Max.x,bb.Min.y), GetColorU32(ImGuiCol_Separator)); |     window->DrawList->AddLine(bb.Min, ImVec2(bb.Max.x,bb.Min.y), GetColorU32(ImGuiCol_Separator)); | ||||||
|  |  | ||||||
|     if (g.LogEnabled) |     if (g.LogEnabled) | ||||||
|         LogRenderedText(NULL, IM_NEWLINE "--------------------------------"); |         LogRenderedText(&bb.Min, "--------------------------------"); | ||||||
|  |  | ||||||
|     if (window->DC.ColumnsSet) |     if (window->DC.ColumnsSet) | ||||||
|     { |     { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user