]> gitweb.factorcode.org Git - factor.git/commitdiff
opengl helper words for ARB/APPLE vertex array objects
authorJoe Groff <arcata@gmail.com>
Wed, 1 Jul 2009 18:53:28 +0000 (13:53 -0500)
committerJoe Groff <arcata@gmail.com>
Wed, 1 Jul 2009 18:53:28 +0000 (13:53 -0500)
basis/opengl/opengl.factor

index 7d79516a2ce38046f068c76bc01998ce6ee538d8..a56b72ada5c2bb3995588e68bef60decec9cc8f2 100644 (file)
@@ -128,12 +128,12 @@ MACRO: all-enabled-client-state ( seq quot -- )
 : (gen-gl-object) ( quot -- id )
     [ 1 0 <uint> ] dip keep *uint ; inline
 
-: gen-gl-buffer ( -- id )
-    [ glGenBuffers ] (gen-gl-object) ;
-
 : (delete-gl-object) ( id quot -- )
     [ 1 swap <uint> ] dip call ; inline
 
+: gen-gl-buffer ( -- id )
+    [ glGenBuffers ] (gen-gl-object) ;
+
 : delete-gl-buffer ( id -- )
     [ glDeleteBuffers ] (delete-gl-object) ;
 
@@ -146,6 +146,16 @@ MACRO: all-enabled-client-state ( seq quot -- )
         GL_ARRAY_BUFFER swap _ with-gl-buffer
     ] with-gl-buffer ; inline
 
+: gen-vertex-array ( -- id )
+    [ glGenVertexArrays ] (gen-gl-object) ;
+
+: delete-vertex-array ( id -- )
+    [ glDeleteVertexArrays ] (delete-gl-object) ;
+
+:: with-vertex-array ( id quot -- )
+    id glBindVertexArray
+    quot [ binding 0 glBindVertexArray ] [ ] cleanup ; inline
+
 : <gl-buffer> ( target data hint -- id )
     pick gen-gl-buffer [
         [