mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-30 20:51:06 +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 | ||||
| trim_trailing_whitespace = true | ||||
|  | ||||
| # Makefile | ||||
| [imstb_*] | ||||
| indent_size = 3 | ||||
| trim_trailing_whitespace = false | ||||
|  | ||||
| [Makefile] | ||||
| indent_style = tab | ||||
| 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 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 7](https://github.com/ocornut/imgui/issues/1902) (June 2018 to January 2018) | ||||
| <br>[Gallery Part 8](https://github.com/ocornut/imgui/issues/2265) (January 2018 onward) | ||||
| <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 2019 onward) | ||||
| <br>Also see the [Mega screenshots](https://github.com/ocornut/imgui/issues/1273) for an idea of the available features. | ||||
|  | ||||
| Custom engine | ||||
|   | ||||
| @@ -1,4 +1,3 @@ | ||||
|  | ||||
| #import <TargetConditionals.h> | ||||
|  | ||||
| #if TARGET_OS_IPHONE | ||||
|   | ||||
| @@ -1,4 +1,3 @@ | ||||
|  | ||||
| #import "AppDelegate.h" | ||||
|  | ||||
| @implementation AppDelegate | ||||
|   | ||||
| @@ -1,4 +1,3 @@ | ||||
|  | ||||
| #import <MetalKit/MetalKit.h> | ||||
|  | ||||
| @interface Renderer : NSObject <MTKViewDelegate> | ||||
|   | ||||
| @@ -1,4 +1,3 @@ | ||||
|  | ||||
| #import "Renderer.h" | ||||
| #import <Metal/Metal.h> | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1,3 @@ | ||||
|  | ||||
| #import <Metal/Metal.h> | ||||
| #import <MetalKit/MetalKit.h> | ||||
| #import "Renderer.h" | ||||
|   | ||||
| @@ -1,4 +1,3 @@ | ||||
|  | ||||
| #import "ViewController.h" | ||||
| #import "Renderer.h" | ||||
| #include "imgui.h" | ||||
|   | ||||
| @@ -1,4 +1,3 @@ | ||||
|  | ||||
| #import <TargetConditionals.h> | ||||
|  | ||||
| #if TARGET_OS_IPHONE | ||||
|   | ||||
| @@ -140,8 +140,14 @@ int main(int, char**) | ||||
|         glViewport(0, 0, display_w, display_h); | ||||
|         glClearColor(clear_color.x, clear_color.y, clear_color.z, clear_color.w); | ||||
|         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()); | ||||
|         //glUseProgram(last_program); | ||||
|  | ||||
|         // 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. | ||||
|   | ||||
| @@ -113,7 +113,14 @@ void ImGui_ImplOpenGL2_RenderDrawData(ImDrawData* draw_data) | ||||
|     glEnableClientState(GL_COLOR_ARRAY); | ||||
|     glEnable(GL_TEXTURE_2D); | ||||
|     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 | ||||
|     // 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) | ||||
|     bool any_mouse_button_down = ImGui::IsAnyMouseDown(); | ||||
|     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 "-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' | ||||
| #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 | ||||
| #endif | ||||
| #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. | ||||
| #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. | ||||
| // 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. | ||||
| // 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. 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 | ||||
| // - Having multiple instances of the ImGui code compiled inside different namespace (easiest/safest, if you have a finite number of contexts) | ||||
| // ImGui::CreateContext() will automatically set this pointer if it is NULL. Change to a different context by calling ImGui::SetCurrentContext(). | ||||
| // 1) Important: globals are not shared across DLL boundaries! If you use DLLs or any form of hot-reloading: you will need to call | ||||
| //    SetCurrentContext() (with the pointer you got from CreateContext) from each unique static/DLL boundary, and after each hot-reloading. | ||||
| //    In your debugger, add GImGui to your watch window and notice how its value changes depending on which location you are currently stepping into. | ||||
| // 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 | ||||
| ImGuiContext*   GImGui = NULL; | ||||
| #endif | ||||
|   | ||||
							
								
								
									
										2
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -79,7 +79,9 @@ Index of this file: | ||||
| #if defined(__clang__) | ||||
| #pragma clang diagnostic push | ||||
| #pragma clang diagnostic ignored "-Wold-style-cast" | ||||
| #if __has_warning("-Wzero-as-null-pointer-constant") | ||||
| #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" | ||||
| #endif | ||||
| #elif defined(__GNUC__) && __GNUC__ >= 8 | ||||
| #pragma GCC diagnostic push | ||||
| #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 "-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. | ||||
| #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 | ||||
| #endif | ||||
| #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. | ||||
| #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 "-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             // | ||||
| #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 | ||||
| #endif | ||||
| #if __has_warning("-Wcomma") | ||||
| #pragma clang diagnostic ignored "-Wcomma"                  // warning : possible misuse of comma operator here             // | ||||
| #endif | ||||
|   | ||||
| @@ -46,7 +46,9 @@ Index of this file: | ||||
| #pragma clang diagnostic ignored "-Wunused-function"                // for stb_textedit.h | ||||
| #pragma clang diagnostic ignored "-Wmissing-prototypes"             // for stb_textedit.h | ||||
| #pragma clang diagnostic ignored "-Wold-style-cast" | ||||
| #if __has_warning("-Wzero-as-null-pointer-constant") | ||||
| #pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" | ||||
| #endif | ||||
| #if __has_warning("-Wdouble-promotion") | ||||
| #pragma clang diagnostic ignored "-Wdouble-promotion" | ||||
| #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 "-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             // | ||||
| #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 | ||||
| #endif | ||||
| #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. | ||||
| #endif | ||||
|   | ||||
		Reference in New Issue
	
	Block a user