mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 15:11:05 +01:00 
			
		
		
		
	Merge branch 'master' into docking
This commit is contained in:
		@@ -35,6 +35,7 @@ It's mostly a bunch of personal notes, probably incomplete. Feel free to query i
 | 
				
			|||||||
 - scrolling/style: shadows on scrollable areas to denote that there is more contents
 | 
					 - scrolling/style: shadows on scrollable areas to denote that there is more contents
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 - drawdata: make it easy to clone (or swap?) a ImDrawData so user can easily save that data if they use threaded rendering.
 | 
					 - drawdata: make it easy to clone (or swap?) a ImDrawData so user can easily save that data if they use threaded rendering.
 | 
				
			||||||
 | 
					 - drawlist: add calctextsize func to facilitate consistent code from user pov
 | 
				
			||||||
 - drawlist: end-user probably can't call Clear() directly because we expect a texture to be pushed in the stack.
 | 
					 - drawlist: end-user probably can't call Clear() directly because we expect a texture to be pushed in the stack.
 | 
				
			||||||
 - drawlist: maintaining bounding box per command would allow to merge draw command when clipping isn't relied on (typical non-scrolling window or non-overflowing column would merge with previous command).
 | 
					 - drawlist: maintaining bounding box per command would allow to merge draw command when clipping isn't relied on (typical non-scrolling window or non-overflowing column would merge with previous command).
 | 
				
			||||||
 - drawlist: primitives/helpers to manipulate vertices post submission, so e.g. a quad/rect can be resized to fit later submitted content, _without_ using the ChannelSplit api
 | 
					 - drawlist: primitives/helpers to manipulate vertices post submission, so e.g. a quad/rect can be resized to fit later submitted content, _without_ using the ChannelSplit api
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,39 +19,46 @@ SOURCES = main.cpp
 | 
				
			|||||||
SOURCES += ../imgui_impl_glfw.cpp ../imgui_impl_opengl2.cpp
 | 
					SOURCES += ../imgui_impl_glfw.cpp ../imgui_impl_opengl2.cpp
 | 
				
			||||||
SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp ../../imgui_widgets.cpp
 | 
					SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp ../../imgui_widgets.cpp
 | 
				
			||||||
OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
					OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
				
			||||||
 | 
					 | 
				
			||||||
UNAME_S := $(shell uname -s)
 | 
					UNAME_S := $(shell uname -s)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = -I../ -I../../
 | 
				
			||||||
 | 
					CXXFLAGS += -g -Wall -Wformat
 | 
				
			||||||
 | 
					LIBS =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
 | 
					## 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 += -lGL `pkg-config --static --libs glfw3`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	CXXFLAGS = -I../ -I../../ `pkg-config --cflags glfw3`
 | 
						CXXFLAGS += `pkg-config --cflags glfw3`
 | 
				
			||||||
	CXXFLAGS += -Wall -Wformat
 | 
					 | 
				
			||||||
	CFLAGS = $(CXXFLAGS)
 | 
						CFLAGS = $(CXXFLAGS)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(UNAME_S), Darwin) #APPLE
 | 
					ifeq ($(UNAME_S), Darwin) #APPLE
 | 
				
			||||||
	ECHO_MESSAGE = "Mac OS X"
 | 
						ECHO_MESSAGE = "Mac OS X"
 | 
				
			||||||
	LIBS = -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
 | 
						LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
 | 
				
			||||||
	#LIBS += -L/usr/local/lib -lglfw3
 | 
						LIBS += -L/usr/local/lib -L/opt/local/lib
 | 
				
			||||||
	LIBS += -L/usr/local/lib -lglfw
 | 
						#LIBS += -lglfw3
 | 
				
			||||||
 | 
						LIBS += -lglfw
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	CXXFLAGS = -I../ -I../../ -I/usr/local/include
 | 
						CXXFLAGS += -I/usr/local/include -I/opt/local/include
 | 
				
			||||||
	CXXFLAGS += -Wall -Wformat
 | 
					 | 
				
			||||||
	CFLAGS = $(CXXFLAGS)
 | 
						CFLAGS = $(CXXFLAGS)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(findstring MINGW,$(UNAME_S)),MINGW)
 | 
					ifeq ($(findstring MINGW,$(UNAME_S)),MINGW)
 | 
				
			||||||
   ECHO_MESSAGE = "Windows"
 | 
						ECHO_MESSAGE = "MinGW"
 | 
				
			||||||
   LIBS = -lglfw3 -lgdi32 -lopengl32 -limm32
 | 
						LIBS += -lglfw3 -lgdi32 -lopengl32 -limm32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   CXXFLAGS = -I../ -I../../ -I../libs/gl3w `pkg-config --cflags glfw3`
 | 
						CXXFLAGS += -I../libs/gl3w `pkg-config --cflags glfw3`
 | 
				
			||||||
   CXXFLAGS += -Wall -Wformat
 | 
					 | 
				
			||||||
	CFLAGS = $(CXXFLAGS)
 | 
						CFLAGS = $(CXXFLAGS)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
 | 
					## BUILD RULES
 | 
				
			||||||
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%.o:%.cpp
 | 
					%.o:%.cpp
 | 
				
			||||||
	$(CXX) $(CXXFLAGS) -c -o $@ $<
 | 
						$(CXX) $(CXXFLAGS) -c -o $@ $<
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,13 +21,17 @@ SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp ../../imgui
 | 
				
			|||||||
OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
					OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
				
			||||||
UNAME_S := $(shell uname -s)
 | 
					UNAME_S := $(shell uname -s)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = -I../ -I../../
 | 
				
			||||||
 | 
					CXXFLAGS += -g -Wall -Wformat
 | 
				
			||||||
 | 
					LIBS =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##---------------------------------------------------------------------
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
## OPENGL LOADER
 | 
					## OPENGL LOADER
 | 
				
			||||||
##---------------------------------------------------------------------
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 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
 | 
					CXXFLAGS += -I../libs/gl3w
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Using OpenGL loader: glew
 | 
					## Using OpenGL loader: glew
 | 
				
			||||||
## (This assumes a system-wide installation)
 | 
					## (This assumes a system-wide installation)
 | 
				
			||||||
@@ -44,30 +48,28 @@ CXXFLAGS = -I../libs/gl3w
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
ifeq ($(UNAME_S), Linux) #LINUX
 | 
					ifeq ($(UNAME_S), Linux) #LINUX
 | 
				
			||||||
	ECHO_MESSAGE = "Linux"
 | 
						ECHO_MESSAGE = "Linux"
 | 
				
			||||||
	LIBS = -lGL `pkg-config --static --libs glfw3`
 | 
						LIBS += -lGL `pkg-config --static --libs glfw3`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	CXXFLAGS += -I../ -I../../  `pkg-config --cflags glfw3`
 | 
						CXXFLAGS += `pkg-config --cflags glfw3`
 | 
				
			||||||
	CXXFLAGS += -Wall -Wformat
 | 
					 | 
				
			||||||
	CFLAGS = $(CXXFLAGS)
 | 
						CFLAGS = $(CXXFLAGS)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(UNAME_S), Darwin) #APPLE
 | 
					ifeq ($(UNAME_S), Darwin) #APPLE
 | 
				
			||||||
	ECHO_MESSAGE = "Mac OS X"
 | 
						ECHO_MESSAGE = "Mac OS X"
 | 
				
			||||||
	LIBS = -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
 | 
						LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
 | 
				
			||||||
	#LIBS += -L/usr/local/lib -lglfw3
 | 
						LIBS += -L/usr/local/lib -L/opt/local/lib
 | 
				
			||||||
	LIBS += -L/usr/local/lib -lglfw
 | 
						#LIBS += -lglfw3
 | 
				
			||||||
 | 
						LIBS += -lglfw
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	CXXFLAGS += -I../ -I../../ -I/usr/local/include
 | 
						CXXFLAGS += -I/usr/local/include -I/opt/local/include
 | 
				
			||||||
	CXXFLAGS += -Wall -Wformat
 | 
					 | 
				
			||||||
	CFLAGS = $(CXXFLAGS)
 | 
						CFLAGS = $(CXXFLAGS)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(findstring MINGW,$(UNAME_S)),MINGW)
 | 
					ifeq ($(findstring MINGW,$(UNAME_S)),MINGW)
 | 
				
			||||||
   ECHO_MESSAGE = "Windows"
 | 
						ECHO_MESSAGE = "MinGW"
 | 
				
			||||||
   LIBS = -lglfw3 -lgdi32 -lopengl32 -limm32
 | 
						LIBS += -lglfw3 -lgdi32 -lopengl32 -limm32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   CXXFLAGS += -I../ -I../../ `pkg-config --cflags glfw3`
 | 
						CXXFLAGS += `pkg-config --cflags glfw3`
 | 
				
			||||||
   CXXFLAGS += -Wall -Wformat
 | 
					 | 
				
			||||||
	CFLAGS = $(CXXFLAGS)
 | 
						CFLAGS = $(CXXFLAGS)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -108,6 +108,7 @@ static void SetupVulkan(const char** extensions, uint32_t extensions_count)
 | 
				
			|||||||
        // Create Vulkan Instance without any debug feature
 | 
					        // Create Vulkan Instance without any debug feature
 | 
				
			||||||
        err = vkCreateInstance(&create_info, g_Allocator, &g_Instance);
 | 
					        err = vkCreateInstance(&create_info, g_Allocator, &g_Instance);
 | 
				
			||||||
        check_vk_result(err);
 | 
					        check_vk_result(err);
 | 
				
			||||||
 | 
					        IM_UNUSED(g_DebugReport);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -142,7 +143,7 @@ static void SetupVulkan(const char** extensions, uint32_t extensions_count)
 | 
				
			|||||||
                break;
 | 
					                break;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        free(queues);
 | 
					        free(queues);
 | 
				
			||||||
        IM_ASSERT(g_QueueFamily != -1);
 | 
					        IM_ASSERT(g_QueueFamily != (uint32_t)-1);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Create Logical Device (with 1 queue)
 | 
					    // Create Logical Device (with 1 queue)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
