Advertisement
Guest User

Untitled

a guest
Apr 26th, 2015
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. (in-package :cepl)
  2.  
  3. (defparameter *array* nil)
  4. (defparameter *stream* nil)
  5. (defparameter *running* nil)
  6.  
  7. (defstruct-g pos-col ()
  8. (position :vec3 :accessor pos)
  9. (color :vec4 :accessor col))
  10.  
  11. (defun-g vert ((vert pos-col))
  12. (values (v! (pos vert) 1.0)
  13. (:smooth (col vert))))
  14.  
  15. (defun-g frag ((color :vec4))
  16. color)
  17.  
  18. (defpipeline prog-1 (g-> vert frag))
  19.  
  20. (defun step-demo ()
  21. (evt:pump-events)
  22. (update-swank)
  23. (gl:clear :color-buffer-bit)
  24. (gmap #'prog-1 *stream*)
  25. (cgl:update-display))
  26.  
  27. (defun run-demo ()
  28. (setf *running* t
  29. *array* (make-gpu-array (list (list (v! 0.5 -0.36 0) (v! 0 1 0 1))
  30. (list (v! 0 0.5 0) (v! 1 0 0 1))
  31. (list (v! -0.5 -0.36 0) (v! 0 0 1 1)))
  32. :element-type 'pos-col)
  33. *stream* (make-vertex-stream *array*))
  34. (loop :while *running* :do (continuable (step-demo))))
  35.  
  36. (defun stop-demo ()
  37. (setf *running* nil))
  38.  
  39. (evt:observe (evt:|sys|)
  40. (when (typep e 'evt:will-quit) (stop-demo)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement