mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 07:01:04 +01:00 
			
		
		
		
	Backends: OpenGL3: Add glad 2 to OpenGL loaders. (#3330)
This commit is contained in:
		@@ -42,6 +42,10 @@ CXXFLAGS += -I../libs/gl3w -DIMGUI_IMPL_OPENGL_LOADER_GL3W
 | 
				
			|||||||
# SOURCES += ../libs/glad/src/glad.c
 | 
					# SOURCES += ../libs/glad/src/glad.c
 | 
				
			||||||
# CXXFLAGS += -I../libs/glad/include -DIMGUI_IMPL_OPENGL_LOADER_GLAD
 | 
					# CXXFLAGS += -I../libs/glad/include -DIMGUI_IMPL_OPENGL_LOADER_GLAD
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Using OpenGL loader: glad2
 | 
				
			||||||
 | 
					# SOURCES += ../libs/glad/src/gl.c
 | 
				
			||||||
 | 
					# CXXFLAGS += -I../libs/glad/include -DIMGUI_IMPL_OPENGL_LOADER_GLAD2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Using OpenGL loader: glbinding
 | 
					## Using OpenGL loader: glbinding
 | 
				
			||||||
## This assumes a system-wide installation
 | 
					## This assumes a system-wide installation
 | 
				
			||||||
## of either version 3.0.0 (or newer)
 | 
					## of either version 3.0.0 (or newer)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,6 +17,8 @@
 | 
				
			|||||||
#include <GL/glew.h>            // Initialize with glewInit()
 | 
					#include <GL/glew.h>            // Initialize with glewInit()
 | 
				
			||||||
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD)
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD)
 | 
				
			||||||
#include <glad/glad.h>          // Initialize with gladLoadGL()
 | 
					#include <glad/glad.h>          // Initialize with gladLoadGL()
 | 
				
			||||||
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD2)
 | 
				
			||||||
 | 
					#include <glad/gl.h>            // Initialize with gladLoadGL(...) or gladLoaderLoadGL()
 | 
				
			||||||
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING2)
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING2)
 | 
				
			||||||
#define GLFW_INCLUDE_NONE       // GLFW including OpenGL headers causes ambiguity or multiple definition errors.
 | 
					#define GLFW_INCLUDE_NONE       // GLFW including OpenGL headers causes ambiguity or multiple definition errors.
 | 
				
			||||||
#include <glbinding/Binding.h>  // Initialize with glbinding::Binding::initialize()
 | 
					#include <glbinding/Binding.h>  // Initialize with glbinding::Binding::initialize()
 | 
				
			||||||
@@ -84,6 +86,8 @@ int main(int, char**)
 | 
				
			|||||||
    bool err = glewInit() != GLEW_OK;
 | 
					    bool err = glewInit() != GLEW_OK;
 | 
				
			||||||
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD)
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD)
 | 
				
			||||||
    bool err = gladLoadGL() == 0;
 | 
					    bool err = gladLoadGL() == 0;
 | 
				
			||||||
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD2)
 | 
				
			||||||
 | 
					    bool err = gladLoadGL(glfwGetProcAddress) == 0; // glad docs recommend using the windowing library loader instead of the (optionally) bundled one.
 | 
				
			||||||
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING2)
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING2)
 | 
				
			||||||
    bool err = false;
 | 
					    bool err = false;
 | 
				
			||||||
    glbinding::Binding::initialize();
 | 
					    glbinding::Binding::initialize();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -42,6 +42,10 @@ CXXFLAGS += -I../libs/gl3w -DIMGUI_IMPL_OPENGL_LOADER_GL3W
 | 
				
			|||||||
# SOURCES += ../libs/glad/src/glad.c
 | 
					# SOURCES += ../libs/glad/src/glad.c
 | 
				
			||||||
# CXXFLAGS += -I../libs/glad/include -DIMGUI_IMPL_OPENGL_LOADER_GLAD
 | 
					# CXXFLAGS += -I../libs/glad/include -DIMGUI_IMPL_OPENGL_LOADER_GLAD
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Using OpenGL loader: glad2
 | 
				
			||||||
 | 
					# SOURCES += ../libs/glad/src/gl.c
 | 
				
			||||||
 | 
					# CXXFLAGS += -I../libs/glad/include -DIMGUI_IMPL_OPENGL_LOADER_GLAD2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Using OpenGL loader: glbinding
 | 
					## Using OpenGL loader: glbinding
 | 
				
			||||||
