diff options
author | Thomas White <taw@physics.org> | 2021-04-02 17:53:52 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2021-04-02 17:53:52 +0200 |
commit | 0f3a785dbd1dfcf1bfa636463b766b8f256e2e9f (patch) | |
tree | 1dc429e5b4e3a23d8ab83b148a6317c5f42d87b6 | |
parent | 348885be43fd8c97b2eea6623ab3632939d77dcf (diff) |
Give programmer values absolute priority
-rw-r--r-- | guile/starlet/base.scm | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/guile/starlet/base.scm b/guile/starlet/base.scm index d53720e..105df54 100644 --- a/guile/starlet/base.scm +++ b/guile/starlet/base.scm @@ -442,23 +442,30 @@ pre-existing contents." 'no-value))) (define (current-value fix attr-name tnow) - (if (intensity? attr-name) + (let ((programmer-val (state-find fix attr-name programmer-state))) + (if (eq? 'no-value programmer-val) - ;; HTP for intensity - (fold (lambda (state prev) - (let ((val (state-find fix attr-name state))) - (if (eq? 'no-value val) - prev - (let ((real-val (value->number val tnow))) - (max real-val prev))))) - 0.0 - (atomic-box-ref state-list)) + ;; Look in the states + (if (intensity? attr-name) - ;; Priority order for everything else - (let ((val (first-val fix attr-name tnow (atomic-box-ref state-list)))) - (if (eq? 'no-value val) - (get-attr-home-val fix attr-name) - (value->number val tnow))))) + ;; HTP for intensity + (fold (lambda (state prev) + (let ((val (state-find fix attr-name state))) + (if (eq? 'no-value val) + prev + (let ((real-val (value->number val tnow))) + (max real-val prev))))) + 0.0 + (atomic-box-ref state-list)) + + ;; Priority order for everything else + (let ((val (first-val fix attr-name tnow (atomic-box-ref state-list)))) + (if (eq? 'no-value val) + (get-attr-home-val fix attr-name) + (value->number val tnow)))) + + ;; Use programmer value, if we have it + programmer-val))) (define-syntax attr-continuous @@ -482,7 +489,6 @@ pre-existing contents." (define current-state (make-parameter programmer-state)) -(register-state! (current-state)) (define-syntax lighting-state |