Basic infrastructure for GL_ARB_vertex_buffer_object.
authorBrian Paul <brian.paul@tungstengraphics.com>
Sat, 29 Mar 2003 17:01:00 +0000 (17:01 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Sat, 29 Mar 2003 17:01:00 +0000 (17:01 +0000)
14 files changed:
src/mesa/Makefile.X11
src/mesa/main/Makefile.BeOS-R5
src/mesa/main/Makefile.DJ
src/mesa/main/Makefile.OSMesa16
src/mesa/main/Makefile.X11
src/mesa/main/Makefile.ugl
src/mesa/main/Makefile.win
src/mesa/main/bufferobj.c [new file with mode: 0644]
src/mesa/main/bufferobj.h [new file with mode: 0644]
src/mesa/main/config.h
src/mesa/main/descrip.mms
src/mesa/main/extensions.c
src/mesa/main/mtypes.h
src/mesa/main/state.c

index d95a565a16e86ce6eb1c0bccbeb79b00cd1bf9e6..adb13c06ed014017b2a40f09cd5fc573d8b5ac5d 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile.X11,v 1.75 2003/03/25 02:26:29 brianp Exp $
+# $Id: Makefile.X11,v 1.76 2003/03/29 17:01:02 brianp Exp $
 
 # Mesa 3-D graphics library
 # Version:  5.0
@@ -28,6 +28,8 @@ CORE_SOURCES = \
        accum.c \
        attrib.c \
        blend.c \
+       bufferobj.c \
+       bufferobj.c \
        buffers.c \
        clip.c \
        colortab.c \
index c1da7f3f07209d3d57da16cdd5b4d6a52767c1c8..43f6ac1f83544dc3764b61f78cba8a89956898f6 100644 (file)
@@ -63,6 +63,7 @@ MESA_CORE_SRCS = \
        accum.c \
        attrib.c \
        blend.c \
+       bufferobj.c \
        buffers.c \
        clip.c \
        colortab.c \
index 16012c8d424512f16689d6d7c77a52099caca4ca..89f58a5dd4399332b6de8b97eced5b25d176ce1f 100644 (file)
@@ -1,7 +1,7 @@
 # Mesa 3-D graphics library\r
-# Version:  4.1\r
+# Version:  5.1\r
 # \r
-# Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.\r
+# Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.\r
 # \r
 # Permission is hereby granted, free of charge, to any person obtaining a\r
 # copy of this software and associated documentation files (the "Software"),\r
@@ -105,6 +105,7 @@ CORE_SOURCES = \
        accum.c \\r
        attrib.c \\r
        blend.c \\r
+       bufferobj.c \\r
        buffers.c \\r
        clip.c \\r
        colortab.c \\r
index 3ed54c4969addbdcb832cc7e41f43fb66153014e..62e934405c69fb0405815ee9186bd0497ef3305d 100644 (file)
@@ -1,8 +1,8 @@
-# $Id: Makefile.OSMesa16,v 1.13 2003/03/25 02:26:29 brianp Exp $
+# $Id: Makefile.OSMesa16,v 1.14 2003/03/29 17:01:02 brianp Exp $
 
 # Mesa 3-D graphics library
-# Version:  5.0
-# Copyright (C) 1995-2002  Brian Paul
+# Version:  5.1
+# Copyright (C) 1995-2003  Brian Paul
 
 # Makefile for building Mesa for 16/32-bit/channel rendering with the OSMesa
 # driver.
@@ -29,6 +29,7 @@ CORE_SOURCES = \
        accum.c \
        attrib.c \
        blend.c \
+       bufferobj.c \
        buffers.c \
        clip.c \
        colortab.c \
index d95a565a16e86ce6eb1c0bccbeb79b00cd1bf9e6..adb13c06ed014017b2a40f09cd5fc573d8b5ac5d 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile.X11,v 1.75 2003/03/25 02:26:29 brianp Exp $
+# $Id: Makefile.X11,v 1.76 2003/03/29 17:01:02 brianp Exp $
 
 # Mesa 3-D graphics library
 # Version:  5.0
@@ -28,6 +28,8 @@ CORE_SOURCES = \
        accum.c \
        attrib.c \
        blend.c \
+       bufferobj.c \
+       bufferobj.c \
        buffers.c \
        clip.c \
        colortab.c \
index 20452e44a434c17fbe30804cf5b12ff81c8ff2c4..b01b564f7927c0fbaa0bf1a400dae83982011982 100644 (file)
@@ -58,6 +58,7 @@ GL_SOURCES = \
        accum.c \
        attrib.c \
        blend.c \
+       bufferobj.c \
        buffers.c \
        clip.c \
        colortab.c \
index d4a45547c6ca1611e0a40646ba58aef8cdb2f2b3..e1923dffebaaf37a40fe5798ed1290d285f1e669 100644 (file)
@@ -18,6 +18,7 @@ CORE_SRCS = \
        accum.c \
        attrib.c \
        blend.c \
+       bufferobj.c \
        buffers.c \
        clip.c \
        colortab.c \
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
new file mode 100644 (file)
index 0000000..7742e29
--- /dev/null
@@ -0,0 +1,98 @@
+/* $Id: bufferobj.c,v 1.1 2003/03/29 17:01:00 brianp Exp $ */
+
+/*
+ * Mesa 3-D graphics library
+ * Version:  5.1
+ *
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+/**
+ * \file bufferobj.c
+ * \brief Functions for the GL_ARB_vertex_buffer_object extension.
+ * \author Brian Paul
+ */
+
+
+#include "glheader.h"
+#include "imports.h"
+#include "bufferobj.h"
+
+
+void
+_mesa_BindBufferARB(GLenum target, GLuint buffer)
+{
+}
+
+void
+_mesa_DeleteBuffersARB(GLsizei n, const GLuint * buffer)
+{
+}
+
+void
+_mesa_GenBuffersARB(GLsizei n, GLuint * buffer)
+{
+}
+
+GLboolean
+_mesa_IsBufferARB(GLuint buffer)
+{
+   return GL_FALSE;
+}
+
+void
+_mesa_BufferDataARB(GLenum target, GLsizeiptrARB size,
+                    const GLvoid * data, GLenum usage)
+{
+}
+
+void
+_mesa_BufferSubDataARB(GLenum target, GLintptrARB offset,
+                       GLsizeiptrARB size, const GLvoid * data)
+{
+}
+
+void
+_mesa_GetBufferSubDataARB(GLenum target, GLintptrARB offset,
+                          GLsizeiptrARB size, void * data)
+{
+}
+
+void
+_mesa_MapBufferARB(GLenum target, GLenum access)
+{
+}
+
+GLboolean
+_mesa_UnmapBufferARB(GLenum target)
+{
+   return GL_FALSE;
+}
+
+void
+_mesa_GetBufferParameterivARB(GLenum target, GLenum pname, GLint *params)
+{
+}
+
+void
+_mesa_GetBufferPointervARB(GLenum target, GLenum pname, GLvoid **params)
+{
+}
diff --git a/src/mesa/main/bufferobj.h b/src/mesa/main/bufferobj.h
new file mode 100644 (file)
index 0000000..2617eb0
--- /dev/null
@@ -0,0 +1,66 @@
+/* $Id: bufferobj.h,v 1.1 2003/03/29 17:01:00 brianp Exp $ */
+
+/*
+ * Mesa 3-D graphics library
+ * Version:  5.1
+ *
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+
+
+#ifndef BUFFEROBJ_H
+#define BUFFEROBJ_H
+
+
+extern void
+_mesa_BindBufferARB(GLenum target, GLuint buffer);
+
+extern void
+_mesa_DeleteBuffersARB(GLsizei n, const GLuint * buffer);
+
+extern void
+_mesa_GenBuffersARB(GLsizei n, GLuint * buffer);
+
+GLboolean
+_mesa_IsBufferARB(GLuint buffer);
+
+extern void
+_mesa_BufferDataARB(GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage);
+
+extern void
+_mesa_BufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data);
+
+extern void
+_mesa_GetBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, void * data);
+
+extern void
+_mesa_MapBufferARB(GLenum target, GLenum access);
+
+GLboolean
+_mesa_UnmapBufferARB(GLenum target);
+
+extern void
+_mesa_GetBufferParameterivARB(GLenum target, GLenum pname, GLint *params);
+
+extern void
+_mesa_GetBufferPointervARB(GLenum target, GLenum pname, GLvoid **params);
+
+#endif
index cfcba306f490c3fbc7e8d23fcb40976137d6dfdf..264b57c279ef01708ee2ff2e5a387b425676416f 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: config.h,v 1.44 2003/02/25 19:30:59 brianp Exp $ */
+/* $Id: config.h,v 1.45 2003/03/29 17:01:03 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
 
 #define FEATURE_NV_fragment_program 1
 
+#define FEATURE_ARB_vertex_buffer_object 1
 
 #endif /* CONFIG_H */
index 345c3e6130195d936c8c1669289c7601a38ffb21..5bb3fc6b95e2875d17daaed119f23694dc7f6b31 100644 (file)
@@ -21,6 +21,7 @@ CORE_SOURCES =accum.c \
        api_validate.c \
        attrib.c \
        blend.c \
+       bufferobj.c \
        buffers.c \
        clip.c \
        colortab.c \
@@ -90,6 +91,7 @@ RASTER_SOURCES = [.swrast]s_aatriangle.c \
 [.swrast]s_alphabuf.c \
 [.swrast]s_bitmap.c \
 [.swrast]s_blend.c \
+[.swrast]s_bufferobj.c \
 [.swrast]s_buffers.c \
 [.swrast]s_copypix.c \
 [.swrast]s_context.c \
index 7e1f203872392a48da7ebb855770250d376c7054..88616b63093dab174e07f0e7347c98cb09bbe5f1 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: extensions.c,v 1.88 2003/01/21 21:47:49 brianp Exp $ */
+/* $Id: extensions.c,v 1.89 2003/03/29 17:01:01 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -67,6 +67,7 @@ static struct {
    { OFF, "GL_ARB_texture_env_dot3",           F(ARB_texture_env_dot3) },
    { OFF, "GL_ARB_texture_mirrored_repeat",    F(ARB_texture_mirrored_repeat)},
    { ON,  "GL_ARB_transpose_matrix",           0 },
+   { OFF, "GL_ARB_vertex_buffer_object",       F(ARB_vertex_buffer_object) },
    { ON,  "GL_ARB_window_pos",                 F(ARB_window_pos) },
    { OFF, "GL_ATI_texture_mirror_once",        F(ATI_texture_mirror_once)},
    { OFF, "GL_ATI_texture_env_combine3",       F(ATI_texture_env_combine3)},
index 5a946d81ad4e983646ff7b3ed6087311e0fcefd9..a1c8dac03fe21956d26c96c9aaf85e5d187c5b93 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: mtypes.h,v 1.107 2003/03/19 05:34:24 brianp Exp $ */
+/* $Id: mtypes.h,v 1.108 2003/03/29 17:01:00 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -1402,6 +1402,7 @@ struct gl_extensions {
    GLboolean ARB_texture_env_crossbar;
    GLboolean ARB_texture_env_dot3;
    GLboolean ARB_texture_mirrored_repeat;
+   GLboolean ARB_vertex_buffer_object;
    GLboolean ARB_window_pos;
    GLboolean ATI_texture_mirror_once;
    GLboolean ATI_texture_env_combine3;
index a2cd89e4455c8103d0a296a420b5048cbe3d7dcd..000a1fd578c5130742d3833a8a27e4a273f81c6a 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: state.c,v 1.101 2003/03/29 16:37:07 brianp Exp $ */
+/* $Id: state.c,v 1.102 2003/03/29 17:01:01 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -26,8 +26,8 @@
 
 
 /*
- * This file manages recalculation of derived values in the
- * __GLcontext.
+ * /brief This file manages recalculation of derived values in the
+ * __GLcontext.  Also, this is where we initialize the API dispatch table.
  */
 
 
@@ -36,6 +36,9 @@
 #include "api_loopback.h"
 #include "attrib.h"
 #include "blend.h"
+#if FEATURE_ARB_vertex_buffer_object
+#include "bufferobj.h"
+#endif
 #include "buffers.h"
 #include "clip.h"
 #include "colortab.h"
@@ -550,6 +553,21 @@ _mesa_init_exec_table(struct _glapi_table *exec, GLuint tableSize)
 
    /* ARB 14. GL_ARB_point_parameters */
    /* reuse EXT_point_parameters functions */
+
+   /* ARB 28. GL_ARB_vertex_buffer_object */
+#if FEATURE_ARB_vertex_buffer_object
+   exec->BindBufferARB = _mesa_BindBufferARB;
+   exec->DeleteBuffersARB = _mesa_DeleteBuffersARB;
+   exec->GenBuffersARB = _mesa_GenBuffersARB;
+   exec->IsBufferARB = _mesa_IsBufferARB;
+   exec->BufferDataARB = _mesa_BufferDataARB;
+   exec->BufferSubDataARB = _mesa_BufferSubDataARB;
+   exec->GetBufferSubDataARB = _mesa_GetBufferSubDataARB;
+   exec->MapBufferARB = _mesa_MapBufferARB;
+   exec->UnmapBufferARB = _mesa_UnmapBufferARB;
+   exec->GetBufferParameterivARB = _mesa_GetBufferParameterivARB;
+   exec->GetBufferPointervARB = _mesa_GetBufferPointervARB;
+#endif
 }