summaryrefslogtreecommitdiff
path: root/beos/beos_gl.cpp
diff options
context:
space:
mode:
authorleo2000-08-19 18:38:17 +0000
committerleo2000-08-19 18:38:17 +0000
commit8548095d61ba49d4d49e1478533461d22979ab2a (patch)
treec11f7b5f28478b263e920efa92e313b43f599dc9 /beos/beos_gl.cpp
parent23628b3b6852f14a8041628a99a7780a286848d1 (diff)
start of BeOS port
git-svn-id: http://svn.leocad.org/trunk@99 c7d43263-9d01-0410-8a33-9dba5d9f93d6
Diffstat (limited to 'beos/beos_gl.cpp')
-rw-r--r--beos/beos_gl.cpp73
1 files changed, 73 insertions, 0 deletions
diff --git a/beos/beos_gl.cpp b/beos/beos_gl.cpp
new file mode 100644
index 0000000..df6058a
--- /dev/null
+++ b/beos/beos_gl.cpp
@@ -0,0 +1,73 @@
+//
+// BeOS OpenGL functions
+//
+
+#include <stdio.h>
+#include <be/kernel/image.h>
+#include "opengl.h"
+
+static image_id gl_image;
+
+// =============================================================================
+// Function pointers
+
+// =============================================================================
+// Global functions
+
+void* Sys_GLGetProc (const char *symbol)
+{
+ void *func;
+
+ if (get_image_symbol (gl_image, symbol, B_SYMBOL_TYPE_TEXT, &func) == B_OK)
+ return func;
+
+ printf ("Error loading OpenGL function %s.\n", symbol);
+ return NULL;
+}
+
+void* Sys_GLGetExtension (const char *symbol)
+{
+/*
+ if (pfnglXGetProcAddressARB == NULL)
+ return NULL;
+ else
+ return pfnglXGetProcAddressARB ((GLubyte*)symbol);
+ */
+ return NULL;
+}
+
+bool Sys_GLOpenLibrary (const char* libname)
+{
+ if (libname)
+ {
+ gl_image = load_add_on (libname);
+ if (gl_image <= 0)
+ printf ("Error loading OpenGL library %s\n", libname);
+ }
+
+ if (gl_image <= 0)
+ {
+ libname = "/beos/beos/system/lib/libGL.so";
+ gl_image = load_add_on (libname);
+ if (gl_image <= 0)
+ printf ("Error loading OpenGL library %s\n", libname);
+ }
+
+ if (gl_image <= 0)
+ return false;
+
+// pfnglXChooseVisual = (PFNGLXCHOOSEVISUAL) Sys_GLGetProc ("glXChooseVisual");
+
+ return true;
+}
+
+void Sys_GLCloseLibrary ()
+{
+ if (gl_image <= 0)
+ {
+ unload_add_on (gl_image);
+ gl_image = (image_id)NULL;
+ }
+
+ // pfnglXChooseVisual = NULL;
+}