render: texture: Add private gl-size field.
authorDavid Thompson <dthompson2@worcester.edu>
Wed, 18 Oct 2017 01:39:57 +0000 (21:39 -0400)
committerDavid Thompson <dthompson2@worcester.edu>
Wed, 18 Oct 2017 01:39:57 +0000 (21:39 -0400)
* chickadee/render/texture.scm (<texture>)[gl-size]: New field.
(null-texture, make-texture): Add gl-size argument.

chickadee/render/texture.scm

index c37fef9..2b4755e 100644 (file)
@@ -71,7 +71,7 @@
 ;; The <texture> object is a simple wrapper around an OpenGL texture
 ;; id.
 (define-record-type <texture>
-  (%make-texture id width height min-filter mag-filter wrap-s wrap-t)
+  (%make-texture id width height min-filter mag-filter wrap-s wrap-t gl-size)
   texture?
   (id texture-id)
   (width texture-width)
@@ -79,7 +79,8 @@
   (min-filter texture-min-filter)
   (mag-filter texture-mag-filter)
   (wrap-s texture-wrap-s)
-  (wrap-t texture-wrap-t))
+  (wrap-t texture-wrap-t)
+  (gl-size texture-gl-size))
 
 (set-record-type-printer! <texture>
   (lambda (texture port)
@@ -92,7 +93,8 @@
             (texture-wrap-s texture)
             (texture-wrap-t texture))))
 
-(define null-texture (%make-texture 0 0 0 'linear 'linear 'repeat 'repeat))
+(define null-texture
+  (%make-texture 0 0 0 'linear 'linear 'repeat 'repeat (f32vector 0.0 0.0)))
 
 (define <<texture>> (class-of null-texture))
 
@@ -152,7 +154,8 @@ clamp-to-edge.  FORMAT specifies the pixel format.  Currently only
 
   (let ((texture (gpu-guard
                   (%make-texture (gl-generate-texture) width height
-                                 min-filter mag-filter wrap-s wrap-t))))
+                                 min-filter mag-filter wrap-s wrap-t
+                                 (f32vector width height)))))
     (texture-set! 0 texture)
     (gl-texture-parameter (texture-target texture-2d)
                           (texture-parameter-name texture-min-filter)