mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 05:01:05 +01:00 
			
		
		
		
	Merge branch 'master' into viewport
# Conflicts: # examples/example_sdl_vulkan/main.cpp # examples/imgui_impl_dx11.cpp # examples/imgui_impl_dx12.cpp # examples/imgui_impl_glfw.cpp # examples/imgui_impl_sdl.cpp # examples/imgui_impl_vulkan.h # imgui.cpp
This commit is contained in:
		| @@ -11,7 +11,10 @@ indent_size = 4 | |||||||
| insert_final_newline = true | insert_final_newline = true | ||||||
| trim_trailing_whitespace = true | trim_trailing_whitespace = true | ||||||
|  |  | ||||||
| # Makefile | [imstb_*] | ||||||
|  | indent_size = 3 | ||||||
|  | trim_trailing_whitespace = false | ||||||
|  |  | ||||||
| [Makefile] | [Makefile] | ||||||
| indent_style = tab | indent_style = tab | ||||||
| indent_size = 4 | indent_size = 4 | ||||||
|   | |||||||
| @@ -175,8 +175,8 @@ User screenshots: | |||||||
| <br>[Gallery Part 4](https://github.com/ocornut/imgui/issues/973) (Jan 2017 to Aug 2017) | <br>[Gallery Part 4](https://github.com/ocornut/imgui/issues/973) (Jan 2017 to Aug 2017) | ||||||
| <br>[Gallery Part 5](https://github.com/ocornut/imgui/issues/1269) (Aug 2017 to Feb 2018) | <br>[Gallery Part 5](https://github.com/ocornut/imgui/issues/1269) (Aug 2017 to Feb 2018) | ||||||
| <br>[Gallery Part 6](https://github.com/ocornut/imgui/issues/1607) (Feb 2018 to June 2018) | <br>[Gallery Part 6](https://github.com/ocornut/imgui/issues/1607) (Feb 2018 to June 2018) | ||||||
| <br>[Gallery Part 7](https://github.com/ocornut/imgui/issues/1902) (June 2018 to January 2018) | <br>[Gallery Part 7](https://github.com/ocornut/imgui/issues/1902) (June 2018 to January 2019) | ||||||
| <br>[Gallery Part 8](https://github.com/ocornut/imgui/issues/2265) (January 2018 onward) | <br>[Gallery Part 8](https://github.com/ocornut/imgui/issues/2265) (January 2019 onward) | ||||||
| <br>Also see the [Mega screenshots](https://github.com/ocornut/imgui/issues/1273) for an idea of the available features. | <br>Also see the [Mega screenshots](https://github.com/ocornut/imgui/issues/1273) for an idea of the available features. | ||||||
|  |  | ||||||
| Custom engine | Custom engine | ||||||
|   | |||||||
| @@ -1,4 +1,3 @@ | |||||||
|  |  | ||||||
| #import <TargetConditionals.h> | #import <TargetConditionals.h> | ||||||
|  |  | ||||||
| #if TARGET_OS_IPHONE | #if TARGET_OS_IPHONE | ||||||
|   | |||||||
| @@ -1,4 +1,3 @@ | |||||||
|  |  | ||||||
| #import "AppDelegate.h" | #import "AppDelegate.h" | ||||||
|  |  | ||||||
| @implementation AppDelegate | @implementation AppDelegate | ||||||
|   | |||||||
| @@ -1,4 +1,3 @@ | |||||||
|  |  | ||||||
| #import <MetalKit/MetalKit.h> | #import <MetalKit/MetalKit.h> | ||||||
|  |  | ||||||
| @interface Renderer : NSObject <MTKViewDelegate> | @interface Renderer : NSObject <MTKViewDelegate> | ||||||
|   | |||||||
| @@ -1,4 +1,3 @@ | |||||||
|  |  | ||||||
| #import "Renderer.h" | #import "Renderer.h" | ||||||
| #import <Metal/Metal.h> | #import <Metal/Metal.h> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,4 +1,3 @@ | |||||||
|  |  | ||||||
| #import <Metal/Metal.h> | #import <Metal/Metal.h> | ||||||
| #import <MetalKit/MetalKit.h> | #import <MetalKit/MetalKit.h> | ||||||
| #import "Renderer.h" | #import "Renderer.h" | ||||||
|   | |||||||
| @@ -1,4 +1,3 @@ | |||||||
|  |  | ||||||
| #import "ViewController.h" | #import "ViewController.h" | ||||||
| #import "Renderer.h" | #import "Renderer.h" | ||||||
| #include "imgui.h" | #include "imgui.h" | ||||||
|   | |||||||
| @@ -1,4 +1,3 @@ | |||||||
|  |  | ||||||
| #import <TargetConditionals.h> | #import <TargetConditionals.h> | ||||||
|  |  | ||||||
| #if TARGET_OS_IPHONE | #if TARGET_OS_IPHONE | ||||||
|   | |||||||
| @@ -140,8 +140,14 @@ int main(int, char**) | |||||||
|         glViewport(0, 0, display_w, display_h); |         glViewport(0, 0, display_w, display_h); | ||||||
|         glClearColor(clear_color.x, clear_color.y, clear_color.z, clear_color.w); |         glClearColor(clear_color.x, clear_color.y, clear_color.z, clear_color.w); | ||||||
|         glClear(GL_COLOR_BUFFER_BIT); |         glClear(GL_COLOR_BUFFER_BIT); | ||||||
|         //glUseProgram(0); // You may want this if using this code in an OpenGL 3+ context where shaders may be bound, but prefer using the GL3+ code. |  | ||||||
|  |         // If you are using this code with non-legacy OpenGL header/contexts (which you should not, prefer using imgui_impl_opengl3.cpp!!),  | ||||||
|  |         // you may need to backup/reset/restore current shader using the commented lines below. | ||||||
|  |         //GLint last_program;  | ||||||
|  |         //glGetIntegerv(GL_CURRENT_PROGRAM, &last_program); | ||||||
|  |         //glUseProgram(0); | ||||||
|         ImGui_ImplOpenGL2_RenderDrawData(ImGui::GetDrawData()); |         ImGui_ImplOpenGL2_RenderDrawData(ImGui::GetDrawData()); | ||||||
|  |         //glUseProgram(last_program); | ||||||
|  |  | ||||||
|         // Update and Render additional Platform Windows |         // Update and Render additional Platform Windows | ||||||
|         // (Platform functions may change the current OpenGL context, so we save/restore it to make it easier to paste this code elsewhere. |         // (Platform functions may change the current OpenGL context, so we save/restore it to make it easier to paste this code elsewhere. | ||||||
|   | |||||||
| @@ -113,7 +113,14 @@ void ImGui_ImplOpenGL2_RenderDrawData(ImDrawData* draw_data) | |||||||
|     glEnableClientState(GL_COLOR_ARRAY); |     glEnableClientState(GL_COLOR_ARRAY); | ||||||
|     glEnable(GL_TEXTURE_2D); |     glEnable(GL_TEXTURE_2D); | ||||||
|     glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); |     glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); | ||||||
|     //glUseProgram(0); // You may want this if using this code in an OpenGL 3+ context where shaders may be bound |  | ||||||
|  |     // If you are using this code with non-legacy OpenGL header/contexts (which you should not, prefer using imgui_impl_opengl3.cpp!!),  | ||||||
|  |     // you may need to backup/reset/restore current shader using the lines below. DO NOT MODIFY THIS FILE! Add the code in your calling function: | ||||||
|  |     //  GLint last_program;  | ||||||
|  |     //  glGetIntegerv(GL_CURRENT_PROGRAM, &last_program); | ||||||
|  |     //  glUseProgram(0); | ||||||
|  |     //  ImGui_ImplOpenGL2_RenderDrawData(...); | ||||||
|  |     //  glUseProgram(last_program) | ||||||
|  |  | ||||||
|     // Setup viewport, orthographic projection matrix |     // Setup viewport, orthographic projection matrix | ||||||
|     // Our visible imgui space lies from draw_data->DisplayPos (top left) to draw_data->DisplayPos+data_data->DisplaySize (bottom right). DisplayMin is (0,0) for single viewport apps. |     // Our visible imgui space lies from draw_data->DisplayPos (top left) to draw_data->DisplayPos+data_data->DisplaySize (bottom right). DisplayMin is (0,0) for single viewport apps. | ||||||
|   | |||||||
| @@ -295,7 +295,7 @@ static void ImGui_ImplSDL2_UpdateMousePosAndButtons() | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     // SDL_CaptureMouse() will let the OS know that our drag outside the SDL window boundaries shouldn't trigger the OS window resize cursor. |     // SDL_CaptureMouse() let the OS know e.g. that our imgui drag outside the SDL window boundaries shouldn't e.g. trigger the OS window resize cursor. | ||||||
|     // The function is only supported from SDL 2.0.4 (released Jan 2016) |     // The function is only supported from SDL 2.0.4 (released Jan 2016) | ||||||
|     bool any_mouse_button_down = ImGui::IsAnyMouseDown(); |     bool any_mouse_button_down = ImGui::IsAnyMouseDown(); | ||||||
|     SDL_CaptureMouse(any_mouse_button_down ? SDL_TRUE : SDL_FALSE); |     SDL_CaptureMouse(any_mouse_button_down ? SDL_TRUE : SDL_FALSE); | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -968,7 +968,9 @@ CODE | |||||||
| #pragma clang diagnostic ignored "-Wsign-conversion"        // warning : implicit conversion changes signedness             // | #pragma clang diagnostic ignored "-Wsign-conversion"        // warning : implicit conversion changes signedness             // | ||||||
| #pragma clang diagnostic ignored "-Wformat-pedantic"        // warning : format specifies type 'void *' but the argument has type 'xxxx *' // unreasonable, would lead to casting every %p arg to void*. probably enabled by -pedantic. | #pragma clang diagnostic ignored "-Wformat-pedantic"        // warning : format specifies type 'void *' but the argument has type 'xxxx *' // unreasonable, would lead to casting every %p arg to void*. probably enabled by -pedantic. | ||||||
| #pragma clang diagnostic ignored "-Wint-to-void-pointer-cast"       // warning : cast to 'void *' from smaller integer type 'int' | #pragma clang diagnostic ignored "-Wint-to-void-pointer-cast"       // warning : cast to 'void *' from smaller integer type 'int' | ||||||
|  | #if __has_warning("-Wzero-as-null-pointer-constant") | ||||||
| #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"  // warning : zero as null pointer constant              // some standard header variations use #define NULL 0 | #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"  // warning : zero as null pointer constant              // some standard header variations use #define NULL 0 | ||||||
|  | #endif | ||||||
| #if __has_warning("-Wdouble-promotion") | #if __has_warning("-Wdouble-promotion") | ||||||
| #pragma clang diagnostic ignored "-Wdouble-promotion"       // warning: implicit conversion from 'float' to 'double' when passing argument to function  // using printf() is a misery with this as C++ va_arg ellipsis changes float to double. | #pragma clang diagnostic ignored "-Wdouble-promotion"       // warning: implicit conversion from 'float' to 'double' when passing argument to function  // using printf() is a misery with this as C++ va_arg ellipsis changes float to double. | ||||||
| #endif | #endif | ||||||
| @@ -1059,11 +1061,19 @@ static int              FindPlatformMonitorForRect(const ImRect& r); | |||||||
| //----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||||||
|  |  | ||||||
| // Current context pointer. Implicitly used by all Dear ImGui functions. Always assumed to be != NULL. | // Current context pointer. Implicitly used by all Dear ImGui functions. Always assumed to be != NULL. | ||||||
| // CreateContext() will automatically set this pointer if it is NULL. Change to a different context by calling ImGui::SetCurrentContext(). | // ImGui::CreateContext() will automatically set this pointer if it is NULL. Change to a different context by calling ImGui::SetCurrentContext(). | ||||||
| // If you use DLL hotreloading you might need to call SetCurrentContext() after reloading code from this file. | // 1) Important: globals are not shared across DLL boundaries! If you use DLLs or any form of hot-reloading: you will need to call | ||||||
| // ImGui functions are not thread-safe because of this pointer. If you want thread-safety to allow N threads to access N different contexts, you can: | //    SetCurrentContext() (with the pointer you got from CreateContext) from each unique static/DLL boundary, and after each hot-reloading. | ||||||
| // - Change this variable to use thread local storage. You may #define GImGui in imconfig.h for that purpose. Future development aim to make this context pointer explicit to all calls. Also read https://github.com/ocornut/imgui/issues/586 | //    In your debugger, add GImGui to your watch window and notice how its value changes depending on which location you are currently stepping into. | ||||||
| // - Having multiple instances of the ImGui code compiled inside different namespace (easiest/safest, if you have a finite number of contexts) | // 2) Important: Dear ImGui functions are not thread-safe because of this pointer. | ||||||
|  | //    If you want thread-safety to allow N threads to access N different contexts, you can: | ||||||
|  | //    - Change this variable to use thread local storage so each thread can refer to a different context, in imconfig.h: | ||||||
|  | //          struct ImGuiContext; | ||||||
|  | //          extern thread_local ImGuiContext* MyImGuiTLS; | ||||||
|  | //          #define GImGui MyImGuiTLS | ||||||
|  | //      And then define MyImGuiTLS in one of your cpp file. Note that thread_local is a C++11 keyword, earlier C++ uses compiler-specific keyword. | ||||||
|  | //    - Future development aim to make this context pointer explicit to all calls. Also read https://github.com/ocornut/imgui/issues/586 | ||||||
|  | //    - If you need a finite number of contexts, you may compile and use multiple instances of the ImGui code from different namespace. | ||||||
| #ifndef GImGui | #ifndef GImGui | ||||||
| ImGuiContext*   GImGui = NULL; | ImGuiContext*   GImGui = NULL; | ||||||
| #endif | #endif | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -79,7 +79,9 @@ Index of this file: | |||||||
| #if defined(__clang__) | #if defined(__clang__) | ||||||
| #pragma clang diagnostic push | #pragma clang diagnostic push | ||||||
| #pragma clang diagnostic ignored "-Wold-style-cast" | #pragma clang diagnostic ignored "-Wold-style-cast" | ||||||
|  | #if __has_warning("-Wzero-as-null-pointer-constant") | ||||||
| #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" | #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" | ||||||
|  | #endif | ||||||
| #elif defined(__GNUC__) && __GNUC__ >= 8 | #elif defined(__GNUC__) && __GNUC__ >= 8 | ||||||
| #pragma GCC diagnostic push | #pragma GCC diagnostic push | ||||||
| #pragma GCC diagnostic ignored "-Wclass-memaccess" | #pragma GCC diagnostic ignored "-Wclass-memaccess" | ||||||
|   | |||||||
| @@ -70,7 +70,9 @@ Index of this file: | |||||||
| #pragma clang diagnostic ignored "-Wint-to-void-pointer-cast"   // warning : cast to 'void *' from smaller integer type 'int' | #pragma clang diagnostic ignored "-Wint-to-void-pointer-cast"   // warning : cast to 'void *' from smaller integer type 'int' | ||||||
| #pragma clang diagnostic ignored "-Wformat-security"            // warning : warning: format string is not a string literal | #pragma clang diagnostic ignored "-Wformat-security"            // warning : warning: format string is not a string literal | ||||||
| #pragma clang diagnostic ignored "-Wexit-time-destructors"      // warning : declaration requires an exit-time destructor       // exit-time destruction order is undefined. if MemFree() leads to users code that has been disabled before exit it might cause problems. ImGui coding style welcomes static/globals. | #pragma clang diagnostic ignored "-Wexit-time-destructors"      // warning : declaration requires an exit-time destructor       // exit-time destruction order is undefined. if MemFree() leads to users code that has been disabled before exit it might cause problems. ImGui coding style welcomes static/globals. | ||||||
|  | #if __has_warning("-Wzero-as-null-pointer-constant") | ||||||
| #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"  // warning : zero as null pointer constant                  // some standard header variations use #define NULL 0 | #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"  // warning : zero as null pointer constant                  // some standard header variations use #define NULL 0 | ||||||
|  | #endif | ||||||
| #if __has_warning("-Wdouble-promotion") | #if __has_warning("-Wdouble-promotion") | ||||||
| #pragma clang diagnostic ignored "-Wdouble-promotion"           // warning: implicit conversion from 'float' to 'double' when passing argument to function  // using printf() is a misery with this as C++ va_arg ellipsis changes float to double. | #pragma clang diagnostic ignored "-Wdouble-promotion"           // warning: implicit conversion from 'float' to 'double' when passing argument to function  // using printf() is a misery with this as C++ va_arg ellipsis changes float to double. | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -57,7 +57,9 @@ Index of this file: | |||||||
| #pragma clang diagnostic ignored "-Wfloat-equal"            // warning : comparing floating point with == or != is unsafe   // storing and comparing against same constants ok. | #pragma clang diagnostic ignored "-Wfloat-equal"            // warning : comparing floating point with == or != is unsafe   // storing and comparing against same constants ok. | ||||||
| #pragma clang diagnostic ignored "-Wglobal-constructors"    // warning : declaration requires a global destructor           // similar to above, not sure what the exact difference it. | #pragma clang diagnostic ignored "-Wglobal-constructors"    // warning : declaration requires a global destructor           // similar to above, not sure what the exact difference it. | ||||||
| #pragma clang diagnostic ignored "-Wsign-conversion"        // warning : implicit conversion changes signedness             // | #pragma clang diagnostic ignored "-Wsign-conversion"        // warning : implicit conversion changes signedness             // | ||||||
|  | #if __has_warning("-Wzero-as-null-pointer-constant") | ||||||
| #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"  // warning : zero as null pointer constant              // some standard header variations use #define NULL 0 | #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"  // warning : zero as null pointer constant              // some standard header variations use #define NULL 0 | ||||||
|  | #endif | ||||||
| #if __has_warning("-Wcomma") | #if __has_warning("-Wcomma") | ||||||
| #pragma clang diagnostic ignored "-Wcomma"                  // warning : possible misuse of comma operator here             // | #pragma clang diagnostic ignored "-Wcomma"                  // warning : possible misuse of comma operator here             // | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -46,7 +46,9 @@ Index of this file: | |||||||
| #pragma clang diagnostic ignored "-Wunused-function"                // for stb_textedit.h | #pragma clang diagnostic ignored "-Wunused-function"                // for stb_textedit.h | ||||||
| #pragma clang diagnostic ignored "-Wmissing-prototypes"             // for stb_textedit.h | #pragma clang diagnostic ignored "-Wmissing-prototypes"             // for stb_textedit.h | ||||||
| #pragma clang diagnostic ignored "-Wold-style-cast" | #pragma clang diagnostic ignored "-Wold-style-cast" | ||||||
|  | #if __has_warning("-Wzero-as-null-pointer-constant") | ||||||
| #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" | #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" | ||||||
|  | #endif | ||||||
| #if __has_warning("-Wdouble-promotion") | #if __has_warning("-Wdouble-promotion") | ||||||
| #pragma clang diagnostic ignored "-Wdouble-promotion" | #pragma clang diagnostic ignored "-Wdouble-promotion" | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -56,7 +56,9 @@ Index of this file: | |||||||
| #pragma clang diagnostic ignored "-Wfloat-equal"            // warning : comparing floating point with == or != is unsafe   // storing and comparing against same constants (typically 0.0f) is ok. | #pragma clang diagnostic ignored "-Wfloat-equal"            // warning : comparing floating point with == or != is unsafe   // storing and comparing against same constants (typically 0.0f) is ok. | ||||||
| #pragma clang diagnostic ignored "-Wformat-nonliteral"      // warning : format string is not a string literal              // passing non-literal to vsnformat(). yes, user passing incorrect format strings can crash the code. | #pragma clang diagnostic ignored "-Wformat-nonliteral"      // warning : format string is not a string literal              // passing non-literal to vsnformat(). yes, user passing incorrect format strings can crash the code. | ||||||
| #pragma clang diagnostic ignored "-Wsign-conversion"        // warning : implicit conversion changes signedness             // | #pragma clang diagnostic ignored "-Wsign-conversion"        // warning : implicit conversion changes signedness             // | ||||||
|  | #if __has_warning("-Wzero-as-null-pointer-constant") | ||||||
| #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"  // warning : zero as null pointer constant              // some standard header variations use #define NULL 0 | #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"  // warning : zero as null pointer constant              // some standard header variations use #define NULL 0 | ||||||
|  | #endif | ||||||
| #if __has_warning("-Wdouble-promotion") | #if __has_warning("-Wdouble-promotion") | ||||||
| #pragma clang diagnostic ignored "-Wdouble-promotion"       // warning: implicit conversion from 'float' to 'double' when passing argument to function  // using printf() is a misery with this as C++ va_arg ellipsis changes float to double. | #pragma clang diagnostic ignored "-Wdouble-promotion"       // warning: implicit conversion from 'float' to 'double' when passing argument to function  // using printf() is a misery with this as C++ va_arg ellipsis changes float to double. | ||||||
| #endif | #endif | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user