From 92a3951c0823c3be804ca92c78710a6a3d1e7a69 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Thu, 16 Feb 2023 20:51:05 -0500 Subject: Add discard as an alias to empty outputs. --- chickadee/graphics/seagull.scm | 7 +++++-- 1 file 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)) -- cgit v1.2.3