소스 검색

Fix Clang warning with offsetof() macro? Added -Wall in OpenGL 3 example.

ocornut 10 년 전
부모
커밋
987188d437
4개의 변경된 파일12개의 추가작업 그리고 12개의 파일을 삭제
  1. 4 5
      examples/opengl3_example/Makefile
  2. 4 3
      examples/opengl3_example/main.cpp
  3. 0 1
      examples/opengl_example/Makefile
  4. 4 3
      examples/opengl_example/main.cpp

+ 4 - 5
examples/opengl3_example/Makefile

@@ -11,7 +11,7 @@
 #    http://www.glfw.org
 #
 
-CXX = g++
+#CXX = g++
 
 OBJS = main.o
 OBJS += ../../imgui.o
@@ -22,6 +22,7 @@ UNAME_S := $(shell uname -s)
 ifeq ($(UNAME_S), Linux) #LINUX
 	ECHO_MESSAGE = "Linux"
 	CXXFLAGS = -I../../ `pkg-config --cflags glfw3`
+	CXXFLAGS += -Wall
 	LIBS = `pkg-config --static --libs glfw3` -lGLEW
 endif
 
@@ -32,11 +33,9 @@ ifeq ($(UNAME_S), Darwin) #APPLE
 	LIBS += -L/usr/local/Cellar/glew/1.10.0/lib -L/usr/local/lib
 	LIBS += -lglew -lglfw3
 
-	CXXFLAGS = -I/usr/local/Cellar/glew/1.10.0/include -I/usr/local/include
-	CXXFLAGS += -I../../
-
+	CXXFLAGS = -I../../ -I/usr/local/Cellar/glew/1.10.0/include -I/usr/local/include
+	CXXFLAGS += -Wall
 #	CXXFLAGS += -D__APPLE__
-
 endif
 
 .cpp.o:

+ 4 - 3
examples/opengl3_example/main.cpp

@@ -12,6 +12,7 @@
 #define GLEW_STATIC
 #include <GL/glew.h>
 #include <GLFW/glfw3.h>
+#define OFFSETOF(TYPE, ELEMENT) ((size_t)&(((TYPE *)0)->ELEMENT))
 
 static GLFWwindow* window;
 static GLuint fontTex;
@@ -233,9 +234,9 @@ void InitGL()
     glEnableVertexAttribArray(uv_location);
     glEnableVertexAttribArray(colour_location);
 
-    glVertexAttribPointer(position_location, 2, GL_FLOAT, GL_FALSE, sizeof(ImDrawVert), (GLvoid*) offsetof(ImDrawVert, pos));
-    glVertexAttribPointer(uv_location, 2, GL_FLOAT, GL_FALSE, sizeof(ImDrawVert), (GLvoid*) offsetof(ImDrawVert, uv));
-    glVertexAttribPointer(colour_location, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(ImDrawVert), (GLvoid*) offsetof(ImDrawVert, col));
+    glVertexAttribPointer(position_location, 2, GL_FLOAT, GL_FALSE, sizeof(ImDrawVert), (GLvoid*)OFFSETOF(ImDrawVert, pos));
+    glVertexAttribPointer(uv_location, 2, GL_FLOAT, GL_FALSE, sizeof(ImDrawVert), (GLvoid*)OFFSETOF(ImDrawVert, uv));
+    glVertexAttribPointer(colour_location, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(ImDrawVert), (GLvoid*)OFFSETOF(ImDrawVert, col));
     glBindVertexArray(0);
     glBindBuffer(GL_ARRAY_BUFFER, 0);
 }

+ 0 - 1
examples/opengl_example/Makefile

@@ -35,7 +35,6 @@ ifeq ($(UNAME_S), Darwin) #APPLE
 
 	CXXFLAGS = -I../../ -I/usr/local/Cellar/glew/1.10.0/include -I/usr/local/include
 	CXXFLAGS += -Wall
-
 #	CXXFLAGS += -D__APPLE__
 endif
 

+ 4 - 3
examples/opengl_example/main.cpp

@@ -12,6 +12,7 @@
 #define GLEW_STATIC
 #include <GL/glew.h>
 #include <GLFW/glfw3.h>
+#define OFFSETOF(TYPE, ELEMENT) ((size_t)&(((TYPE *)0)->ELEMENT))
 
 static GLFWwindow* window;
 static GLuint fontTex;
@@ -60,9 +61,9 @@ static void ImImpl_RenderDrawLists(ImDrawList** const cmd_lists, int cmd_lists_c
     {
         const ImDrawList* cmd_list = cmd_lists[n];
         const unsigned char* vtx_buffer = (const unsigned char*)&cmd_list->vtx_buffer.front();
-        glVertexPointer(2, GL_FLOAT, sizeof(ImDrawVert), (void*)(vtx_buffer + offsetof(ImDrawVert, pos)));
-        glTexCoordPointer(2, GL_FLOAT, sizeof(ImDrawVert), (void*)(vtx_buffer + offsetof(ImDrawVert, uv)));
-        glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(ImDrawVert), (void*)(vtx_buffer + offsetof(ImDrawVert, col)));
+        glVertexPointer(2, GL_FLOAT, sizeof(ImDrawVert), (void*)(vtx_buffer + OFFSETOF(ImDrawVert, pos)));
+        glTexCoordPointer(2, GL_FLOAT, sizeof(ImDrawVert), (void*)(vtx_buffer + OFFSETOF(ImDrawVert, uv)));
+        glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(ImDrawVert), (void*)(vtx_buffer + OFFSETOF(ImDrawVert, col)));
 
         int vtx_offset = 0;
         for (size_t cmd_i = 0; cmd_i < cmd_list->commands.size(); cmd_i++)