mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-03 22:51:06 +01:00 
			
		
		
		
	Merge branch 'examples_refactor2' into viewport (#1870)
# Conflicts: # examples/README.txt # examples/directx11_example/main.cpp # examples/directx12_example/main.cpp # examples/imgui_impl_dx10.cpp # examples/imgui_impl_dx11.cpp # examples/imgui_impl_dx12.cpp # examples/imgui_impl_glfw.cpp # examples/imgui_impl_opengl2.cpp # examples/imgui_impl_opengl2.h # examples/imgui_impl_opengl3.cpp # examples/imgui_impl_sdl2.cpp # examples/imgui_impl_sdl2.h # examples/imgui_impl_vulkan.cpp # examples/imgui_impl_vulkan.h # examples/imgui_impl_win32.cpp # examples/imgui_impl_win32.h # examples/opengl2_example/main.cpp # examples/opengl3_example/main.cpp # examples/sdl_opengl2_example/main.cpp # examples/sdl_opengl3_example/main.cpp # examples/sdl_vulkan_example/main.cpp # examples/vulkan_example/main.cpp # imgui.cpp # imgui.h
This commit is contained in:
		@@ -16,7 +16,8 @@
 | 
			
		||||
// CHANGELOG 
 | 
			
		||||
// (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: OpenGL: Offset projection matrix and clipping rectangle by draw_data->DisplayPos (which will be non-zero for multi-viewport applications).
 | 
			
		||||
//  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-02-16: Misc: Obsoleted the io.RenderDrawListsFn callback and exposed ImGui_ImplGlfwGL2_RenderDrawData() in the .h file so you can call it yourself.
 | 
			
		||||
//  2017-09-01: OpenGL: Save and restore current polygon mode.
 | 
			
		||||
//  2016-09-10: OpenGL: Uploading font texture as RGBA32 to increase compatibility with users shaders (not ideal).
 | 
			
		||||
@@ -101,7 +102,7 @@ void ImGui_ImplOpenGL2_RenderDrawData(ImDrawData* draw_data)
 | 
			
		||||
    //glUseProgram(0); // You may want this if using this code in an OpenGL 3+ context where shaders may be bound
 | 
			
		||||
 | 
			
		||||
    // Setup viewport, orthographic projection matrix
 | 
			
		||||
    // Our visible imgui space lies from draw_data->DisplayPps (top left) to draw_data->DisplayPos+data_data->DisplaySize (bottom right). DisplayMin is typically (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.
 | 
			
		||||
    glViewport(0, 0, (GLsizei)fb_width, (GLsizei)fb_height);
 | 
			
		||||
    glMatrixMode(GL_PROJECTION);
 | 
			
		||||
    glPushMatrix();
 | 
			
		||||
@@ -112,7 +113,7 @@ void ImGui_ImplOpenGL2_RenderDrawData(ImDrawData* draw_data)
 | 
			
		||||
    glLoadIdentity();
 | 
			
		||||
 | 
			
		||||
    // Render command lists
 | 
			
		||||
    ImVec2 display_pos = draw_data->DisplayPos;
 | 
			
		||||
    ImVec2 pos = draw_data->DisplayPos;
 | 
			
		||||
    for (int n = 0; n < draw_data->CmdListsCount; n++)
 | 
			
		||||
    {
 | 
			
		||||
        const ImDrawList* cmd_list = draw_data->CmdLists[n];
 | 
			
		||||
@@ -132,7 +133,7 @@ void ImGui_ImplOpenGL2_RenderDrawData(ImDrawData* draw_data)
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                ImVec4 clip_rect = ImVec4(pcmd->ClipRect.x - display_pos.x, pcmd->ClipRect.y - display_pos.y, pcmd->ClipRect.z - display_pos.x, pcmd->ClipRect.w - display_pos.y);
 | 
			
		||||
                ImVec4 clip_rect = ImVec4(pcmd->ClipRect.x - pos.x, pcmd->ClipRect.y - pos.y, pcmd->ClipRect.z - pos.x, pcmd->ClipRect.w - pos.y);
 | 
			
		||||
                if (clip_rect.x < fb_width && clip_rect.y < fb_height && clip_rect.z >= 0.0f && clip_rect.w >= 0.0f)
 | 
			
		||||
                {
 | 
			
		||||
                    // Apply scissor/clipping rectangle
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user