mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 21:21:06 +01:00 
			
		
		
		
	Backends: OpenGL3: Clarify use of GL_POLYGON_MODE.
This commit is contained in:
		| @@ -151,6 +151,11 @@ using namespace gl; | |||||||
| #define GL_VERTEX_ARRAY_BINDING GL_VERTEX_ARRAY_BINDING_OES | #define GL_VERTEX_ARRAY_BINDING GL_VERTEX_ARRAY_BINDING_OES | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | // Desktop GL 2.0+ has glPolygonMode() which GL ES and WebGL don't have. | ||||||
|  | #ifdef GL_POLYGON_MODE | ||||||
|  | #define IMGUI_IMPL_HAS_POLYGON_MODE | ||||||
|  | #endif | ||||||
|  |  | ||||||
| // Desktop GL 3.2+ has glDrawElementsBaseVertex() which GL ES and WebGL don't have. | // Desktop GL 3.2+ has glDrawElementsBaseVertex() which GL ES and WebGL don't have. | ||||||
| #if !defined(IMGUI_IMPL_OPENGL_ES2) && !defined(IMGUI_IMPL_OPENGL_ES3) && defined(GL_VERSION_3_2) | #if !defined(IMGUI_IMPL_OPENGL_ES2) && !defined(IMGUI_IMPL_OPENGL_ES3) && defined(GL_VERSION_3_2) | ||||||
| #define IMGUI_IMPL_OPENGL_MAY_HAVE_VTX_OFFSET | #define IMGUI_IMPL_OPENGL_MAY_HAVE_VTX_OFFSET | ||||||
| @@ -330,7 +335,7 @@ static void ImGui_ImplOpenGL3_SetupRenderState(ImDrawData* draw_data, int fb_wid | |||||||
|     if (bd->GlVersion >= 310) |     if (bd->GlVersion >= 310) | ||||||
|         glDisable(GL_PRIMITIVE_RESTART); |         glDisable(GL_PRIMITIVE_RESTART); | ||||||
| #endif | #endif | ||||||
| #ifdef GL_POLYGON_MODE | #ifdef IMGUI_IMPL_HAS_POLYGON_MODE | ||||||
|     glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); |     glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| @@ -412,7 +417,7 @@ void    ImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data) | |||||||
| #ifdef IMGUI_IMPL_OPENGL_USE_VERTEX_ARRAY | #ifdef IMGUI_IMPL_OPENGL_USE_VERTEX_ARRAY | ||||||
|     GLuint last_vertex_array_object; glGetIntegerv(GL_VERTEX_ARRAY_BINDING, (GLint*)&last_vertex_array_object); |     GLuint last_vertex_array_object; glGetIntegerv(GL_VERTEX_ARRAY_BINDING, (GLint*)&last_vertex_array_object); | ||||||
| #endif | #endif | ||||||
| #ifdef GL_POLYGON_MODE | #ifdef IMGUI_IMPL_HAS_POLYGON_MODE | ||||||
|     GLint last_polygon_mode[2]; glGetIntegerv(GL_POLYGON_MODE, last_polygon_mode); |     GLint last_polygon_mode[2]; glGetIntegerv(GL_POLYGON_MODE, last_polygon_mode); | ||||||
| #endif | #endif | ||||||
|     GLint last_viewport[4]; glGetIntegerv(GL_VIEWPORT, last_viewport); |     GLint last_viewport[4]; glGetIntegerv(GL_VIEWPORT, last_viewport); | ||||||
| @@ -521,7 +526,7 @@ void    ImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data) | |||||||
|     if (bd->GlVersion >= 310) { if (last_enable_primitive_restart) glEnable(GL_PRIMITIVE_RESTART); else glDisable(GL_PRIMITIVE_RESTART); } |     if (bd->GlVersion >= 310) { if (last_enable_primitive_restart) glEnable(GL_PRIMITIVE_RESTART); else glDisable(GL_PRIMITIVE_RESTART); } | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #ifdef GL_POLYGON_MODE | #ifdef IMGUI_IMPL_HAS_POLYGON_MODE | ||||||
|     glPolygonMode(GL_FRONT_AND_BACK, (GLenum)last_polygon_mode[0]); |     glPolygonMode(GL_FRONT_AND_BACK, (GLenum)last_polygon_mode[0]); | ||||||
| #endif | #endif | ||||||
|     glViewport(last_viewport[0], last_viewport[1], (GLsizei)last_viewport[2], (GLsizei)last_viewport[3]); |     glViewport(last_viewport[0], last_viewport[1], (GLsizei)last_viewport[2], (GLsizei)last_viewport[3]); | ||||||
| @@ -545,7 +550,7 @@ bool ImGui_ImplOpenGL3_CreateFontsTexture() | |||||||
|     glBindTexture(GL_TEXTURE_2D, bd->FontTexture); |     glBindTexture(GL_TEXTURE_2D, bd->FontTexture); | ||||||
|     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); |     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); | ||||||
|     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); |     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); | ||||||
| #ifdef GL_UNPACK_ROW_LENGTH | #ifdef GL_UNPACK_ROW_LENGTH // Not on WebGL/ES | ||||||
|     glPixelStorei(GL_UNPACK_ROW_LENGTH, 0); |     glPixelStorei(GL_UNPACK_ROW_LENGTH, 0); | ||||||
| #endif | #endif | ||||||
|     glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels); |     glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels); | ||||||
|   | |||||||
| @@ -458,7 +458,7 @@ void ImGui::ShowDemoWindow(bool* p_open) | |||||||
|         { |         { | ||||||
|             HelpMarker( |             HelpMarker( | ||||||
|                 "Those flags are set by the backends (imgui_impl_xxx files) to specify their capabilities.\n" |                 "Those flags are set by the backends (imgui_impl_xxx files) to specify their capabilities.\n" | ||||||
|                 "Here we expose then as read-only fields to avoid breaking interactions with your backend."); |                 "Here we expose them as read-only fields to avoid breaking interactions with your backend."); | ||||||
|  |  | ||||||
|             // Make a local copy to avoid modifying actual backend flags. |             // Make a local copy to avoid modifying actual backend flags. | ||||||
|             ImGuiBackendFlags backend_flags = io.BackendFlags; |             ImGuiBackendFlags backend_flags = io.BackendFlags; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user