diff --git a/src/jobs.lisp b/src/jobs.lisp index ace8f76..2e0f2c4 100644 --- a/src/jobs.lisp +++ b/src/jobs.lisp @@ -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 diff --git a/src/render/gl-utils.lisp b/src/render/gl-utils.lisp index f58cca4..12ccfdd 100644 --- a/src/render/gl-utils.lisp +++ b/src/render/gl-utils.lisp @@ -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) diff --git a/src/render/render.lisp b/src/render/render.lisp index e6e5afa..8c36423 100644 --- a/src/render/render.lisp +++ b/src/render/render.lisp @@ -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) diff --git a/src/utils.lisp b/src/utils.lisp index 2a1a702..089ebb3 100644 --- a/src/utils.lisp +++ b/src/utils.lisp @@ -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)))