summaryrefslogtreecommitdiff
path: root/chickadee/graphics/polygon.scm
diff options
context:
space:
mode:
Diffstat (limited to 'chickadee/graphics/polygon.scm')
-rw-r--r--chickadee/graphics/polygon.scm21
1 files changed, 16 insertions, 5 deletions
diff --git a/chickadee/graphics/polygon.scm b/chickadee/graphics/polygon.scm
index b84cc63..1b6a5a7 100644
--- a/chickadee/graphics/polygon.scm
+++ b/chickadee/graphics/polygon.scm
@@ -1,5 +1,5 @@
;;; Chickadee Game Toolkit
-;;; Copyright © 2020 David Thompson <davet@gnu.org>
+;;; Copyright © 2020, 2021 David Thompson <davet@gnu.org>
;;;
;;; Chickadee is free software: you can redistribute it and/or modify
;;; it under the terms of the GNU General Public License as published
@@ -22,6 +22,7 @@
;;; Code:
(define-module (chickadee graphics polygon)
+ #:use-module (chickadee graphics engine)
#:use-module (chickadee graphics gl)
#:use-module (gl)
#:use-module (ice-9 match)
@@ -33,7 +34,7 @@
fill-polygon-mode
line-polygon-mode
point-polygon-mode
- apply-polygon-mode
+ current-polygon-mode
make-cull-face-mode
cull-face-mode?
@@ -43,7 +44,7 @@
back-cull-face-mode
front-cull-face-mode
front-and-back-cull-face-mode
- apply-cull-face-mode))
+ current-cull-face-mode))
(define-record-type <polygon-mode>
(make-polygon-mode front back)
@@ -55,7 +56,7 @@
(define line-polygon-mode (make-polygon-mode 'line 'line))
(define point-polygon-mode (make-polygon-mode 'point 'point))
-(define (apply-polygon-mode mode)
+(define (bind-polygon-mode mode)
(define (glmode sym)
(match sym
('fill (polygon-mode fill))
@@ -69,6 +70,11 @@
(gl-polygon-mode (cull-face-mode front) (glmode front))
(gl-polygon-mode (cull-face-mode back) (glmode back))))))
+(define-graphics-state polygon-mode
+ current-polygon-mode
+ #:default fill-polygon-mode
+ #:bind bind-polygon-mode)
+
(define-record-type <cull-face-mode>
(make-cull-face-mode front? back?)
cull-face-mode?
@@ -80,7 +86,7 @@
(define front-cull-face-mode (make-cull-face-mode #t #f))
(define front-and-back-cull-face-mode (make-cull-face-mode #t #t))
-(define (apply-cull-face-mode mode)
+(define (bind-cull-face-mode mode)
(let ((front? (cull-face-mode-front? mode))
(back? (cull-face-mode-back? mode)))
(cond
@@ -95,3 +101,8 @@
(gl-cull-face (cull-face-mode back)))
(else
(gl-disable (enable-cap cull-face))))))
+
+(define-graphics-state cull-face-mode
+ current-cull-face-mode
+ #:default back-cull-face-mode
+ #:bind bind-cull-face-mode)