Fix gl version retrieval and get glsl version at init

This commit is contained in:
Renaud Casenave-Péré 2015-04-04 23:32:34 +02:00
parent 1c1862dd6d
commit 5cc428df88

View file

@ -9,6 +9,7 @@
(:use :cl)
(:export :*major-version*
:*minor-version*
:*glsl-version*
:initialize
:version-supported-p
:gl-assert
@ -18,21 +19,23 @@
(defvar *major-version* nil)
(defvar *minor-version* nil)
(defvar *glsl-version* nil)
(defun initialize (version)
"Initialize the local opengl configuration.
Store values like the drivers version."
(if (/= version 0)
(progn
(setf *major-version* (mod version 100))
(setf *minor-version* (/ version 100)))
(progn
(setf *major-version* (gl:get-integer :major-version))
(setf *minor-version* (gl:get-integer :minor-version)))))
(multiple-value-bind (maj min) (floor version 10)
(setf *major-version* maj
*minor-version* min))
(setf *major-version* (gl:get-integer :major-version)
*minor-version* (gl:get-integer :minor-version)))
(setf *glsl-version* (gl:get-string :shading-language-version)))
(defun version-supported-p (version)
(and (>= (mod version 100) *major-version*)
(>= (/ version 100) *minor-version*)))
(multiple-value-bind (maj min) (floor version 10)
(and (<= maj *major-version*)
(<= min *minor-version*))))
(defmacro gl-assert (form)
`(prog1