Properly parse numbers from the command line or in version strings
This commit is contained in:
parent
7ba21e011c
commit
fa14b3dae4
4 changed files with 13 additions and 9 deletions
|
|
@ -57,7 +57,7 @@
|
|||
(defun initialize (&optional argv)
|
||||
"Initialize the jobs module."
|
||||
(format t "Initialize Job system~%")
|
||||
(let ((thread-count (get-command-line-option-int argv "-j" 1)))
|
||||
(let ((thread-count (get-command-line-option-number argv "-j" 1)))
|
||||
(when (> thread-count 0)
|
||||
(setf *thread-list*
|
||||
(make-array (list thread-count) :initial-contents
|
||||
|
|
|
|||
|
|
@ -30,7 +30,8 @@ Store values like the drivers version."
|
|||
*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)))
|
||||
(setf *glsl-version* (with-input-from-string (in (gl:get-string :shading-language-version))
|
||||
(read in))))
|
||||
|
||||
(defun version-supported-p (version)
|
||||
(multiple-value-bind (maj min) (floor version 10)
|
||||
|
|
|
|||
|
|
@ -37,9 +37,9 @@
|
|||
Create an opengl context attached to a window and initialize the shader system."
|
||||
(format t "Initialize Render module~%")
|
||||
(let ((title (get-command-line-option argv "--title" "Stoe"))
|
||||
(width (get-command-line-option-int argv "--width" 800))
|
||||
(height (get-command-line-option-int argv "--height" 600))
|
||||
(version (get-command-line-option-int argv "--opengl")))
|
||||
(width (get-command-line-option-number argv "--width" 800))
|
||||
(height (get-command-line-option-number argv "--height" 600))
|
||||
(version (get-command-line-option-number argv "--opengl")))
|
||||
(if version
|
||||
(progn
|
||||
(gl-utils:initialize version)
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
:make-clock :clock-time :clock-delta
|
||||
:update-clock :compare-clocks
|
||||
:get-command-line-option
|
||||
:get-command-line-option-int))
|
||||
:get-command-line-option-number))
|
||||
(in-package :stoe.utils)
|
||||
|
||||
(declaim (optimize (debug 3) (safety 3) (speed 0)))
|
||||
|
|
@ -154,9 +154,12 @@
|
|||
(let ((opt (member optname argv :test #'equal)))
|
||||
(or opt default)))
|
||||
|
||||
(defun get-command-line-option-int (argv optname &optional default)
|
||||
"Return the option designated by `optname' from the command-line `argv'."
|
||||
(defun get-command-line-option-number (argv optname &optional default)
|
||||
"Return the option designated by `optname' from the command-line `argv' as a number."
|
||||
(let ((opt (get-command-line-option argv optname)))
|
||||
(if opt
|
||||
(parse-integer opt)
|
||||
(let ((value (with-input-from-string (in opt)
|
||||
(read in))))
|
||||
(assert (numberp value))
|
||||
value)
|
||||
default)))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue