Ticket #121: glew-1.9.0.patch
| File glew-1.9.0.patch, 11.5 KB (added by kapix, 2 years ago) |
|---|
-
config/Makefile.haiku
diff -Naur glew-1.9.0/config/Makefile.haiku glew-1.9.0-haiku/config/Makefile.haiku
old new 1 NAME = $(GLEW_NAME) 2 GLEW_DEST = /boot/common 3 CC = cc 4 CXX = g++ 5 LD = cc 6 ifneq (undefined, $(origin GLEW_MX)) 7 CFLAGS.EXTRA = -DGLEW_MX 8 endif 9 10 LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) 11 LDFLAGS.SO.MX = -shared -Wl,-soname=$(LIB.SONAME.MX) 12 13 LDFLAGS.GL = -lGL 14 LDFLAGS.STATIC = -Wl,-Bstatic 15 LDFLAGS.DYNAMIC = -Wl,-Bdynamic 16 17 NAME = GLEW 18 WARN = -Wall -W 19 POPT = -O2 20 21 BIN.SUFFIX = 22 23 LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) 24 LIB.DEVLNK = lib$(NAME).so 25 LIB.SHARED = lib$(NAME).so.$(SO_VERSION) 26 LIB.STATIC = lib$(NAME).a 27 LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) 28 LIB.DEVLNK.MX = lib$(NAME)mx.so 29 LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) 30 LIB.STATIC.MX = lib$(NAME)mx.a 31 No newline at end of file -
Makefile
diff -Naur glew-1.9.0/Makefile glew-1.9.0-haiku/Makefile
old new 172 172 173 173 # GLEW utility programs 174 174 175 BIN.LIBS = -Llib $(LDFLAGS.DYNAMIC) -l$(NAME) $(LDFLAGS.EXTRA) $(LDFLAGS.GL) 175 BIN.LIBS = -Llib $(LDFLAGS.DYNAMIC) -l$(NAME) $(LDFLAGS.EXTRA) $(LDFLAGS.GL) -lbe 176 176 177 177 GLEWINFO.BIN := glewinfo$(BIN.SUFFIX) 178 178 GLEWINFO.BIN.SRC := src/glewinfo.c 179 GLEWINFO.BIN.HAIKU := src/glewinfo_haiku.cpp 179 180 GLEWINFO.BIN.OBJ := $(addprefix tmp/$(SYSTEM)/default/shared/,$(notdir $(GLEWINFO.BIN.SRC))) 180 181 GLEWINFO.BIN.OBJ := $(GLEWINFO.BIN.OBJ:.c=.o) 182 GLEWINFO.BIN.HAIKU_OBJ := $(addprefix tmp/$(SYSTEM)/default/shared/,$(notdir $(GLEWINFO.BIN.HAIKU))) 183 GLEWINFO.BIN.HAIKU_OBJ := $(GLEWINFO.BIN.HAIKU_OBJ:.cpp=.o) 181 184 182 185 VISUALINFO.BIN := visualinfo$(BIN.SUFFIX) 183 186 VISUALINFO.BIN.SRC := src/visualinfo.c … … 189 192 bin: 190 193 mkdir bin 191 194 192 bin/$(GLEWINFO.BIN): $(GLEWINFO.BIN.OBJ) lib/$(LIB.SHARED)193 $(CC) $(CFLAGS) -o $@ $(GLEWINFO.BIN.OBJ) $( BIN.LIBS)195 bin/$(GLEWINFO.BIN): $(GLEWINFO.BIN.OBJ) $(GLEWINFO.BIN.HAIKU_OBJ) lib/$(LIB.SHARED) 196 $(CC) $(CFLAGS) -o $@ $(GLEWINFO.BIN.OBJ) $(GLEWINFO.BIN.HAIKU_OBJ) $(BIN.LIBS) 194 197 ifneq ($(STRIP),) 195 198 $(STRIP) -x $@ 196 199 endif … … 205 208 @mkdir -p $(dir $@) 206 209 $(CC) -DGLEW_NO_GLU $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< 207 210 211 $(GLEWINFO.BIN.HAIKU_OBJ): $(GLEWINFO.BIN.HAIKU) include/GL/glew.h include/GL/wglew.h include/GL/glxew.h 212 @mkdir -p $(dir $@) 213 $(CXX) -DGLEW_NO_GLU $(CXXFLAGS) $(CXXFLAGS.SO) -o $@ -c $< 214 208 215 $(VISUALINFO.BIN.OBJ): $(VISUALINFO.BIN.SRC) include/GL/glew.h include/GL/wglew.h include/GL/glxew.h 209 216 @mkdir -p $(dir $@) 210 217 $(CC) -DGLEW_NO_GLU $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< -
src/glew.c
diff -Naur glew-1.9.0/src/glew.c glew-1.9.0-haiku/src/glew.c
old new 33 33 34 34 #if defined(_WIN32) 35 35 # include <GL/wglew.h> 36 #elif !defined(__ ANDROID__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))36 #elif !defined(__HAIKU__) && !defined(__ANDROID__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) 37 37 # include <GL/glxew.h> 38 38 #endif 39 39 … … 66 66 # define GLXEW_CONTEXT_ARG_DEF_LIST void 67 67 #endif /* GLEW_MX */ 68 68 69 #if defined(__sgi) || defined (__sun) || defined(GLEW_APPLE_GLX) 69 #if defined(__sgi) || defined (__sun) || defined(GLEW_APPLE_GLX) || defined(__HAIKU__) 70 70 #include <dlfcn.h> 71 71 #include <stdio.h> 72 72 #include <stdlib.h> … … 162 162 # define glewGetProcAddress(name) wglGetProcAddress((LPCSTR)name) 163 163 #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) 164 164 # define glewGetProcAddress(name) NSGLGetProcAddress(name) 165 #elif defined(__sgi) || defined(__sun) 165 #elif defined(__sgi) || defined(__sun) || defined(__HAIKU__) 166 166 # define glewGetProcAddress(name) dlGetProcAddress(name) 167 167 #elif defined(__ANDROID__) 168 168 # define glewGetProcAddress(name) NULL /* TODO */ … … 11548 11548 return GLEW_OK; 11549 11549 } 11550 11550 11551 #elif !defined(__ ANDROID__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))11551 #elif !defined(__HAIKU__) && !defined(__ANDROID__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) 11552 11552 11553 11553 PFNGLXGETCURRENTDISPLAYPROC __glewXGetCurrentDisplay = NULL; 11554 11554 … … 12620 12620 return GLEW_OK; 12621 12621 } 12622 12622 12623 #endif /* !defined(__ ANDROID__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) */12623 #endif /* !defined(__HAIKU__) && !defined(__ANDROID__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) */ 12624 12624 12625 12625 /* ------------------------------------------------------------------------ */ 12626 12626 … … 12660 12660 12661 12661 #if defined(_WIN32) 12662 12662 extern GLenum GLEWAPIENTRY wglewContextInit (void); 12663 #elif !defined(__ ANDROID__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))12663 #elif !defined(__HAIKU__) && !defined(__ANDROID__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) 12664 12664 extern GLenum GLEWAPIENTRY glxewContextInit (void); 12665 12665 #endif /* _WIN32 */ 12666 12666 … … 12671 12671 if ( r != 0 ) return r; 12672 12672 #if defined(_WIN32) 12673 12673 return wglewContextInit(); 12674 #elif !defined(__ ANDROID__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) /* _UNIX */12674 #elif !defined(__HAIKU__) && !defined(__ANDROID__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) /* _UNIX */ 12675 12675 return glxewContextInit(); 12676 12676 #else 12677 12677 return r; … … 16472 16472 return ret; 16473 16473 } 16474 16474 16475 #elif !defined(__ ANDROID__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)16475 #elif !defined(__HAIKU__) && !defined(__ANDROID__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) 16476 16476 16477 16477 #if defined(GLEW_MX) 16478 16478 GLboolean glxewContextIsSupported (const GLXEWContext* ctx, const char* name) -
src/glewinfo_haiku.cpp
diff -Naur glew-1.9.0/src/glewinfo_haiku.cpp glew-1.9.0-haiku/src/glewinfo_haiku.cpp
old new 1 /* 2 * glewinfo Haiku glue code 3 * Copyright 2013 Kacper Kasper <kacperkasper@gmail.com> 4 * All rights reserved. Distributed under the terms of the MIT license. 5 */ 6 7 #include <Application.h> 8 #include <Window.h> 9 #include <GLView.h> 10 11 class GLEWInfoView : public BGLView { 12 public: 13 GLEWInfoView(BRect frame, uint32 type); 14 virtual void AttachedToWindow(void); 15 16 void ContextInit() { LockGL(); } 17 void ContextDestroy() { UnlockGL(); } 18 }; 19 20 GLEWInfoView::GLEWInfoView(BRect frame, uint32 type) 21 : BGLView(frame, "GLEWInfoView", B_FOLLOW_ALL_SIDES, 0, type) 22 { 23 } 24 25 void GLEWInfoView::AttachedToWindow(void) 26 { 27 LockGL(); 28 BGLView::AttachedToWindow(); 29 UnlockGL(); 30 } 31 32 class GLEWInfoWindow : public BWindow { 33 public: 34 GLEWInfoWindow(BRect frame, uint32 type); 35 virtual bool QuitRequested(); 36 37 private: 38 GLEWInfoView *view; 39 }; 40 41 GLEWInfoWindow::GLEWInfoWindow(BRect frame, uint32 type) 42 : BWindow(frame, "GLEWInfoWindow", B_TITLED_WINDOW, B_QUIT_ON_WINDOW_CLOSE) 43 { 44 AddChild(view = new GLEWInfoView(Bounds(), type)); 45 view->ContextInit(); 46 } 47 48 bool GLEWInfoWindow::QuitRequested() 49 { 50 view->ContextDestroy(); 51 52 view->RemoveSelf(); 53 54 delete view; 55 56 return true; 57 } 58 59 class GLEWInfoApp : public BApplication 60 { 61 public: 62 GLEWInfoApp(); 63 ~GLEWInfoApp(); 64 65 private: 66 GLEWInfoWindow *window; 67 }; 68 69 GLEWInfoApp::GLEWInfoApp() 70 : BApplication("application/x-vnd.glew-GLEWInfo") 71 { 72 BRect rect = BRect(0, 0, 1, 1); 73 window = new GLEWInfoWindow(rect, BGL_RGB | BGL_DOUBLE); 74 } 75 76 GLEWInfoApp::~GLEWInfoApp() 77 { 78 window->Quit(); 79 } 80 81 GLEWInfoApp *app; 82 83 extern "C" GLboolean glewCreateContext () 84 { 85 app = new GLEWInfoApp(); 86 87 return GL_FALSE; 88 } 89 90 extern "C" void glewDestroyContext () 91 { 92 delete app; 93 } -
src/glewinfo.c
diff -Naur glew-1.9.0/src/glewinfo.c glew-1.9.0-haiku/src/glewinfo.c
old new 35 35 #include <GL/glew.h> 36 36 #if defined(_WIN32) 37 37 #include <GL/wglew.h> 38 #elif !defined(__ APPLE__) || defined(GLEW_APPLE_GLX)38 #elif !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) 39 39 #include <GL/glxew.h> 40 40 #endif 41 41 … … 51 51 #ifdef _WIN32 52 52 WGLEWContext _wglewctx; 53 53 #define wglewGetContext() (&_wglewctx) 54 #elif !defined(__ APPLE__) || defined(GLEW_APPLE_GLX)54 #elif !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) 55 55 GLXEWContext _glxewctx; 56 56 #define glxewGetContext() (&_glxewctx) 57 57 #endif … … 59 59 60 60 #if defined(_WIN32) 61 61 GLboolean glewCreateContext (int* pixelformat); 62 #elif !defined(__ APPLE__) || defined(GLEW_APPLE_GLX)62 #elif !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) 63 63 GLboolean glewCreateContext (const char* display, int* visual); 64 64 #else 65 65 GLboolean glewCreateContext (); 66 66 #endif 67 67 68 #if defined(_WIN32) || !defined(__ APPLE__) || defined(GLEW_APPLE_GLX)68 #if defined(_WIN32) || !defined(__HAIKU__) || !defined(__APPLE__) || defined(GLEW_APPLE_GLX) 69 69 GLboolean glewParseArgs (int argc, char** argv, char** display, int* visual); 70 70 #endif 71 71 … … 9730 9730 9731 9731 #if defined(_WIN32) 9732 9732 if (GL_TRUE == glewCreateContext(&visual)) 9733 #elif defined(__ APPLE__) && !defined(GLEW_APPLE_GLX)9733 #elif defined(__HAIKU__) || defined(__APPLE__) && !defined(GLEW_APPLE_GLX) 9734 9734 if (GL_TRUE == glewCreateContext()) 9735 9735 #else 9736 9736 if (GL_TRUE == glewCreateContext(display, &visual)) … … 9916 9916 9917 9917 /* ------------------------------------------------------------------------ */ 9918 9918 9919 #elif defined(__HAIKU__) 9920 9921 extern GLboolean glewCreateContext (); 9922 extern void glewDestroyContext (); 9923 9924 /* ------------------------------------------------------------------------ */ 9925 9919 9926 #else /* __UNIX || (__APPLE__ && GLEW_APPLE_GLX) */ 9920 9927 9921 9928 Display* dpy = NULL; -
src/visualinfo.c
diff -Naur glew-1.9.0/src/visualinfo.c glew-1.9.0-haiku/src/visualinfo.c
old new 37 37 #include <GL/wglew.h> 38 38 #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) 39 39 #include <AGL/agl.h> 40 #elif defined(__HAIKU__) 41 // nothing here 40 42 #else 41 43 #include <GL/glxew.h> 42 44 #endif … … 47 49 # ifdef _WIN32 48 50 WGLEWContext _wglewctx; 49 51 # define wglewGetContext() (&_wglewctx) 50 # elif !defined(__ APPLE__) || defined(GLEW_APPLE_GLX)52 # elif !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) 51 53 GLXEWContext _glxewctx; 52 54 # define glxewGetContext() (&_glxewctx) 53 55 # endif … … 61 63 HGLRC rc; 62 64 #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) 63 65 AGLContext ctx, octx; 66 #elif defined(__HAIKU__) 67 // nothing here (yet) 64 68 #else 65 69 Display* dpy; 66 70 XVisualInfo* vi; … … 129 133 err = glewContextInit(glewGetContext()); 130 134 # ifdef _WIN32 131 135 err = err || wglewContextInit(wglewGetContext()); 132 # elif !defined(__ APPLE__) || defined(GLEW_APPLE_GLX)136 # elif !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) 133 137 err = err || glxewContextInit(glxewGetContext()); 134 138 # endif 135 139 #else … … 181 185 (char*)wglGetExtensionsStringEXT()); 182 186 } 183 187 #elif defined(__APPLE__) && !defined(GLEW_APPLE_GLX) 188 189 #elif defined(__HAIKU__) 184 190 185 191 #else 186 192 /* GLX extensions */ … … 598 604 */ 599 605 } 600 606 607 #elif defined(__HAIKU__) 608 609 void 610 VisualInfo (GLContext* ctx) 611 { 612 // TODO 613 } 614 601 615 #else /* GLX */ 602 616 603 617 void … … 1074 1088 1075 1089 /* ------------------------------------------------------------------------ */ 1076 1090 1091 #elif defined(__HAIKU__) 1092 1093 void InitContext (GLContext* ctx) 1094 { 1095 // TODO 1096 } 1097 1098 GLboolean CreateContext (GLContext* ctx) 1099 { 1100 // TODO 1101 1102 return GL_FALSE; 1103 } 1104 1105 void DestroyContext (GLContext* ctx) 1106 { 1107 // TODO 1108 } 1109 1110 /* ------------------------------------------------------------------------ */ 1111 1077 1112 #else /* __UNIX || (__APPLE__ && GLEW_APPLE_GLX) */ 1078 1113 1079 1114 void InitContext (GLContext* ctx)
