Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[MANTA] r1082 - trunk/Engine/Display


Chronological Thread 
  • From: sparker@sci.utah.edu
  • To: manta@sci.utah.edu
  • Subject: [MANTA] r1082 - trunk/Engine/Display
  • Date: Tue, 23 May 2006 16:23:41 -0600 (MDT)

Author: sparker
Date: Tue May 23 16:23:36 2006
New Revision: 1082

Modified:
   trunk/Engine/Display/PureOpenGLDisplay.cc
   trunk/Engine/Display/PureOpenGLDisplay.h
Log:
Make pbo stuff work on macbook (hackish)


Modified: trunk/Engine/Display/PureOpenGLDisplay.cc
==============================================================================
--- trunk/Engine/Display/PureOpenGLDisplay.cc   (original)
+++ trunk/Engine/Display/PureOpenGLDisplay.cc   Tue May 23 16:23:36 2006
@@ -70,8 +70,93 @@
 #define GL_STORAGE_CACHED_APPLE            0x85BE
 #define GL_STORAGE_SHARED_APPLE            0x85BF
 // Unfortunately, this isn't defined
-#define glTextureRangeAPPLE(x, y, z)
+#ifdef GL_GLEXT_FUNCTION_POINTERS
+typedef void (* glTextureRangeAPPLEProcPtr) (GLenum target, GLsizei length, 
const GLvoid *pointer);
+typedef void (* glGetTexParameterPointervAPPLEProcPtr) (GLenum target, 
GLenum pname, GLvoid **params);
+#else
+extern "C" {
+extern void glTextureRangeAPPLE(GLenum target, GLsizei length, const GLvoid 
*pointer);
+extern void glGetTexParameterPointervAPPLE(GLenum target, GLenum pname, 
GLvoid **params);
+}
+#endif /* GL_GLEXT_FUNCTION_POINTERS */
+#endif
+
+#ifndef GL_ARB_pixel_buffer_object
+#define GL_ARB_pixel_buffer_object 1
+#define GL_PIXEL_PACK_BUFFER_ARB                        0x88EB
+#define GL_PIXEL_UNPACK_BUFFER_ARB                      0x88EC
+#define GL_PIXEL_PACK_BUFFER_BINDING_ARB                0x88ED
+#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB              0x88EF
+#endif
+
+#ifndef GL_ARB_vertex_buffer_object
+#ifdef GL_GLEXT_FUNCTION_POINTERS
+typedef void (* glBindBufferARBProcPtr) (GLenum target, GLuint buffer);
+typedef void (* glDeleteBuffersARBProcPtr) (GLsizei n, const GLuint 
*buffers);
+typedef void (* glGenBuffersARBProcPtr) (GLsizei n, GLuint *buffers);
+typedef GLboolean (* glIsBufferARBProcPtr) (GLuint buffer);
+typedef void (* glBufferDataARBProcPtr) (GLenum target, GLsizeiptrARB size, 
const GLvoid *data, GLenum usage);
+typedef void (* glBufferSubDataARBProcPtr) (GLenum target, GLintptrARB 
offset, GLsizeiptrARB size, const GLvoid *data);
+typedef void (* glGetBufferSubDataARBProcPtr) (GLenum target, GLintptrARB 
offset, GLsizeiptrARB size, GLvoid *data);
+typedef GLvoid *(* glMapBufferARBProcPtr) (GLenum target, GLenum access);
+typedef GLboolean (* glUnmapBufferARBProcPtr) (GLenum target);
+typedef void (* glGetBufferParameterivARBProcPtr) (GLenum target, GLenum 
pname, GLint *params);
+typedef void (* glGetBufferPointervARBProcPtr) (GLenum target, GLenum pname, 
GLvoid **params);
+#else
+extern "C" {
+extern void glBindBufferARB(GLenum target, GLuint buffer);
+extern void glDeleteBuffersARB(GLsizei n, const GLuint *buffers);
+extern void glGenBuffersARB(GLsizei n, GLuint *buffers);
+extern GLboolean glIsBufferARB(GLuint buffer);
+extern void glBufferDataARB(GLenum target, GLsizeiptrARB size, const GLvoid 
*data, GLenum usage);
+extern void glBufferSubDataARB(GLenum target, GLintptrARB offset, 
GLsizeiptrARB size, const GLvoid *data);
+extern void glGetBufferSubDataARB(GLenum target, GLintptrARB offset, 
GLsizeiptrARB size, GLvoid *data);
+extern GLvoid *glMapBufferARB(GLenum target, GLenum access);
+extern GLboolean glUnmapBufferARB(GLenum target);
+extern void glGetBufferParameterivARB(GLenum target, GLenum pname, GLint 
*params);
+extern void glGetBufferPointervARB(GLenum target, GLenum pname, GLvoid 
**params);
+}
+#endif /* GL_GLEXT_FUNCTION_POINTERS */
+#endif
+
+#ifndef GL_ARB_vertex_buffer_object
+#define GL_ARB_vertex_buffer_object 1
+#define GL_ARRAY_BUFFER_ARB                                0x8892
+#define GL_ELEMENT_ARRAY_BUFFER_ARB                        0x8893
+#define GL_ARRAY_BUFFER_BINDING_ARB                        0x8894
+#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB                0x8895
+#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB                 0x8896
+#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB                 0x8897
+#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB                  0x8898
+#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB                  0x8899
+#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB          0x889A
+#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB              0x889B
+#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB        0x889C
+#define GL_FOG_COORD_ARRAY_BUFFER_BINDING_ARB              0x889D
+#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB                 0x889E
+#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB          0x889F
+#define GL_STREAM_DRAW_ARB                                 0x88E0
+#define GL_STREAM_READ_ARB                                 0x88E1
+#define GL_STREAM_COPY_ARB                                 0x88E2
+#define GL_STATIC_DRAW_ARB                                 0x88E4
+#define GL_STATIC_READ_ARB                                 0x88E5
+#define GL_STATIC_COPY_ARB                                 0x88E6
+#define GL_DYNAMIC_DRAW_ARB                                0x88E8
+#define GL_DYNAMIC_READ_ARB                                0x88E9
+#define GL_DYNAMIC_COPY_ARB                                0x88EA
+#define GL_READ_ONLY_ARB                                   0x88B8
+#define GL_WRITE_ONLY_ARB                                  0x88B9
+#define GL_READ_WRITE_ARB                                  0x88BA
+#define GL_BUFFER_SIZE_ARB                                 0x8764
+#define GL_BUFFER_USAGE_ARB                                0x8765
+#define GL_BUFFER_ACCESS_ARB                               0x88BB
+#define GL_BUFFER_MAPPED_ARB                               0x88BC
+#define GL_BUFFER_MAP_POINTER_ARB                          0x88BD
+/* Obsolete */
+#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB         0x889D
 #endif
