summaryrefslogtreecommitdiff
path: root/2d/wrappers
diff options
context:
space:
mode:
authorDavid Thompson <dthompson@member.fsf.org>2013-09-05 07:37:53 -0400
committerDavid Thompson <dthompson@member.fsf.org>2013-09-05 07:37:53 -0400
commitf6eed03342b55a2a843c177822bef13609d81703 (patch)
tree4f6acc9a709c47a6847e9214541d05533dea4c5c /2d/wrappers
parent62691c7ccec4773fc20cb3179a04c4d48622b23a (diff)
Add missing wrappers for glGenTextures and glDeleteTextures.
This should resolve issue #10.
Diffstat (limited to '2d/wrappers')
-rw-r--r--2d/wrappers/gl.scm24
1 files changed, 23 insertions, 1 deletions
diff --git a/2d/wrappers/gl.scm b/2d/wrappers/gl.scm
index 8360463..108fc75 100644
--- a/2d/wrappers/gl.scm
+++ b/2d/wrappers/gl.scm
@@ -65,6 +65,25 @@
(re-export (%glTexParameteri . gl-texture-parameter))
+
+;;;
+;;; 3.8.12 Texture Objects
+;;;
+
+;; TODO gl-are-textures-resident? gl-prioritze-textures
+
+(define (gl-generate-textures n)
+ (let ((bv (make-u32vector n 0)))
+ (%glGenTextures n bv)
+ (u32vector->list bv)))
+
+(define (gl-generate-texture)
+ (car (gl-generate-textures 1)))
+
+(define (gl-delete-textures textures)
+ (let ((bv (list->u32vector textures)))
+ (%glDeleteTextures (u32vector-length bv) bv)))
+
;; emacs: (put 'with-gl-bind-texture 'scheme-indent-function 2)
(define-syntax-rule (with-gl-bind-texture target id body ...)
(begin
@@ -73,4 +92,7 @@
...
(%glBindTexture target 0)))
-(export with-gl-bind-texture)
+(export gl-generate-textures
+ gl-generate-texture
+ gl-delete-textures
+ with-gl-bind-texture)