diff options
Diffstat (limited to '2d')
-rw-r--r-- | 2d/sprite.scm | 42 | ||||
-rw-r--r-- | 2d/texture.scm | 2 |
2 files changed, 30 insertions, 14 deletions
diff --git a/2d/sprite.scm b/2d/sprite.scm index d25a535..7e322a0 100644 --- a/2d/sprite.scm +++ b/2d/sprite.scm @@ -159,7 +159,15 @@ (define* (make-sprite drawable #:optional #:key (position (vector2 0 0)) (scale (vector2 1 1)) (rotation 0) (color white) (anchor 'center)) - "Makes a new sprite object." + "Create a new sprite object. DRAWABLE is either a texture or +animation object. All keyword arguments are optional. POSITION is a +vector2 object with a default of (0, 0). SCALE is a vector2 object +that describes how much DRAWABLE should be strected on the x and y +axes, with a default of 1x scale. ROTATION is an angle in degrees with +a default of 0. COLOR is a color object with a default of +white. ANCHOR is either a vector2 that represents the center point of +the sprite, or 'center which will place the anchor at the center of +DRAWABLE. Sprites are centered by default." (let ((vertices (make-packed-array sprite-vertex 4)) (animator (if (animation? drawable) (make-animator drawable) @@ -184,7 +192,8 @@ operation that requires a refresh of the vertex array should use this macro." (define* (load-sprite filename #:optional #:key (position (vector2 0 0)) (scale (vector2 1 1)) (rotation 0) (color white) (anchor 'center)) - "Loads a sprite from file." + "Load a sprite from the file at FILENAME. See make-sprite for +optional keyword arguments." (make-sprite (load-texture filename) #:position position #:scale scale #:rotation rotation #:color color #:anchor anchor)) @@ -196,7 +205,7 @@ operation that requires a refresh of the vertex array should use this macro." (animator-texture (sprite-animator sprite))) (define (sprite-texture sprite) - "Returns the texture for the sprite's drawable object." + "Return the texture for the SPRITE's drawable object." (let ((drawable (sprite-drawable sprite))) (cond ((texture? drawable) drawable) @@ -204,7 +213,7 @@ operation that requires a refresh of the vertex array should use this macro." (sprite-animation-texture sprite))))) (define (sprite-anchor-vector sprite) - "Returns a vector of the coordinates for the center point of a + "Return a vector2 of the coordinates for the center point of a sprite." (let ((anchor (sprite-anchor sprite)) (texture (sprite-texture sprite))) @@ -215,7 +224,7 @@ sprite." (else anchor)))) (define (update-sprite-vertices! sprite) - "Rebuilds the internal vertex array." + "Rebuild the internal vertex array." (let ((pos (sprite-position sprite)) (scale (sprite-scale sprite)) (anchor (sprite-anchor-vector sprite)) @@ -241,8 +250,8 @@ sprite." (animator-update! (sprite-animator sprite))) (define (draw-sprite sprite) - "Renders a sprite. A sprite batch will be used if one is currently -bound." + "Render SPRITE to the screen. A sprite batch will be used if one is +currently bound." (when (sprite-dirty? sprite) (update-sprite-vertices! sprite)) (register-animated-sprite-maybe sprite) @@ -253,7 +262,7 @@ bound." 1))) (define (draw-sprite-batched sprite) - "Adds a sprite to the batch." + "Add SPRITE to the current sprite batch batch." (let ((texture (sprite-texture sprite)) (pos (sprite-position sprite)) (scale (sprite-scale sprite)) @@ -339,12 +348,18 @@ bound." (%make-sprite-batch max-size 0 #f vertex-array))) (define (sprite-batch-draw . args) - "Adds a textured quad to the current sprite batch." + "Add a textured quad to the current sprite batch. X, Y, WIDTH, and +HEIGHT represent the quad in pixels. ORIGIN-X and ORIGIN-Y represent +the center point of the quad which is used for rotation. SCALE-X and +SCALE-Y are the scaling factors for the x and y axis, +respectively. ROTATION is the angle in degrees to rotate the quad. U, +V, U2, and V2 represent the texture coordinate region to texture the +quad with. COLOR is a color object." (apply %sprite-batch-draw *sprite-batch* args)) (define* (%sprite-batch-draw batch texture x y width height origin-x origin-y scale-x scale-y rotation u v u2 v2 color) - "Adds a textured quad to the sprite batch." + "Add a textured quad to the sprite batch." ;; Render the batch when it's full or the texture changes. (cond ((= (sprite-batch-size batch) (sprite-batch-max-size batch)) (sprite-batch-render batch)) @@ -361,13 +376,14 @@ bound." (set-sprite-batch-size! batch (1+ (sprite-batch-size batch)))) (define (sprite-batch-switch-texture batch texture) - "Change the currently bound texture. This requires flushing the -batched texture vertices first." + "Change the currently bound texture for BATCH to TEXTURE. This +requires flushing the batched texture vertices first." (sprite-batch-render batch) (set-sprite-batch-texture! batch texture)) (define (sprite-batch-render batch) - "Renders and flushes the currently batched texture vertices." + "Render and flushes the currently batched texture vertices within +BATCH." (unless (= (sprite-batch-size batch) 0) (draw-sprite-vertices (sprite-batch-texture batch) (sprite-batch-vertices batch) diff --git a/2d/texture.scm b/2d/texture.scm index 7d0f7bd..ee0490c 100644 --- a/2d/texture.scm +++ b/2d/texture.scm @@ -159,7 +159,7 @@ that will be rendered, in pixels." texture)) (define* (draw-texture texture x y #:optional (color #xffffffff)) - "Renders a textured quad in GL immediate mode." + "Render a textured quad in GL immediate mode." (let* ((x2 (+ x (texture-width texture))) (y2 (+ y (texture-height texture))) (color (rgba->gl-color color)) |