summaryrefslogtreecommitdiff
path: root/chickadee/graphics/gpu.scm
diff options
context:
space:
mode:
Diffstat (limited to 'chickadee/graphics/gpu.scm')
-rw-r--r--chickadee/graphics/gpu.scm17
1 files changed, 13 insertions, 4 deletions
diff --git a/chickadee/graphics/gpu.scm b/chickadee/graphics/gpu.scm
index 7a70d7e..16f5554 100644
--- a/chickadee/graphics/gpu.scm
+++ b/chickadee/graphics/gpu.scm
@@ -47,6 +47,7 @@
gpu-vertex-array
gpu-viewport
gpu-multisample
+ gpu-color-mask
set-gpu-blend-mode!
set-gpu-depth-test!
set-gpu-stencil-test!
@@ -56,7 +57,8 @@
set-gpu-vertex-buffer!
set-gpu-vertex-array!
set-gpu-viewport!
- set-gpu-multisample!))
+ set-gpu-multisample!
+ set-gpu-color-mask!))
;;;
@@ -114,7 +116,8 @@ from the GPU's memory."
vertex-buffer
vertex-array
viewport
- multisample)
+ multisample
+ color-mask)
gpu?
(gl-context gpu-gl-context)
(gl-version gpu-gl-version)
@@ -129,7 +132,8 @@ from the GPU's memory."
(vertex-buffer %gpu-vertex-buffer)
(vertex-array %gpu-vertex-array)
(viewport %gpu-viewport)
- (multisample %gpu-multisample))
+ (multisample %gpu-multisample)
+ (color-mask %gpu-color-mask))
(define current-gpu (make-parameter #f))
@@ -157,6 +161,7 @@ from the GPU's memory."
(shader-module (resolve-interface '(chickadee graphics shader)))
(texture-module (resolve-interface '(chickadee graphics texture)))
(viewport-module (resolve-interface '(chickadee graphics viewport)))
+ (color-module (resolve-interface '(chickadee graphics color)))
(gl-version (extract-version (string-name version)))
(glsl-version (extract-version (version-2-0 shading-language-version))))
;; Create state for 32 texture units.
@@ -187,7 +192,9 @@ from the GPU's memory."
(module-ref buffer-module 'null-vertex-array))
(make-gpu-state (module-ref viewport-module 'apply-viewport)
(module-ref viewport-module 'null-viewport))
- (make-gpu-state apply-multisample #f))))
+ (make-gpu-state apply-multisample #f)
+ (make-gpu-state (module-ref color-module 'apply-color-mask)
+ (module-ref color-module 'default-color-mask)))))
(define-syntax-rule (define-gpu-getter name ref)
(define (name gpu)
@@ -202,6 +209,7 @@ from the GPU's memory."
(define-gpu-getter gpu-vertex-array %gpu-vertex-array)
(define-gpu-getter gpu-viewport %gpu-viewport)
(define-gpu-getter gpu-multisample %gpu-multisample)
+(define-gpu-getter gpu-color-mask %gpu-color-mask)
(define-syntax-rule (define-gpu-setter name ref)
(define (name gpu x)
@@ -216,6 +224,7 @@ from the GPU's memory."
(define-gpu-setter set-gpu-vertex-array! %gpu-vertex-array)
(define-gpu-setter set-gpu-viewport! %gpu-viewport)
(define-gpu-setter set-gpu-multisample! %gpu-multisample)
+(define-gpu-setter set-gpu-color-mask! %gpu-color-mask)
(define (gpu-texture gpu texture-unit)
(gpu-state-ref (vector-ref (gpu-textures gpu) texture-unit)))