 
 ; cameras
 
-(defn orthographic-camera
+(defn orthographic-camera*
   []
   (OrthographicCamera.))
+
+(defmacro orthographic-camera
+  [& options]
+  `(let [object# (orthographic-camera*)]
+     (u/calls! ^OrthographicCamera object# ~@options)
+     object#))
 
 (defmacro orthographic-camera!
   [screen k & options]


; tiled maps

(defn tiled-map
  [s]
  (if (string? s)
    (.load (TmxMapLoader.) s)
    s))

(defmacro tiled-map!
  [{:keys [^BatchTiledMapRenderer renderer]} k & options]

(defn perspective-camera
  []
  (PerspectiveCamera.))

(defmacro perspective-camera
  [& options]
  `(let [object# (perspective-camera*)]
     (u/calls! ^PerspectiveCamera object# ~@options)
     object#))

(defmacro perspective-camera!
  [screen k & options]
