render: model: Move expressions after definitions to fix Guile 2.2 compatibility.
authorDavid Thompson <dthompson2@worcester.edu>
Sun, 3 Nov 2019 15:55:22 +0000 (10:55 -0500)
committerDavid Thompson <dthompson2@worcester.edu>
Sun, 3 Nov 2019 15:55:22 +0000 (10:55 -0500)
chickadee/render/model.scm

index 9f29240..56f5c39 100644 (file)
                       (loop a c rest #t))))))
             (_
              (parse-error "invalid face" args))))
-        ;; Register default material
-        (hash-set! material-map "default" default-phong-material)
-        ;; Parse file.
-        (let loop ((material "default"))
-          (match (read-line port)
-            ((? eof-object?)
-             #f)
-            (line
-             (match (delete "" (string-split line char-set:whitespace))
-               ((or () ("#" . _)) ; ignore comments and blank lines
-                (loop material))
-               (("f" . args)
-                (parse-face args material)
-                (loop material))
-               (("g" . _) ; ignore group name for now
-                (loop material))
-               (("mtllib" mtl-file-name)
-                (load-mtl (scope-file mtl-file-name))
-                (loop material))
-               (("o" . _) ;ignore object name for now
-                (loop material))
-               (("s" . _) ; ignore smoothing group for now
-                (loop material))
-               (("usemtl" new-material)
-                (loop new-material))
-               (("v" . args)
-                (parse-vertex args)
-                (loop material))
-               (("vn" . args)
-                (parse-normal args)
-                (loop material))
-               (("vt" . args)
-                (parse-texcoord args)
-                (loop material))
-               (data
-                (format (current-error-port)
-                        "warning: ~a:~d: unsupported OBJ data: ~s~%"
-                        file-name
-                        (port-line port)
-                        data)
-                (loop material))))))
         ;; Build a vertex array for all the faces of a single
         ;; material.
         ;;
                                               (2 . ,normal-view)))
                               (or (hash-ref material-map material)
                                   (hash-ref material-map "default"))))))
+        ;; Register default material
+        (hash-set! material-map "default" default-phong-material)
+        ;; Parse file.
+        (let loop ((material "default"))
+          (match (read-line port)
+            ((? eof-object?)
+             #f)
+            (line
+             (match (delete "" (string-split line char-set:whitespace))
+               ((or () ("#" . _)) ; ignore comments and blank lines
+                (loop material))
+               (("f" . args)
+                (parse-face args material)
+                (loop material))
+               (("g" . _) ; ignore group name for now
+                (loop material))
+               (("mtllib" mtl-file-name)
+                (load-mtl (scope-file mtl-file-name))
+                (loop material))
+               (("o" . _) ;ignore object name for now
+                (loop material))
+               (("s" . _) ; ignore smoothing group for now
+                (loop material))
+               (("usemtl" new-material)
+                (loop new-material))
+               (("v" . args)
+                (parse-vertex args)
+                (loop material))
+               (("vn" . args)
+                (parse-normal args)
+                (loop material))
+               (("vt" . args)
+                (parse-texcoord args)
+                (loop material))
+               (data
+                (format (current-error-port)
+                        "warning: ~a:~d: unsupported OBJ data: ~s~%"
+                        file-name
+                        (port-line port)
+                        data)
+                (loop material))))))
         ;; Construct a mesh by composing primitives.  One primitive
         ;; per material.
         (let* ((model-name (basename file-name))