## This assumes a system-wide installation
 | 
					## This assumes a system-wide installation
 | 
				
			||||||
## of either version 3.0.0 (or newer)
 | 
					## of either version 3.0.0 (or newer)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,6 +19,8 @@
 | 
				
			|||||||
#include <GL/glew.h>            // Initialize with glewInit()
 | 
					#include <GL/glew.h>            // Initialize with glewInit()
 | 
				
			||||||
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD)
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD)
 | 
				
			||||||
#include <glad/glad.h>          // Initialize with gladLoadGL()
 | 
					#include <glad/glad.h>          // Initialize with gladLoadGL()
 | 
				
			||||||
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD2)
 | 
				
			||||||
 | 
					#include <glad/gl.h>            // Initialize with gladLoadGL(...) or gladLoaderLoadGL()
 | 
				
			||||||
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING2)
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING2)
 | 
				
			||||||
#define GLFW_INCLUDE_NONE       // GLFW including OpenGL headers causes ambiguity or multiple definition errors.
 | 
					#define GLFW_INCLUDE_NONE       // GLFW including OpenGL headers causes ambiguity or multiple definition errors.
 | 
				
			||||||
#include <glbinding/Binding.h>  // Initialize with glbinding::Binding::initialize()
 | 
					#include <glbinding/Binding.h>  // Initialize with glbinding::Binding::initialize()
 | 
				
			||||||
@@ -79,6 +81,8 @@ int main(int, char**)
 | 
				
			|||||||
    bool err = glewInit() != GLEW_OK;
 | 
					    bool err = glewInit() != GLEW_OK;
 | 
				
			||||||
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD)
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD)
 | 
				
			||||||
    bool err = gladLoadGL() == 0;
 | 
					    bool err = gladLoadGL() == 0;
 | 
				
			||||||
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD2)
 | 
				
			||||||
 | 
					    bool err = gladLoadGL((GLADloadfunc) SDL_GL_GetProcAddress) == 0; // glad docs recommend using the windowing library loader instead of the (optionally) bundled one.
 | 
				
			||||||
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING2)
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING2)
 | 
				
			||||||
    bool err = false;
 | 
					    bool err = false;
 | 
				
			||||||
    glbinding::Binding::initialize();
 | 
					    glbinding::Binding::initialize();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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)
 | 
				
			||||||
 | 
					//  2020-07-01: OpenGL: Added support for glad2 OpenGL loader.
 | 
				
			||||||
//  2020-05-08: OpenGL: Made default GLSL version 150 (instead of 130) on OSX.
 | 
					//  2020-05-08: OpenGL: Made default GLSL version 150 (instead of 130) on OSX.
 | 
				
			||||||
//  2020-04-21: OpenGL: Fixed handling of glClipControl(GL_UPPER_LEFT) by inverting projection matrix.
 | 
					//  2020-04-21: OpenGL: Fixed handling of glClipControl(GL_UPPER_LEFT) by inverting projection matrix.
 | 
				
			||||||
//  2020-04-12: OpenGL: Fixed context version check mistakenly testing for 4.0+ instead of 3.2+ to enable ImGuiBackendFlags_RendererHasVtxOffset.
 | 
					//  2020-04-12: OpenGL: Fixed context version check mistakenly testing for 4.0+ instead of 3.2+ to enable ImGuiBackendFlags_RendererHasVtxOffset.
 | 
				
			||||||
@@ -101,6 +102,8 @@
 | 
				
			|||||||
#include <GL/glew.h>            // Needs to be initialized with glewInit() in user's code.
 | 
					#include <GL/glew.h>            // Needs to be initialized with glewInit() in user's code.
 | 
				
			||||||
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD)
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD)
 | 
				
			||||||
#include <glad/glad.h>          // Needs to be initialized with gladLoadGL() in user's code.
 | 
					#include <glad/glad.h>          // Needs to be initialized with gladLoadGL() in user's code.
 | 
				
			||||||
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD2)
 | 
				
			||||||
 | 
					#include <glad/gl.h>            // Needs to be initialized with gladLoadGL(...) or gladLoaderLoadGL() in user's code.
 | 
				
			||||||
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING2)
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING2)
 | 
				
			||||||
