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
|
||||
(:nicknames :render)
|
||||
(:use :cl
|
||||
:utils))
|
||||
:utils)
|
||||
(:export :poll-events))
|
||||
(in-package :stoe.render)
|
||||
|
||||
(defvar *window* nil)
|
||||
|
|
@ -43,7 +44,6 @@ Destroy the opengl context and the related resources."
|
|||
"Update the render module.
|
||||
Render a frame and swap buffers."
|
||||
(declare (ignore delta-time))
|
||||
(glop:dispatch-events *window* :blocking nil :on-foo nil)
|
||||
(gl:clear-color 0.0 0 0 0)
|
||||
(gl:clear-depth 1.0)
|
||||
(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-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)
|
||||
(declare (ignore window event)))
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ continue unless `unprotected' is t."
|
|||
do (restartable unprotected
|
||||
(update-current-time)
|
||||
(update-clock clock (get-delta-time))
|
||||
(modules:update (clock-delta clock))
|
||||
(sleep 0.01)))))
|
||||
(render:poll-events)
|
||||
(modules:update (clock-delta clock))))))
|
||||
|
||||
(defun quit ()
|
||||
"Quit the main loop."
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue