diff options
Diffstat (limited to 'chickadee/graphics/gpu.scm')
-rw-r--r-- | chickadee/graphics/gpu.scm | 17 |
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))) |