mostly finished rewritting draw to be mode objecty and fixed FPS counter
This commit is contained in:
parent
2476661e62
commit
179fc3246a
|
@ -27,7 +27,7 @@
|
|||
((model :initarg :model :accessor model :initform (make-instance 'model))
|
||||
(coords :initarg :coords :accessor coords :initform (make-array 3 :initial-contents '(0 0 0)))
|
||||
(angle :initarg :angle :accessor angle :initform 0)
|
||||
(r-vertex :initarg :r-vertex :accessor r-vertex :initform (make-array 3 :initial-contents '(0 0 0)))))
|
||||
(r-vector :initarg :r-vector :accessor r-vector :initform (make-array 3 :initial-contents '(0 0 0)))))
|
||||
|
||||
|
||||
(defparameter *diamond-model*
|
||||
|
@ -42,7 +42,7 @@
|
|||
:coords (make-array 3 :initial-contents
|
||||
'(0 0 -3))
|
||||
:angle 0
|
||||
:r-vertex (make-array 3 :initial-contents '(0 1 0))))
|
||||
:r-vector (make-array 3 :initial-contents '(0 1 0))))
|
||||
|
||||
(defparameter *origin* (make-array 3 :initial-contents '(0 2 7)))
|
||||
(defparameter *orientation* (make-array 3 :initial-contents '(0 1 0)))
|
||||
|
@ -160,9 +160,10 @@
|
|||
(gl:clear :color-buffer-bit)
|
||||
;;; draw a triangle
|
||||
(setf (coords *diamond*) (rotate* (make-rotation-matrix 0 (- (wall-time) *last-time*) 0) (coords *diamond*)))
|
||||
(incf (angle *diamond*) (* 120 time))
|
||||
(gl:push-matrix)
|
||||
(gl:translate (aref (coords *diamond*) 0) (aref (coords *diamond*) 1) (aref (coords *diamond*) 2))
|
||||
(gl:rotate (* 100 time) 0 1 0)
|
||||
(gl:rotate (angle *diamond*) (aref (r-vector *diamond*) 0) (aref (r-vector *diamond*) 1) (aref (r-vector *diamond*) 2))
|
||||
(loop for face-list across (faces (model *diamond*)) do
|
||||
(draw-triangle (get-vertecies face-list) time))
|
||||
(gl:pop-matrix)
|
||||
|
@ -181,12 +182,12 @@
|
|||
|
||||
(incf *num-frames*)
|
||||
(if (not (eql (floor *last-time*) (floor time)))
|
||||
(let* ((short-interval (- time *last-time* ))
|
||||
(long-interval time)
|
||||
(let* ((short-interval time)
|
||||
(long-interval (- start-time *start-time*) )
|
||||
(short-fps (floor (if (zerop short-interval) 0 (/ 1 short-interval))))
|
||||
(long-fps (floor (if (zerop long-interval) 0 (/ *num-frames* long-interval)))))
|
||||
|
||||
(format t "FPS since last:~a since start:~a~%" short-fps long-fps)))
|
||||
(format t "FPS since last:~a since start:~a (~a frames in ~a seconds)~%" short-fps long-fps *num-frames* long-interval)))
|
||||
|
||||
(setf *last-time* start-time)))
|
||||
|
||||
|
@ -239,4 +240,5 @@
|
|||
;; (something similar might help in some other lisps, not sure which though)
|
||||
#+(and sbcl (not sb-thread)) (restartable
|
||||
(sb-sys:serve-all-events 0))
|
||||
(restartable (draw))))))
|
||||
(restartable (draw))))))
|
||||
;(draw)))))
|
Loading…
Reference in New Issue