Fix gl version retrieval and get glsl version at init
This commit is contained in:
parent
1c1862dd6d
commit
5cc428df88
1 changed files with 11 additions and 8 deletions
|
|
@ -9,6 +9,7 @@
|
||||||
(:use :cl)
|
(:use :cl)
|
||||||
(:export :*major-version*
|
(:export :*major-version*
|
||||||
:*minor-version*
|
:*minor-version*
|
||||||
|
:*glsl-version*
|
||||||
:initialize
|
:initialize
|
||||||
:version-supported-p
|
:version-supported-p
|
||||||
:gl-assert
|
:gl-assert
|
||||||
|
|
@ -18,21 +19,23 @@
|
||||||
|
|
||||||
(defvar *major-version* nil)
|
(defvar *major-version* nil)
|
||||||
(defvar *minor-version* nil)
|
(defvar *minor-version* nil)
|
||||||
|
(defvar *glsl-version* nil)
|
||||||
|
|
||||||
(defun initialize (version)
|
(defun initialize (version)
|
||||||
"Initialize the local opengl configuration.
|
"Initialize the local opengl configuration.
|
||||||
Store values like the drivers version."
|
Store values like the drivers version."
|
||||||
(if (/= version 0)
|
(if (/= version 0)
|
||||||
(progn
|
(multiple-value-bind (maj min) (floor version 10)
|
||||||
(setf *major-version* (mod version 100))
|
(setf *major-version* maj
|
||||||
(setf *minor-version* (/ version 100)))
|
*minor-version* min))
|
||||||
(progn
|
(setf *major-version* (gl:get-integer :major-version)
|
||||||
(setf *major-version* (gl:get-integer :major-version))
|
*minor-version* (gl:get-integer :minor-version)))
|
||||||
(setf *minor-version* (gl:get-integer :minor-version)))))
|
(setf *glsl-version* (gl:get-string :shading-language-version)))
|
||||||
|
|
||||||
(defun version-supported-p (version)
|
(defun version-supported-p (version)
|
||||||
(and (>= (mod version 100) *major-version*)
|
(multiple-value-bind (maj min) (floor version 10)
|
||||||
(>= (/ version 100) *minor-version*)))
|
(and (<= maj *major-version*)
|
||||||
|
(<= min *minor-version*))))
|
||||||
|
|
||||||
(defmacro gl-assert (form)
|
(defmacro gl-assert (form)
|
||||||
`(prog1
|
`(prog1
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue