;;;; protocol.lisp (in-package #:wheelwork) (defgeneric boot (app) (:documentation "Specialized for each subclass of APPLICATION. Responsble for setting the app up once the system resoruces are avaialble.")) (defgeneric shutdown (app) (:documentation "Specialzied for each subclass of APPLICATION. Called just before cleanup.") (:method ((any t)) nil)) (defgeneric cleanup (thing) (:documentation "Clean up applications, textures, and other foreign resources. Called after shutodown.") (:method ((any t)) nil)) (defgeneric drop-unit (unit) (:documentation "Removes a unit from a container.")) (defgeneric add-unit (container unit) (:documentation "Adds a unit to a container, removing it from its current container first, if necessary.")) (defgeneric unit-width (unit)) (defgeneric unit-height (unit)) (defgeneric (setf unit-width) (newval unit)) (defgeneric (setf unit-height) (newval unit)) (defgeneric render (thing) (:documentation "Renders thing for visual display.")) (defgeneric model-matrix (thing) (:documentation "Returns the model matrix for THING, representing its position, scale, and orientation in the scene")) (defgeneric ensure-loaded (asset) (:documentation "Ensures that the asset is loaded into memory and ready for use. Returns the asset."))