summaryrefslogtreecommitdiff
path: root/doc/api/rendering.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/api/rendering.texi')
-rw-r--r--doc/api/rendering.texi57
1 files changed, 44 insertions, 13 deletions
diff --git a/doc/api/rendering.texi b/doc/api/rendering.texi
index 364d09c..236863d 100644
--- a/doc/api/rendering.texi
+++ b/doc/api/rendering.texi
@@ -1,8 +1,14 @@
@node Rendering
@section Rendering
+Keeping with the theme of declarative and functional code, Sly's
+rendering module provide a purely functional interface to the
+imperative world of OpenGL. An abstraction on top of OpenGL known as
+``render combinators'' provide a convenient way to describe and
+compose rendering pipelines.
+
@menu
-* Scene Graph:: Declarative rendering.
+* Render Combinators:: Purely functional rendering API.
* Sprites:: 2D textured rectangles.
* Textures:: Pixel arrays.
* Fonts:: Font loading and text rendering.
@@ -10,25 +16,47 @@
* Cameras:: Defining a viewpoint.
* Colors:: Pretty colors.
* Framebuffers:: Offscreen rendering.
+* Shaders:: Programs that run on the GPU.
@end menu
-@node Scene Graph
-@subsection Scene Graph
-
-@menu
-* Models:: Renderable objects.
-* Groups:: Transformation hierarchy.
-@end menu
-
-@node Models
-@subsubsection Models
+@node Render Combinators
+@subsection Render Combinators
-@node Groups
-@subsubsection Groups
+Render combinators provide a purely functional interface to the OpenGL
+state machine.
@node Sprites
@subsection Sprites
+@deffn {Scheme Procedure} make-sprite @var{texture} [#:anchor]
+Create a sprite that displays the image in @var{texture}. The size of
+the mesh is the size of @var{texture} in pixels. @var{anchor} defines
+the origin of the sprite. By default, the anchor is @code{center},
+which puts the origin in the middle of the sprite. See
+'anchor-texture' for more anchoring options.
+@end deffn
+
+@deffn {Scheme Procedure} load-sprite @var{file} [#:anchor]
+Create a sprite from the texture in @var{file} whose origin is defined
+by @var{anchor}. The default anchor is @code{center}.
+@end deffn
+
+@deffn {Scheme Syntax} sprite? @var{obj}
+Return @code{#t} if @var{obj} is a sprite.
+@end deffn
+
+@deffn {Scheme Syntax} sprite-texture @var{sprite}
+Return the texture for @var{sprite}.
+@end deffn
+
+@deffn {Scheme Syntax} sprite-mesh @var{mesh}
+Return the mesh for @var{sprite}.
+@end deffn
+
+@deffn {Scheme Procedure} render-sprite @var{sprite}
+Create a renderer for @var{sprite}.
+@end deffn
+
@node Textures
@subsection Textures
@@ -46,3 +74,6 @@
@node Framebuffers
@subsection Framebuffers
+
+@node Shaders
+@subsection Shaders