# Cross Platform Makefile
 | 
					# Cross Platform Makefile
 | 
				
			||||||
# Compatible with Ubuntu 14.04.1 and Mac OS X
 | 
					# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Linux:
 | 
					# Linux:
 | 
				
			||||||
#   apt-get install freeglut3-dev
 | 
					#   apt-get install freeglut3-dev
 | 
				
			||||||
@@ -14,37 +14,40 @@ SOURCES = main.cpp
 | 
				
			|||||||
SOURCES += ../imgui_impl_glut.cpp ../imgui_impl_opengl2.cpp
 | 
					SOURCES += ../imgui_impl_glut.cpp ../imgui_impl_opengl2.cpp
 | 
				
			||||||
SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp ../../imgui_widgets.cpp
 | 
					SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp ../../imgui_widgets.cpp
 | 
				
			||||||
OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
					OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
				
			||||||
 | 
					 | 
				
			||||||
UNAME_S := $(shell uname -s)
 | 
					UNAME_S := $(shell uname -s)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = -I../ -I../../
 | 
				
			||||||
 | 
					CXXFLAGS += -g -Wall -Wformat
 | 
				
			||||||
 | 
					LIBS =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
 | 
					## BUILD FLAGS PER PLATFORM
 | 
				
			||||||
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(UNAME_S), Linux) #LINUX
 | 
					ifeq ($(UNAME_S), Linux) #LINUX
 | 
				
			||||||
	ECHO_MESSAGE = "Linux"
 | 
						ECHO_MESSAGE = "Linux"
 | 
				
			||||||
	LIBS = -lGL -lglut
 | 
						LIBS += -lGL -lglut
 | 
				
			||||||
 | 
					 | 
				
			||||||
	CXXFLAGS = -I ../ -I../..
 | 
					 | 
				
			||||||
	CXXFLAGS += -Wall -Wformat
 | 
					 | 
				
			||||||
	CFLAGS = $(CXXFLAGS)
 | 
						CFLAGS = $(CXXFLAGS)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(UNAME_S), Darwin) #APPLE
 | 
					ifeq ($(UNAME_S), Darwin) #APPLE
 | 
				
			||||||
	ECHO_MESSAGE = "Mac OS X"
 | 
						ECHO_MESSAGE = "Mac OS X"
 | 
				
			||||||
	LIBS = -framework OpenGL -framework GLUT
 | 
						LIBS += -framework OpenGL -framework GLUT
 | 
				
			||||||
 | 
						LIBS += -L/usr/local/lib -L/opt/local/lib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	CXXFLAGS = -I .. -I../..
 | 
						CXXFLAGS += -I/usr/local/include -I/opt/local/include
 | 
				
			||||||
	CXXFLAGS += -Wall -Wformat
 | 
					 | 
				
			||||||
	CFLAGS = $(CXXFLAGS)
 | 
						CFLAGS = $(CXXFLAGS)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(findstring MINGW,$(UNAME_S)),MINGW)
 | 
					ifeq ($(findstring MINGW,$(UNAME_S)),MINGW)
 | 
				
			||||||
   ECHO_MESSAGE = "Windows"
 | 
						ECHO_MESSAGE = "MinGW"
 | 
				
			||||||
   LIBS = -lgdi32 -lopengl32 -limm32 -lglut
 | 
						LIBS += -lgdi32 -lopengl32 -limm32 -lglut
 | 
				
			||||||
 | 
					 | 
				
			||||||
   CXXFLAGS = -I ../ -I../../
 | 
					 | 
				
			||||||
   CXXFLAGS += -Wall -Wformat
 | 
					 | 
				
			||||||
	CFLAGS = $(CXXFLAGS)
 | 
						CFLAGS = $(CXXFLAGS)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
 | 
					## BUILD RULES
 | 
				
			||||||
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%.o:%.cpp
 | 
					%.o:%.cpp
 | 
				
			||||||
	$(CXX) $(CXXFLAGS) -c -o $@ $<
 | 
						$(CXX) $(CXXFLAGS) -c -o $@ $<
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,40 +15,49 @@
 | 
				
			|||||||
