Add a poll-events function to be used in the main-loop

This commit is contained in:
Renaud Casenave-Péré 2014-10-22 10:36:59 +09:00
parent cd62df4c63
commit 891643c414
2 changed files with 10 additions and 4 deletions

View file

@ -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)))

View file

@ -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."