Skip to content

Commit

Permalink
Fix a buncha shit.
Browse files Browse the repository at this point in the history
  • Loading branch information
Shinmera committed Aug 7, 2019
1 parent db8c1d3 commit 34afc21
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 31 deletions.
2 changes: 1 addition & 1 deletion layouts/linear.lisp
Expand Up @@ -10,7 +10,7 @@
((min-size :initarg :min-size :initform (size) :accessor min-size)
(stretch :initarg :stretch :initform T :accessor stretch)))

(defgeneric update-linear-layout (layout index extent ui))
(defgeneric update-linear-layout (layout index extent))

(defmethod notice-bounds :after ((element layout-element) (layout linear-layout))
(let ((updated (update-linear-layout layout (element-index element layout) (bounds layout))))
Expand Down
2 changes: 1 addition & 1 deletion renderers/simple/documentation.lisp
Expand Up @@ -4,4 +4,4 @@
Author: Nicolas Hafner <shinmera@tymoon.eu>
|#

(in-package #:org.shirakumo.alloy.renderer.simple)
(in-package #:org.shirakumo.alloy.renderers.simple)
9 changes: 8 additions & 1 deletion renderers/simple/package.lisp
Expand Up @@ -4,7 +4,7 @@
Author: Nicolas Hafner <shinmera@tymoon.eu>
|#

(defpackage #:org.shirakumo.alloy.renderer.simple
(defpackage #:org.shirakumo.alloy.renderers.simple
(:use #:cl)
(:local-nicknames
(#:alloy #:org.shirakumo.alloy))
Expand All @@ -28,6 +28,8 @@
#:polygon
#:text
#:image
#:size
#:data
#:clear
#:request-font
#:request-image
Expand All @@ -39,6 +41,11 @@
#:b
#:a
#:font
#:family
#:style
#:variant
#:weight
#:stretch
#:image
#:simple-renderer
#:with-pushed-transforms
Expand Down
21 changes: 16 additions & 5 deletions renderers/simple/protocol.lisp
Expand Up @@ -4,7 +4,7 @@
Author: Nicolas Hafner <shinmera@tymoon.eu>
|#

(in-package #:org.shirakumo.alloy.renderer.simple)
(in-package #:org.shirakumo.alloy.renderers.simple)

(defgeneric call-with-pushed-transforms (function renderer))
(defgeneric clip (renderer extent))
Expand All @@ -31,7 +31,7 @@
(defgeneric rectangle (renderer extent))
(defgeneric ellipse (renderer extent))
(defgeneric polygon (renderer points))
(defgeneric text (renderer string &key font size))
(defgeneric text (renderer point string &key font size))
(defgeneric image (renderer point image &key size))
(defgeneric clear (renderer extent))

Expand All @@ -56,22 +56,33 @@
(defun color (r g b &optional (a 1.0f0))
(%color (float r 0f0) (float g 0f0) (float b 0f0) (float a 0f0)))

(define-compiler-macro color (r g b &optional (a 0) &environment env)
(define-compiler-macro color (r g b &optional (a 1) &environment env)
(flet ((fold (arg)
(if (constantp arg env)
`(load-time-value (float ,arg 0f0))
`(float ,arg 0f0))))
`(%color ,(fold r) ,(fold g) ,(fold b) ,(fold a))))

(defclass font ()
())
((family :initarg :family :initform (error "FAMILY required.") :reader family)
(style :initarg :style :initform :normal :reader style)
(variant :initarg :variant :initform :normal :reader variant)
(weight :initarg :weight :initform :normal :reader weight)
(stretch :initarg :stretch :initform :normal :reader stretch)))

(defclass image ()
())
((size :initarg :size :reader size)
(data :initarg :data :reader data)))

(defclass simple-renderer (alloy:renderer)
())

(defmethod request-font ((renderer simple-renderer) (fontspec string))
(request-font renderer (make-instance 'font :family fontspec)))

(defmethod request-font ((renderer simple-renderer) (fontspec (eql :default)))
(request-font renderer "sans-serif"))

(defmacro with-pushed-transforms ((renderer) &body body)
`(call-with-pushed-transforms (lambda () ,@body) ,renderer))

Expand Down
32 changes: 16 additions & 16 deletions renderers/simple/style.lisp
Expand Up @@ -4,7 +4,7 @@
Author: Nicolas Hafner <shinmera@tymoon.eu>
|#

(in-package #:org.shirakumo.alloy.renderer.simple)
(in-package #:org.shirakumo.alloy.renderers.simple)

(defclass style ()
((fill-color :reader fill-color)
Expand Down Expand Up @@ -38,7 +38,7 @@
(init-slot composite-mode)))

(defmethod (setf fill-color) ((color color) (style style))
(setf (slot-value style 'color) color))
(setf (slot-value style 'fill-color) color))

(defmethod (setf line-width) ((width float) (style style))
(setf (slot-value style 'line-width) width))
Expand All @@ -64,11 +64,11 @@
(defgeneric make-default-style (renderer))

(defmethod make-default-style ((renderer simple-styled-renderer))
(make-instance 'style :fill-color (color 1 1 1)
(make-instance 'style :fill-color (color 0 0 0)
:line-width 1.0f0
:fill-mode :lines
:composite-mode :source-over
:font (request-font renderer "sans-serif")
:font (request-font renderer :default)
:font-size 12.0f0))

(defmethod call-with-pushed-styles (function (renderer simple-styled-renderer))
Expand All @@ -79,37 +79,37 @@
(setf (style renderer) current))))

(defmethod fill-color ((renderer simple-styled-renderer))
(fill-color (car (style-stack renderer))))
(fill-color (style renderer)))

(defmethod (setf fill-color) (color (renderer simple-styled-renderer))
(setf (fill-color (car (style-stack renderer))) color))
(setf (fill-color (style renderer)) color))

(defmethod line-width ((renderer simple-styled-renderer))
(line (car (style-stack renderer))))
(line (style renderer)))

(defmethod (setf line-width) (width (renderer simple-styled-renderer))
(setf (line-width (car (style-stack renderer))) width))
(setf (line-width (style renderer)) width))

(defmethod fill-mode ((renderer simple-styled-renderer))
(fill-mode (car (style-stack renderer))))
(fill-mode (style renderer)))

(defmethod (setf fill-mode) (mode (renderer simple-styled-renderer))
(setf (fill-mode (car (style-stack renderer))) mode))
(setf (fill-mode (style renderer)) mode))

(defmethod composite-mode ((renderer simple-styled-renderer))
(composite-mode (car (style-stack renderer))))
(composite-mode (style renderer)))

(defmethod (setf composite-mode) (mode (renderer simple-styled-renderer))
(setf (composite-mode (car (style-stack renderer))) mode))
(setf (composite-mode (style renderer)) mode))

(defmethod font ((renderer simple-styled-renderer))
(font (car (style-stack renderer))))
(font (style renderer)))

(defmethod (setf font) (font (renderer simple-styled-renderer))
(setf (font (car (style-stack renderer))) font))
(setf (font (style renderer)) font))

(defmethod font-size ((renderer simple-styled-renderer))
(font (car (style-stack renderer))))
(font-size (style renderer)))

(defmethod (setf font-size) (size (renderer simple-styled-renderer))
(setf (font-size (car (style-stack renderer))) size))
(setf (font-size (style renderer)) size))
14 changes: 7 additions & 7 deletions renderers/simple/transforms.lisp
Expand Up @@ -4,7 +4,7 @@
Author: Nicolas Hafner <shinmera@tymoon.eu>
|#

(in-package #:org.shirakumo.alloy.renderer.simple)
(in-package #:org.shirakumo.alloy.renderers.simple)

(defun matrix (&rest values)
(let ((matrix (make-array 9 :element-type 'single-float)))
Expand Down Expand Up @@ -47,9 +47,9 @@
((clip-mask :accessor clip-mask)
(transform-matrix :accessor transform-matrix)))

(defmethod shared-initialize :after ((transform transform) slots &key (clip-mask NIL c-p) matrix)
(defmethod shared-initialize :after ((transform transform) slots &key (clip-mask NIL c-p) transform-matrix)
(when c-p (clip transform clip-mask))
(when matrix (setf (transform-matrix transform) matrix)))
(when transform-matrix (setf (transform-matrix transform) transform-matrix)))

(defmethod initialize-instance :after ((transform transform) &key parent)
(macrolet ((init-slot (slot)
Expand Down Expand Up @@ -114,13 +114,13 @@
(setf (transform-stack renderer) (list (make-default-transform renderer)))))

(defmethod clip ((renderer simple-transformed-renderer) region)
(clip (car (transform-stack renderer)) region))
(clip (transform renderer) region))

(defmethod translate ((renderer simple-transformed-renderer) point)
(translate (car (transform-stack renderer)) point))
(translate (transform renderer) point))

(defmethod scale ((renderer simple-transformed-renderer) size)
(scale (car (transform-stack renderer)) size))
(scale (transform renderer) size))

(defmethod rotate ((renderer simple-transformed-renderer) phi)
(rotate (car (transform-stack renderer)) phi))
(rotate (transform renderer) phi))

0 comments on commit 34afc21

Please sign in to comment.