+(define-macro (define-primitive header . body)
+ `(define ,(car header) (primitive ,header ,@body)))
+
+
+;;; Primitives definition
+
+(define-primitive (square size #:key texture)
+ (draw-square size #:texture texture))
+
+(define-primitive (rectangle width height #:key texture texture-coord)
+ (draw-rectangle width height #:texture texture #:texture-coord texture-coord))
+
+(define-primitive (circle radius)
+ (draw-circle radius))
+
+(define-primitive (picture filename #:key (min-filter GL_LINEAR) (mag-filter GL_LINEAR) (zoom 1) (sprite '((0 0) (1 1))))
+ (draw-texture (load-texture filename #:min-filter min-filter #:mag-filter mag-filter) #:zoom zoom #:sprite sprite))
+