;;;; examples/10-canvas.lisp (defpackage #:ww.examples/10 (:use #:cl) (:export #:start) (:import-from #:defclass-std #:defclass/std)) (in-package #:ww.examples/10) ;;; CLASSES (defclass/std canvas-example (ww::application) ()) (defmethod ww::boot ((app canvas-example)) "Adds the intro text and sets up the start button handler." (let ((c (make-instance 'ww::canvas :x 100 :y 100 :pixel-height 100 :pixel-width 100))) (ww::with-pixels-rect (x y r g b a) (c) (setf r (- 255 x) g (- 255 y) b (+ x y))) (ww::blit c) ;(ww:scale-by c 100) (ww:add-unit app c))) (defun start (&optional (scale 1.0)) (ww::start (make-instance 'canvas-example :fps 30 :width (round (* 800 scale)) :height (round (* 600 scale)) :scale scale :refocus-on-mousedown-p nil :title "canvas demo" :asset-root (merge-pathnames "examples/" (asdf:system-source-directory :wheelwork)))))