Skip to content

Commit

Permalink
Many fixes.
Browse files Browse the repository at this point in the history
  • Loading branch information
Shinmera committed Jun 15, 2020
1 parent 11b391f commit c319cad
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 30 deletions.
3 changes: 1 addition & 2 deletions assets/uniform-block.lisp
Expand Up @@ -13,9 +13,8 @@
(load generator)
(gl-source (resource generator T)))

(defmethod generate-resources ((generator uniform-block) input &key binding name qualifiers)
(defmethod generate-resources ((generator uniform-block) input &key binding qualifiers)
(ensure-instance (resource generator T) 'uniform-buffer
:binding binding
:name name
:qualifiers qualifiers
:struct-class (ensure-class input)))
16 changes: 6 additions & 10 deletions resources/buffer-object.lisp
Expand Up @@ -7,18 +7,14 @@
(in-package #:org.shirakumo.fraf.trial)

(defclass buffer-object (gl-resource)
((buffer-type :initarg :buffer-type :accessor buffer-type)
(buffer-data :initarg :buffer-data :accessor buffer-data)
(data-usage :initarg :data-usage :accessor data-usage)
(size :initarg :size :initform NIL :accessor size))
(:default-initargs
:buffer-type (error "BUFFER-TYPE required.")
:data-usage :static-draw
:buffer-data NIL))
((buffer-type :initarg :buffer-type :initform (error "BUFFER-TYPE required.") :accessor buffer-type)
(buffer-data :initarg :buffer-data :initform NIL :accessor buffer-data)
(data-usage :initarg :data-usage :initform :static-draw :accessor data-usage)
(size :initarg :size :initform NIL :accessor size)))

(defmethod initialize-instance :before ((buffer buffer-object) &key buffer-type data-usage)
(check-buffer-object-type buffer-type)
(check-buffer-object-data-usage data-usage))
(when buffer-type (check-buffer-object-type buffer-type))
(when data-usage (check-buffer-object-data-usage data-usage)))

(defmethod print-object ((buffer buffer-object) stream)
(print-unreadable-object (buffer stream :type T :identity T)
Expand Down
7 changes: 3 additions & 4 deletions resources/struct-buffer.lisp
Expand Up @@ -7,10 +7,9 @@
(in-package #:org.shirakumo.fraf.trial)

(defclass struct-buffer (buffer-object)
((struct :accessor struct)
(struct-class :accessor struct-class))
(:default-initargs
:data-usage :stream-draw))
((data-usage :initform :stream-draw)
(struct :accessor struct)
(struct-class :accessor struct-class)))

(defmethod shared-initialize :after ((buffer struct-buffer) slots &key struct-class)
(when struct-class
Expand Down
15 changes: 7 additions & 8 deletions resources/uniform-buffer.lisp
Expand Up @@ -7,15 +7,14 @@
(in-package #:org.shirakumo.fraf.trial)

(defclass uniform-buffer (struct-buffer)
((qualifiers :initarg :qualifiers :accessor qualifiers)
(binding :initarg :binding :accessor binding))
(:default-initargs
:buffer-type :uniform-buffer
:qualifiers ()))
((buffer-type :initform :uniform-buffer)
(qualifiers :initarg :qualifiers :initform () :accessor qualifiers)
(binding :initarg :binding :initform NIL :accessor binding)))

(defmethod initialize-instance :after ((buffer uniform-buffer) &key name binding)
(unless binding
(setf (binding buffer) (cffi:translate-underscore-separated-name name))))
(defmethod shared-initialize :after ((buffer uniform-buffer) slots &key struct-class binding)
(when (or binding (null (binding buffer)))
(setf (binding buffer) (cffi:translate-underscore-separated-name
(class-name (ensure-class struct-class))))))

(defmethod gl-source ((buffer uniform-buffer))
`(glsl-toolkit:shader
Expand Down
4 changes: 2 additions & 2 deletions shader-entity.lisp
Expand Up @@ -148,8 +148,8 @@
(make-instance 'shader-program
:shaders (loop for (type source) on (effective-shaders class) by #'cddr
collect (make-instance 'shader :source source :type type))
:buffers (loop for asset-spec in (effective-buffers class)
collect (apply #'asset asset-spec))))
:buffers (loop for resource-spec in (effective-buffers class)
collect (apply #'// resource-spec))))

(defmethod make-class-shader-program ((class symbol))
(make-class-shader-program (find-class class)))
Expand Down
8 changes: 4 additions & 4 deletions shader-pass.lisp
Expand Up @@ -118,10 +118,10 @@
for inputs = (coerce-pass-shader pass class type)
for shader = (make-instance 'shader :source inputs :type type)
do (when inputs (push shader shaders)))
(loop for asset-spec in (effective-buffers class)
do (push (apply #'asset asset-spec) buffers))
(loop for asset-spec in (effective-buffers pass)
do (pushnew (apply #'asset asset-spec) buffers))
(loop for resource-spec in (effective-buffers class)
do (push (apply #'// resource-spec) buffers))
(loop for resource-spec in (effective-buffers pass)
do (pushnew (apply #'// resource-spec) buffers))
(make-instance 'shader-program
:shaders shaders
:buffers buffers)))
Expand Down

0 comments on commit c319cad

Please sign in to comment.