summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2014-08-16 22:01:01 -0400
committerDavid Thompson <dthompson2@worcester.edu>2014-08-25 19:33:07 -0400
commitaeb6fafbcbc87b699b75193b28eda6a0eb1073b9 (patch)
tree084dd744389a3828c2df6ef537e8f86e52ef13c0
parent73e2fd47272195d2fb458a7f139bde91b70551a7 (diff)
Support meshes with no texture.
* sly/mesh.scm (draw-mesh): Don't bind texture if there isn't one.
-rw-r--r--sly/mesh.scm14
1 files changed, 9 insertions, 5 deletions
diff --git a/sly/mesh.scm b/sly/mesh.scm
index 76f0993..3855330 100644
--- a/sly/mesh.scm
+++ b/sly/mesh.scm
@@ -178,6 +178,12 @@
(%make-mesh vao (vector-length indices) shader texture)))
(define (draw-mesh mesh uniforms)
+ (define (draw)
+ (glDrawElements (begin-mode triangles)
+ (mesh-length mesh)
+ (data-type unsigned-int)
+ %null-pointer))
+
(with-shader-program (mesh-shader mesh)
(for-each (lambda (uniform)
(match uniform
@@ -187,8 +193,6 @@
name value))))
uniforms)
(with-vertex-array (mesh-vao mesh)
- (with-texture (mesh-texture mesh)
- (glDrawElements (begin-mode triangles)
- (mesh-length mesh)
- (data-type unsigned-int)
- %null-pointer)))))
+ (if (texture? (mesh-texture mesh))
+ (with-texture (mesh-texture mesh) (draw))
+ (draw)))))