+
+
 #endif /* __APPLE__ */
 
 // If these extensions are not availble, define these constants to something 
so
@@ -333,7 +418,7 @@
   }
 
   glBindTexture(GL_TEXTURE_RECTANGLE_EXT, texids[0]);
-  glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE_EXT, xres*yres*4, data);
+  glTextureRangeAPPLE(GL_TEXTURE_RECTANGLE_EXT, xres*yres*4, 
si->getRawData(0));
   if(have_clientstorage)
     glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, GL_TRUE);
   glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
@@ -432,7 +517,7 @@
     cerr << "Computing ids for current_pbo = "<<current_pbo<<"\n";
     // Free old textures if necessary...
     glGenTextures(1, &pbo->texId);
-    glGenBuffers(1, &pbo->bufId);
+    glGenBuffersARB(1, &pbo->bufId);
     pbo->need_ids = false;
   }
 
@@ -452,7 +537,7 @@
   // Map the memory.  The contents are undefined, because of the
   // previous call to glBufferData.
   void* pboMemory = glMapBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB,
-                                   GL_WRITE_ONLY);
+                                   GL_WRITE_ONLY_ARB);
 
   // Copy the data
   memcpy(pboMemory, si->getRawData(0), pbo->texSize);

Modified: trunk/Engine/Display/PureOpenGLDisplay.h
==============================================================================
--- trunk/Engine/Display/PureOpenGLDisplay.h    (original)
+++ trunk/Engine/Display/PureOpenGLDisplay.h    Tue May 23 16:23:36 2006
@@ -32,6 +32,14 @@
 #include <Core/Color/RGBColor.h>
 
 #include <GL/gl.h>
+#include <GL/glext.h>
+
+#ifdef __APPLE__
+#ifndef GL_ARB_vertex_buffer_object
+typedef long GLintptrARB;
+typedef long GLsizeiptrARB;
+#endif
+#endif
 
 #include <sgi_stl_warnings_off.h>
 #include <string>




  • [MANTA] r1082 - trunk/Engine/Display, sparker, 05/23/2006

Archive powered by MHonArc 2.6.16.

Top of page