Add a poll-events function to be used in the main-loop
This commit is contained in:
parent
cd62df4c63
commit
891643c414
2 changed files with 10 additions and 4 deletions
|
|
@ -7,7 +7,8 @@
|
||||||
(defpackage stoe.render
|
(defpackage stoe.render
|
||||||
(:nicknames :render)
|
(:nicknames :render)
|
||||||
(:use :cl
|
(:use :cl
|
||||||
:utils))
|
:utils)
|
||||||
|
(:export :poll-events))
|
||||||
(in-package :stoe.render)
|
(in-package :stoe.render)
|
||||||
|
|
||||||
(defvar *window* nil)
|
(defvar *window* nil)
|
||||||
|
|
@ -43,7 +44,6 @@ Destroy the opengl context and the related resources."
|
||||||
"Update the render module.
|
"Update the render module.
|
||||||
Render a frame and swap buffers."
|
Render a frame and swap buffers."
|
||||||
(declare (ignore delta-time))
|
(declare (ignore delta-time))
|
||||||
(glop:dispatch-events *window* :blocking nil :on-foo nil)
|
|
||||||
(gl:clear-color 0.0 0 0 0)
|
(gl:clear-color 0.0 0 0 0)
|
||||||
(gl:clear-depth 1.0)
|
(gl:clear-depth 1.0)
|
||||||
(gl:clear :color-buffer-bit :depth-buffer-bit)
|
(gl:clear :color-buffer-bit :depth-buffer-bit)
|
||||||
|
|
@ -53,5 +53,11 @@ Render a frame and swap buffers."
|
||||||
(modules:register-finalize-fun #'finalize)
|
(modules:register-finalize-fun #'finalize)
|
||||||
(modules:register-update-fun #'update)
|
(modules:register-update-fun #'update)
|
||||||
|
|
||||||
|
(defun poll-events ()
|
||||||
|
"Poll events from the window manager.
|
||||||
|
This needs to be called once per frame, at the beginning of the loop."
|
||||||
|
(when *window*
|
||||||
|
(glop:dispatch-events *window* :blocking nil :on-foo nil)))
|
||||||
|
|
||||||
(defmethod glop:on-event (window event)
|
(defmethod glop:on-event (window event)
|
||||||
(declare (ignore window event)))
|
(declare (ignore window event)))
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,8 @@ continue unless `unprotected' is t."
|
||||||
do (restartable unprotected
|
do (restartable unprotected
|
||||||
(update-current-time)
|
(update-current-time)
|
||||||
(update-clock clock (get-delta-time))
|
(update-clock clock (get-delta-time))
|
||||||
(modules:update (clock-delta clock))
|
(render:poll-events)
|
||||||
(sleep 0.01)))))
|
(modules:update (clock-delta clock))))))
|
||||||
|
|
||||||
(defun quit ()
|
(defun quit ()
|
||||||
"Quit the main loop."
|
"Quit the main loop."
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue