Add a way to check if opengl is initialized or not

This commit is contained in:
Renaud Casenave-Péré 2015-05-03 23:35:40 +02:00
parent fa14b3dae4
commit 7a8f3117ed
2 changed files with 22 additions and 11 deletions

View file

@ -10,7 +10,9 @@
(:export :*major-version* (:export :*major-version*
:*minor-version* :*minor-version*
:*glsl-version* :*glsl-version*
:gl-initialized-p
:initialize :initialize
:finalize
:version-supported-p :version-supported-p
:gl-assert :gl-assert
:gl-restart :gl-restart
@ -21,17 +23,25 @@
(defvar *minor-version* nil) (defvar *minor-version* nil)
(defvar *glsl-version* nil) (defvar *glsl-version* nil)
(defun initialize (version) (let ((initializedp))
"Initialize the local opengl configuration. (defun gl-initialized-p ()
initializedp)
(defun initialize (version)
"Initialize the local opengl configuration.
Store values like the drivers version." Store values like the drivers version."
(if (/= version 0) (if (/= version 0)
(multiple-value-bind (maj min) (floor version 10) (multiple-value-bind (maj min) (floor version 10)
(setf *major-version* maj (setf *major-version* maj
*minor-version* min)) *minor-version* min))
(setf *major-version* (gl:get-integer :major-version) (setf *major-version* (gl:get-integer :major-version)
*minor-version* (gl:get-integer :minor-version))) *minor-version* (gl:get-integer :minor-version)))
(setf *glsl-version* (with-input-from-string (in (gl:get-string :shading-language-version)) (setf *glsl-version* (with-input-from-string (in (gl:get-string :shading-language-version))
(read in)))) (read in)))
(setf initializedp t))
(defun finalize ()
(setf initializedp nil)))
(defun version-supported-p (version) (defun version-supported-p (version)
(multiple-value-bind (maj min) (floor version 10) (multiple-value-bind (maj min) (floor version 10)

View file

@ -58,7 +58,8 @@ Destroy the opengl context and the related resources."
(format t "Finalize Render module~%") (format t "Finalize Render module~%")
(shader:destroy-all-shaders) (shader:destroy-all-shaders)
(glop:destroy-window *window*) (glop:destroy-window *window*)
(setf *window* nil)) (setf *window* nil)
(gl-utils:finalize))
(defun update (delta-time) (defun update (delta-time)
"Update the render module. "Update the render module.