#ifndef GLFW_INCLUDE_NONE
 | 
					#ifndef GLFW_INCLUDE_NONE
 | 
				
			||||||
#define GLFW_INCLUDE_NONE       // GLFW including OpenGL headers causes ambiguity or multiple definition errors.
 | 
					#define GLFW_INCLUDE_NONE       // GLFW including OpenGL headers causes ambiguity or multiple definition errors.
 | 
				
			||||||
@@ -189,6 +192,8 @@ bool    ImGui_ImplOpenGL3_Init(const char* glsl_version)
 | 
				
			|||||||
    gl_loader = "GLEW";
 | 
					    gl_loader = "GLEW";
 | 
				
			||||||
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD)
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD)
 | 
				
			||||||
    gl_loader = "GLAD";
 | 
					    gl_loader = "GLAD";
 | 
				
			||||||
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLAD2)
 | 
				
			||||||
 | 
					    gl_loader = "GLAD2";
 | 
				
			||||||
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING2)
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING2)
 | 
				
			||||||
    gl_loader = "glbinding2";
 | 
					    gl_loader = "glbinding2";
 | 
				
			||||||
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING3)
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING3)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -49,6 +49,7 @@ IMGUI_IMPL_API void     ImGui_ImplOpenGL3_DestroyDeviceObjects();
 | 
				
			|||||||
 && !defined(IMGUI_IMPL_OPENGL_LOADER_GL3W) \
 | 
					 && !defined(IMGUI_IMPL_OPENGL_LOADER_GL3W) \
 | 
				
			||||||
 && !defined(IMGUI_IMPL_OPENGL_LOADER_GLEW) \
 | 
					 && !defined(IMGUI_IMPL_OPENGL_LOADER_GLEW) \
 | 
				
			||||||
 && !defined(IMGUI_IMPL_OPENGL_LOADER_GLAD) \
 | 
					 && !defined(IMGUI_IMPL_OPENGL_LOADER_GLAD) \
 | 
				
			||||||
 | 
					 && !defined(IMGUI_IMPL_OPENGL_LOADER_GLAD2) \
 | 
				
			||||||
 && !defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING2) \
 | 
					 && !defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING2) \
 | 
				
			||||||
 && !defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING3) \
 | 
					 && !defined(IMGUI_IMPL_OPENGL_LOADER_GLBINDING3) \
 | 
				
			||||||
 && !defined(IMGUI_IMPL_OPENGL_LOADER_CUSTOM)
 | 
					 && !defined(IMGUI_IMPL_OPENGL_LOADER_CUSTOM)
 | 
				
			||||||
@@ -68,6 +69,8 @@ IMGUI_IMPL_API void     ImGui_ImplOpenGL3_DestroyDeviceObjects();
 | 
				
			|||||||
    #define IMGUI_IMPL_OPENGL_LOADER_GLEW
 | 
					    #define IMGUI_IMPL_OPENGL_LOADER_GLEW
 | 
				
			||||||
#elif __has_include(<glad/glad.h>)
 | 
					#elif __has_include(<glad/glad.h>)
 | 
				
			||||||
    #define IMGUI_IMPL_OPENGL_LOADER_GLAD
 | 
					    #define IMGUI_IMPL_OPENGL_LOADER_GLAD
 | 
				
			||||||
 | 
					#elif __has_include(<glad/gl.h>)
 | 
				
			||||||
 | 
					    #define IMGUI_IMPL_OPENGL_LOADER_GLAD2
 | 
				
			||||||
#elif __has_include(<GL/gl3w.h>)
 | 
					#elif __has_include(<GL/gl3w.h>)
 | 
				
			||||||
    #define IMGUI_IMPL_OPENGL_LOADER_GL3W
 | 
					    #define IMGUI_IMPL_OPENGL_LOADER_GL3W
 | 
				
			||||||
#elif __has_include(<glbinding/glbinding.h>)
 | 
					#elif __has_include(<glbinding/glbinding.h>)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user