#CXX = clang++
 | 
					#CXX = clang++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EXE = example_sdl_opengl2
 | 
					EXE = example_sdl_opengl2
 | 
				
			||||||
SOURCES = main.cpp ../imgui_impl_sdl.cpp ../imgui_impl_opengl2.cpp
 | 
					SOURCES = main.cpp
 | 
				
			||||||
 | 
					SOURCES += ../imgui_impl_sdl.cpp ../imgui_impl_opengl2.cpp
 | 
				
			||||||
SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp ../../imgui_widgets.cpp
 | 
					SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp ../../imgui_widgets.cpp
 | 
				
			||||||
OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
					OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
				
			||||||
 | 
					 | 
				
			||||||
UNAME_S := $(shell uname -s)
 | 
					UNAME_S := $(shell uname -s)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = -I../ -I../../
 | 
				
			||||||
 | 
					CXXFLAGS += -g -Wall -Wformat
 | 
				
			||||||
 | 
					LIBS =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
 | 
					## 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 += -lGL -ldl `sdl2-config --libs`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	CXXFLAGS = -I ../ -I../../  `sdl2-config --cflags`
 | 
						CXXFLAGS += `sdl2-config --cflags`
 | 
				
			||||||
	CXXFLAGS += -Wall -Wformat
 | 
					 | 
				
			||||||
	CFLAGS = $(CXXFLAGS)
 | 
						CFLAGS = $(CXXFLAGS)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(UNAME_S), Darwin) #APPLE
 | 
					ifeq ($(UNAME_S), Darwin) #APPLE
 | 
				
			||||||
	ECHO_MESSAGE = "Mac OS X"
 | 
						ECHO_MESSAGE = "Mac OS X"
 | 
				
			||||||
	LIBS = -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs`
 | 
						LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs`
 | 
				
			||||||
 | 
						LIBS += -L/usr/local/lib -L/opt/local/lib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	CXXFLAGS = -I ../ -I../../ -I/usr/local/include `sdl2-config --cflags`
 | 
						CXXFLAGS += `sdl2-config --cflags`
 | 
				
			||||||
	CXXFLAGS += -Wall -Wformat
 | 
						CXXFLAGS += -I/usr/local/include -I/opt/local/include
 | 
				
			||||||
	CFLAGS = $(CXXFLAGS)
 | 
						CFLAGS = $(CXXFLAGS)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(findstring MINGW,$(UNAME_S)),MINGW)
 | 
					ifeq ($(findstring MINGW,$(UNAME_S)),MINGW)
 | 
				
			||||||
   ECHO_MESSAGE = "Windows"
 | 
						ECHO_MESSAGE = "MinGW"
 | 
				
			||||||
   LIBS = -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2`
 | 
						LIBS += -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   CXXFLAGS = -I ../ -I../../ `pkg-config --cflags sdl2`
 | 
						CXXFLAGS += `pkg-config --cflags sdl2`
 | 
				
			||||||
   CXXFLAGS += -Wall -Wformat
 | 
					 | 
				
			||||||
	CFLAGS = $(CXXFLAGS)
 | 
						CFLAGS = $(CXXFLAGS)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
 | 
					## BUILD RULES
 | 
				
			||||||
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%.o:%.cpp
 | 
					%.o:%.cpp
 | 
				
			||||||
	$(CXX) $(CXXFLAGS) -c -o $@ $<
 | 
						$(CXX) $(CXXFLAGS) -c -o $@ $<
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,13 +21,17 @@ SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp ../../imgui
 | 
				
			|||||||
OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
					OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
 | 
				
			||||||
UNAME_S := $(shell uname -s)
 | 
					UNAME_S := $(shell uname -s)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CXXFLAGS = -I../ -I../../
 | 
				
			||||||
 | 
					CXXFLAGS += -g -Wall -Wformat
 | 
				
			||||||
 | 
					LIBS =
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##---------------------------------------------------------------------
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
## OPENGL LOADER
 | 
					## OPENGL LOADER
 | 
				
			||||||
##---------------------------------------------------------------------
 | 
					##---------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 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
 | 
					CXXFLAGS += -I../libs/gl3w
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Using OpenGL loader: glew
 | 
					## Using OpenGL loader: glew
 | 
				
			||||||
## (This assumes a system-wide installation)
 | 
					## (This assumes a system-wide installation)
 | 
				
			||||||
@@ -44,28 +48,27 @@ CXXFLAGS = -I../libs/gl3w
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
ifeq ($(UNAME_S), Linux) #LINUX
 | 
					ifeq ($(UNAME_S), Linux) #LINUX
 | 
				
			||||||
	ECHO_MESSAGE = "Linux"
 | 
						ECHO_MESSAGE = "Linux"
 | 
				
			||||||
	LIBS = -lGL -ldl `sdl2-config --libs`
 | 
						LIBS += -lGL -ldl `sdl2-config --libs`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	CXXFLAGS = -I../ -I../../ -I../libs/gl3w `sdl2-config --cflags`
 | 
						CXXFLAGS += -I../libs/gl3w `sdl2-config --cflags`
 | 
				
			||||||
	CXXFLAGS += -Wall -Wformat
 | 
					 | 
				
			||||||
	CFLAGS = $(CXXFLAGS)
 | 
						CFLAGS = $(CXXFLAGS)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(UNAME_S), Darwin) #APPLE
 | 
					ifeq ($(UNAME_S), Darwin) #APPLE
 | 
				
			||||||
	ECHO_MESSAGE = "Mac OS X"
 | 
						ECHO_MESSAGE = "Mac OS X"
 | 
				
			||||||
	LIBS = -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs`
 | 
						LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs`
 | 
				
			||||||
 | 
						LIBS += -L/usr/local/lib -L/opt/local/lib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	CXXFLAGS = -I../ -I../../ -I../libs/gl3w -I/usr/local/include `sdl2-config --cflags`
 | 
						CXXFLAGS += -I../libs/gl3w `sdl2-config --cflags`
 | 
				
			||||||
	CXXFLAGS += -Wall -Wformat
 | 
						CXXFLAGS += -I/usr/local/include -I/opt/local/include
 | 
				
			||||||
	CFLAGS = $(CXXFLAGS)
 | 
						CFLAGS = $(CXXFLAGS)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(findstring MINGW,$(UNAME_S)),MINGW)
 | 
					ifeq ($(findstring MINGW,$(UNAME_S)),MINGW)
 | 
				
			||||||
   ECHO_MESSAGE = "Windows"
 | 
					   ECHO_MESSAGE = "MinGW"
 | 
				
			||||||
   LIBS = -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2`
 | 
					   LIBS += -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   CXXFLAGS = -I../ -I../../ -I../libs/gl3w `pkg-config --cflags sdl2`
 | 
					   CXXFLAGS += -I../libs/gl3w `pkg-config --cflags sdl2`
 | 
				
			||||||
   CXXFLAGS += -Wall -Wformat
 | 
					 | 
				
			||||||
   CFLAGS = $(CXXFLAGS)
 | 
					   CFLAGS = $(CXXFLAGS)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -100,6 +100,7 @@ static void SetupVulkan(const char** extensions, uint32_t extensions_count)
 | 
				
			|||||||
        // Create Vulkan Instance without any debug feature
 | 
					        // Create Vulkan Instance without any debug feature
 | 
				
			||||||
        err = vkCreateInstance(&create_info, g_Allocator, &g_Instance);
 | 
					        err = vkCreateInstance(&create_info, g_Allocator, &g_Instance);
 | 
				
			||||||
        check_vk_result(err);
 | 
					        check_vk_result(err);
 | 
				
			||||||
 | 
					        IM_UNUSED(g_DebugReport);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -134,7 +135,7 @@ static void SetupVulkan(const char** extensions, uint32_t extensions_count)
 | 
				
			|||||||
                break;
 | 
					                break;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        free(queues);
 | 
					        free(queues);
 | 
				
			||||||
        IM_ASSERT(g_QueueFamily != -1);
 | 
					        IM_ASSERT(g_QueueFamily != (uint32_t)-1);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Create Logical Device (with 1 queue)
 | 
					    // Create Logical Device (with 1 queue)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -352,7 +352,8 @@ enum ImGuiSelectableFlagsPrivate_
 | 
				
			|||||||
    ImGuiSelectableFlags_NoHoldingActiveID  = 1 << 10,
 | 
					    ImGuiSelectableFlags_NoHoldingActiveID  = 1 << 10,
 | 
				
			||||||
    ImGuiSelectableFlags_PressedOnClick     = 1 << 11,
 | 
					    ImGuiSelectableFlags_PressedOnClick     = 1 << 11,
 | 
				
			||||||
    ImGuiSelectableFlags_PressedOnRelease   = 1 << 12,
 | 
					    ImGuiSelectableFlags_PressedOnRelease   = 1 << 12,
 | 
				
			||||||
    ImGuiSelectableFlags_DrawFillAvailWidth = 1 << 13
 | 
					    ImGuiSelectableFlags_DrawFillAvailWidth = 1 << 13,
 | 
				
			||||||
 | 
					    ImGuiSelectableFlags_AllowItemOverlap   = 1 << 14
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum ImGuiSeparatorFlags_
 | 
					enum ImGuiSeparatorFlags_
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -643,7 +643,7 @@ bool ImGui::ArrowButtonEx(const char* str_id, ImGuiDir dir, ImVec2 size, ImGuiBu
 | 
				
			|||||||
    const ImGuiID id = window->GetID(str_id);
 | 
					    const ImGuiID id = window->GetID(str_id);
 | 
				
			||||||
    const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size);
 | 
					    const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size);
 | 
				
			||||||
    const float default_size = GetFrameHeight();
 | 
					    const float default_size = GetFrameHeight();
 | 
				
			||||||
    ItemSize(bb, (size.y >= default_size) ? g.Style.FramePadding.y : 0.0f);
 | 
					    ItemSize(size, (size.y >= default_size) ? g.Style.FramePadding.y : 0.0f);
 | 
				
			||||||
    if (!ItemAdd(bb, id))
 | 
					    if (!ItemAdd(bb, id))
 | 
				
			||||||
        return false;
 | 
					        return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1071,8 +1071,9 @@ void ImGui::ProgressBar(float fraction, const ImVec2& size_arg, const char* over
 | 
				
			|||||||
    const ImGuiStyle& style = g.Style;
 | 
					    const ImGuiStyle& style = g.Style;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ImVec2 pos = window->DC.CursorPos;
 | 
					    ImVec2 pos = window->DC.CursorPos;
 | 
				
			||||||
    ImRect bb(pos, pos + CalcItemSize(size_arg, CalcItemWidth(), g.FontSize + style.FramePadding.y*2.0f));
 | 
					    ImVec2 size = CalcItemSize(size_arg, CalcItemWidth(), g.FontSize + style.FramePadding.y*2.0f);
 | 
				
			||||||
    ItemSize(bb, style.FramePadding.y);
 | 
					    ImRect bb(pos, pos + size);
 | 
				
			||||||
 | 
					    ItemSize(size, style.FramePadding.y);
 | 
				
			||||||
    if (!ItemAdd(bb, 0))
 | 
					    if (!ItemAdd(bb, 0))
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1145,7 +1146,7 @@ void ImGui::Dummy(const ImVec2& size)
 | 
				
			|||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size);
 | 
					    const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size);
 | 
				
			||||||
    ItemSize(bb);
 | 
					    ItemSize(size);
 | 
				
			||||||
    ItemAdd(bb, 0);
 | 
					    ItemAdd(bb, 0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -5294,7 +5295,7 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl
 | 
				
			|||||||
    ImVec2 pos = window->DC.CursorPos;
 | 
					    ImVec2 pos = window->DC.CursorPos;
 | 
				
			||||||
    pos.y += window->DC.CurrentLineTextBaseOffset;
 | 
					    pos.y += window->DC.CurrentLineTextBaseOffset;
 | 
				
			||||||
    ImRect bb_inner(pos, pos + size);
 | 
					    ImRect bb_inner(pos, pos + size);
 | 
				
			||||||
    ItemSize(bb_inner);
 | 
					    ItemSize(size);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Fill horizontal space.
 | 
					    // Fill horizontal space.
 | 
				
			||||||
    ImVec2 window_padding = window->WindowPadding;
 | 
					    ImVec2 window_padding = window->WindowPadding;
 | 
				
			||||||
@@ -5341,6 +5342,8 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl
 | 
				
			|||||||
    if (flags & ImGuiSelectableFlags_PressedOnRelease) button_flags |= ImGuiButtonFlags_PressedOnRelease;
 | 
					    if (flags & ImGuiSelectableFlags_PressedOnRelease) button_flags |= ImGuiButtonFlags_PressedOnRelease;
 | 
				
			||||||
    if (flags & ImGuiSelectableFlags_Disabled) button_flags |= ImGuiButtonFlags_Disabled;
 | 
					    if (flags & ImGuiSelectableFlags_Disabled) button_flags |= ImGuiButtonFlags_Disabled;
 | 
				
			||||||
    if (flags & ImGuiSelectableFlags_AllowDoubleClick) button_flags |= ImGuiButtonFlags_PressedOnClickRelease | ImGuiButtonFlags_PressedOnDoubleClick;
 | 
					    if (flags & ImGuiSelectableFlags_AllowDoubleClick) button_flags |= ImGuiButtonFlags_PressedOnClickRelease | ImGuiButtonFlags_PressedOnDoubleClick;
 | 
				
			||||||
 | 
					    if (flags & ImGuiSelectableFlags_AllowItemOverlap) button_flags |= ImGuiButtonFlags_AllowItemOverlap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (flags & ImGuiSelectableFlags_Disabled)
 | 
					    if (flags & ImGuiSelectableFlags_Disabled)
 | 
				
			||||||
        selected = false;
 | 
					        selected = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -5356,6 +5359,9 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl
 | 
				
			|||||||
    if (pressed)
 | 
					    if (pressed)
 | 
				
			||||||
        MarkItemEdited(id);
 | 
					        MarkItemEdited(id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (flags & ImGuiSelectableFlags_AllowItemOverlap)
 | 
				
			||||||
 | 
					        SetItemAllowOverlap();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Render
 | 
					    // Render
 | 
				
			||||||
    if (hovered || selected)
 | 
					    if (hovered || selected)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user