summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chickadee/graphics/seagull.scm7
1 files changed, 5 insertions, 2 deletions
diff --git a/chickadee/graphics/seagull.scm b/chickadee/graphics/seagull.scm
index 515c9e1..c5452b0 100644
--- a/chickadee/graphics/seagull.scm
+++ b/chickadee/graphics/seagull.scm
@@ -39,9 +39,8 @@
;;
;; TODO:
;; - Loops
-;; - discard
;; - (define ...) form
-;; - struct field aliases (rgba for vec4, for example)
+;; - struct field aliases (rgba for vec4, for example) maybe a bad idea??
;; - Scheme shader type -> GLSL struct translation
;; - Dead code elimination (error when a uniform is eliminated)
;; - User defined structs
@@ -504,6 +503,10 @@
(expand:cond clauses stage env))
(('case key clauses ...)
(expand:case key clauses stage env))
+ (('discard)
+ (if (eq? stage 'fragment)
+ '(outputs)
+ (seagull-syntax-error "discard not allowed in vertex shader" exp expand)))
;; Primitive calls:
(((? primitive-call-for-stage? operator) args ...)
(expand:primitive-call operator args stage env))