mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-03 22:51:06 +01:00 
			
		
		
		
	This commit is contained in:
		@@ -56,6 +56,7 @@ Other Changes:
 | 
				
			|||||||
  workaround/fix state restoring issues. Unknown exactly why so, but bit of a cargo-cult fix. (#3857)
 | 
					  workaround/fix state restoring issues. Unknown exactly why so, but bit of a cargo-cult fix. (#3857)
 | 
				
			||||||
- Backends: Vulkan: Fix mapped memory Vulkan validation error when buffer sizes are not multiple of
 | 
					- Backends: Vulkan: Fix mapped memory Vulkan validation error when buffer sizes are not multiple of
 | 
				
			||||||
  VkPhysicalDeviceLimits::nonCoherentAtomSize. (#3957) [@AgentX1994]
 | 
					  VkPhysicalDeviceLimits::nonCoherentAtomSize. (#3957) [@AgentX1994]
 | 
				
			||||||
 | 
					- Examples: Add OpenGL ES 2.0 support to modern GL examples. (#2837, #3951) [@lethal-guitar, @hinxx]
 | 
				
			||||||
- Examples: Vulkan: Rebuild swapchain on VK_SUBOPTIMAL_KHR. (#3881)
 | 
					- Examples: Vulkan: Rebuild swapchain on VK_SUBOPTIMAL_KHR. (#3881)
 | 
				
			||||||
- Docs: Improvements to minor mistakes in documentation comments (#3923) [@ANF-Studios]
 | 
					- Docs: Improvements to minor mistakes in documentation comments (#3923) [@ANF-Studios]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,15 +21,19 @@ SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui
 | 
				
			|||||||
SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glfw.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp
 | 
					SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glfw.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp
 | 
				
			||||||
OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
					OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
				
			||||||
UNAME_S := $(shell uname -s)
 | 
					UNAME_S := $(shell uname -s)
 | 
				
			||||||
 | 
					LINUX_GL_LIBS = -lGL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CXXFLAGS = -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
 | 
					CXXFLAGS = -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
 | 
				
			||||||
CXXFLAGS += -g -Wall -Wformat
 | 
					CXXFLAGS += -g -Wall -Wformat
 | 
				
			||||||
LIBS =
 | 
					LIBS =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##---------------------------------------------------------------------
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
## OPENGL LOADER
 | 
					## OPENGL LOADER / OPENGL ES
 | 
				
			||||||
##---------------------------------------------------------------------
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## See below for OpenGL ES option (no loader required) - comment out
 | 
				
			||||||
 | 
					## the following if you want to use OpenGL ES instead of Desktop GL.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Using OpenGL loader: gl3w [default]
 | 
					## Using OpenGL loader: gl3w [default]
 | 
				
			||||||
SOURCES += ../libs/gl3w/GL/gl3w.c
 | 
					SOURCES += ../libs/gl3w/GL/gl3w.c
 | 
				
			||||||
CXXFLAGS += -I../libs/gl3w -DIMGUI_IMPL_OPENGL_LOADER_GL3W
 | 
					CXXFLAGS += -I../libs/gl3w -DIMGUI_IMPL_OPENGL_LOADER_GL3W
 | 
				
			||||||
@@ -56,13 +60,18 @@ CXXFLAGS += -I../libs/gl3w -DIMGUI_IMPL_OPENGL_LOADER_GL3W
 | 
				
			|||||||
# CXXFLAGS += -DIMGUI_IMPL_OPENGL_LOADER_GLBINDING2
 | 
					# CXXFLAGS += -DIMGUI_IMPL_OPENGL_LOADER_GLBINDING2
 | 
				
			||||||
# LIBS += -lglbinding
 | 
					# LIBS += -lglbinding
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Using OpenGL ES, no loader required
 | 
				
			||||||
 | 
					## This assumes a GL ES library available in the system, e.g. libGLESv2.so
 | 
				
			||||||
 | 
					# CXXFLAGS += -DIMGUI_IMPL_OPENGL_ES2
 | 
				
			||||||
 | 
					# LINUX_GL_LIBS = -lGLESv2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##---------------------------------------------------------------------
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
## BUILD FLAGS PER PLATFORM
 | 
					## BUILD FLAGS PER PLATFORM
 | 
				
			||||||
##---------------------------------------------------------------------
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(UNAME_S), Linux) #LINUX
 | 
					ifeq ($(UNAME_S), Linux) #LINUX
 | 
				
			||||||
	ECHO_MESSAGE = "Linux"
 | 
						ECHO_MESSAGE = "Linux"
 | 
				
			||||||
	LIBS += -lGL `pkg-config --static --libs glfw3`
 | 
						LIBS += $(LINUX_GL_LIBS) `pkg-config --static --libs glfw3`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	CXXFLAGS += `pkg-config --cflags glfw3`
 | 
						CXXFLAGS += `pkg-config --cflags glfw3`
 | 
				
			||||||
	CFLAGS = $(CXXFLAGS)
 | 
						CFLAGS = $(CXXFLAGS)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,11 +8,13 @@
 | 
				
			|||||||
#include "imgui_impl_opengl3.h"
 | 
					#include "imgui_impl_opengl3.h"
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(IMGUI_IMPL_OPENGL_ES2)
 | 
				
			||||||
 | 
					#include <GLES2/gl2.h>
 | 
				
			||||||
// About Desktop OpenGL function loaders:
 | 
					// About Desktop OpenGL function loaders:
 | 
				
			||||||
//  Modern desktop OpenGL doesn't have a standard portable header file to load OpenGL function pointers.
 | 
					//  Modern desktop OpenGL doesn't have a standard portable header file to load OpenGL function pointers.
 | 
				
			||||||
//  Helper libraries are often used for this purpose! Here we are supporting a few common ones (gl3w, glew, glad).
 | 
					//  Helper libraries are often used for this purpose! Here we are supporting a few common ones (gl3w, glew, glad).
 | 
				
			||||||
//  You may use another loader/header of your choice (glext, glLoadGen, etc.), or chose to manually implement your own.
 | 
					//  You may use another loader/header of your choice (glext, glLoadGen, etc.), or chose to manually implement your own.
 | 
				
			||||||
#if defined(IMGUI_IMPL_OPENGL_LOADER_GL3W)
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GL3W)
 | 
				
			||||||
#include <GL/gl3w.h>            // Initialize with gl3wInit()
 | 
					#include <GL/gl3w.h>            // Initialize with gl3wInit()
 | 
				
			||||||
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLEW)
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLEW)
 | 
				
			||||||
#include <GL/glew.h>            // Initialize with glewInit()
 | 
					#include <GL/glew.h>            // Initialize with glewInit()
 | 
				
			||||||
@@ -57,7 +59,13 @@ int main(int, char**)
 | 
				
			|||||||
        return 1;
 | 
					        return 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Decide GL+GLSL versions
 | 
					    // Decide GL+GLSL versions
 | 
				
			||||||
#ifdef __APPLE__
 | 
					#if defined(IMGUI_IMPL_OPENGL_ES2)
 | 
				
			||||||
 | 
					    // GL ES 2.0 + GLSL 100
 | 
				
			||||||
 | 
					    const char* glsl_version = "#version 100";
 | 
				
			||||||
 | 
					    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);
 | 
				
			||||||
 | 
					    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
 | 
				
			||||||
 | 
					    glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API);
 | 
				
			||||||
 | 
					#elif defined(__APPLE__)
 | 
				
			||||||
    // GL 3.2 + GLSL 150
 | 
					    // GL 3.2 + GLSL 150
 | 
				
			||||||
    const char* glsl_version = "#version 150";
 | 
					    const char* glsl_version = "#version 150";
 | 
				
			||||||
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
 | 
					    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,15 +21,19 @@ SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui
 | 
				
			|||||||
SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp
 | 
					SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp
 | 
				
			||||||
OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
					OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
				
			||||||
UNAME_S := $(shell uname -s)
 | 
					UNAME_S := $(shell uname -s)
 | 
				
			||||||
 | 
					LINUX_GL_LIBS = -lGL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CXXFLAGS = -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
 | 
					CXXFLAGS = -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
 | 
				
			||||||
CXXFLAGS += -g -Wall -Wformat
 | 
					CXXFLAGS += -g -Wall -Wformat
 | 
				
			||||||
LIBS =
 | 
					LIBS =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##---------------------------------------------------------------------
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
## OPENGL LOADER
 | 
					## OPENGL LOADER / OPENGL ES
 | 
				
			||||||
##---------------------------------------------------------------------
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## See below for OpenGL ES option (no loader required) - comment out
 | 
				
			||||||
 | 
					## the following if you want to use OpenGL ES instead of Desktop GL.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Using OpenGL loader: gl3w [default]
 | 
					## Using OpenGL loader: gl3w [default]
 | 
				
			||||||
SOURCES += ../libs/gl3w/GL/gl3w.c
 | 
					SOURCES += ../libs/gl3w/GL/gl3w.c
 | 
				
			||||||
CXXFLAGS += -I../libs/gl3w -DIMGUI_IMPL_OPENGL_LOADER_GL3W
 | 
					CXXFLAGS += -I../libs/gl3w -DIMGUI_IMPL_OPENGL_LOADER_GL3W
 | 
				
			||||||
@@ -56,13 +60,21 @@ CXXFLAGS += -I../libs/gl3w -DIMGUI_IMPL_OPENGL_LOADER_GL3W
 | 
				
			|||||||
# CXXFLAGS += -DIMGUI_IMPL_OPENGL_LOADER_GLBINDING2
 | 
					# CXXFLAGS += -DIMGUI_IMPL_OPENGL_LOADER_GLBINDING2
 | 
				
			||||||
# LIBS += -lglbinding
 | 
					# LIBS += -lglbinding
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Using OpenGL ES, no loader required
 | 
				
			||||||
 | 
					## This assumes a GL ES library available in the system, e.g. libGLESv2.so
 | 
				
			||||||
 | 
					# CXXFLAGS += -DIMGUI_IMPL_OPENGL_ES2
 | 
				
			||||||
 | 
					# LINUX_GL_LIBS = -lGLESv2
 | 
				
			||||||
 | 
					## If you're on a Raspberry Pi and want to use the legacy drivers,
 | 
				
			||||||
 | 
					## use the following instead:
 | 
				
			||||||
 | 
					# LINUX_GL_LIBS = -L/opt/vc/lib -lbrcmGLESv2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##---------------------------------------------------------------------
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
## BUILD FLAGS PER PLATFORM
 | 
					## BUILD FLAGS PER PLATFORM
 | 
				
			||||||
##---------------------------------------------------------------------
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(UNAME_S), Linux) #LINUX
 | 
					ifeq ($(UNAME_S), Linux) #LINUX
 | 
				
			||||||
	ECHO_MESSAGE = "Linux"
 | 
						ECHO_MESSAGE = "Linux"
 | 
				
			||||||
	LIBS += -lGL -ldl `sdl2-config --libs`
 | 
						LIBS += $(LINUX_GL_LIBS) -ldl `sdl2-config --libs`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	CXXFLAGS += `sdl2-config --cflags`
 | 
						CXXFLAGS += `sdl2-config --cflags`
 | 
				
			||||||
	CFLAGS = $(CXXFLAGS)
 | 
						CFLAGS = $(CXXFLAGS)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,11 +10,13 @@
 | 
				
			|||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
#include <SDL.h>
 | 
					#include <SDL.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(IMGUI_IMPL_OPENGL_ES2)
 | 
				
			||||||
 | 
					#include <GLES2/gl2.h>
 | 
				
			||||||
// About Desktop OpenGL function loaders:
 | 
					// About Desktop OpenGL function loaders:
 | 
				
			||||||
//  Modern desktop OpenGL doesn't have a standard portable header file to load OpenGL function pointers.
 | 
					//  Modern desktop OpenGL doesn't have a standard portable header file to load OpenGL function pointers.
 | 
				
			||||||
//  Helper libraries are often used for this purpose! Here we are supporting a few common ones (gl3w, glew, glad).
 | 
					//  Helper libraries are often used for this purpose! Here we are supporting a few common ones (gl3w, glew, glad).
 | 
				
			||||||
//  You may use another loader/header of your choice (glext, glLoadGen, etc.), or chose to manually implement your own.
 | 
					//  You may use another loader/header of your choice (glext, glLoadGen, etc.), or chose to manually implement your own.
 | 
				
			||||||
#if defined(IMGUI_IMPL_OPENGL_LOADER_GL3W)
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GL3W)
 | 
				
			||||||
#include <GL/gl3w.h>            // Initialize with gl3wInit()
 | 
					#include <GL/gl3w.h>            // Initialize with gl3wInit()
 | 
				
			||||||
#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLEW)
 | 
					#elif defined(IMGUI_IMPL_OPENGL_LOADER_GLEW)
 | 
				
			||||||
#include <GL/glew.h>            // Initialize with glewInit()
 | 
					#include <GL/glew.h>            // Initialize with glewInit()
 | 
				
			||||||
@@ -49,7 +51,14 @@ int main(int, char**)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Decide GL+GLSL versions
 | 
					    // Decide GL+GLSL versions
 | 
				
			||||||
#ifdef __APPLE__
 | 
					#if defined(IMGUI_IMPL_OPENGL_ES2)
 | 
				
			||||||
 | 
					    // GL ES 2.0 + GLSL 100
 | 
				
			||||||
 | 
					    const char* glsl_version = "#version 100";
 | 
				
			||||||
 | 
					    SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, 0);
 | 
				
			||||||
 | 
					    SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
 | 
				
			||||||
 | 
					    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2);
 | 
				
			||||||
 | 
					    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
 | 
				
			||||||
 | 
					#elif defined(__APPLE__)
 | 
				
			||||||
    // GL 3.2 Core + GLSL 150
 | 
					    // GL 3.2 Core + GLSL 150
 | 
				
			||||||
    const char* glsl_version = "#version 150";
 | 
					    const char* glsl_version = "#version 150";
 | 
				
			||||||
    SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG); // Always required on Mac
 | 
					    SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG); // Always required on Mac
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user