Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the clinch Reference Manual, version 0.5, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 11:31:47 2018 GMT+0.
• Introduction: | What clinch is all about | |
• Systems: | The systems documentation | |
• Files: | The files documentation | |
• Packages: | The packages documentation | |
• Definitions: | The symbols documentation | |
• Indexes: | Concepts, functions, variables and data types |
Clinch is a simple, yet powerful 3d game engine for Lisp.
Clinch is a usable but still under development. It will become a stable and fast workhorse tool for developing games, visualizations and productivity software. I have plans for a graphical shell which incorporates the strengths of Lisp, 3D, shaders, 2d vector graphics, richtext support, 3d physics and much more.
Modern OpenGL features such as shaders and GPU buffers. [Done]
Commercial grade windowing, controller, force-feedback, sound, music and more thorough SDL2. [Done]
Create and inspect OpenGL objects on the fly. [Done]
Live code in a multithreaded environment. [Done]
Load plug-ins for more functionality. [Done]
3d physics with joints and motors using the ODE physics engine. [Done]
Texture loading and saving with FreeImage. [Done]
Integration with 2D vector graphics with Cairo. [Done]
Integration with fonts and text positioning with Pango. [Done]
3D asset importing using ClassImp. [Current Development]
Animate textures. [Done]
Animate 3D objects. [Current Development]
2D physics [Experimental]
3D GUI [Current Development]
Clinch should be as fast or faster than most script-based graphics engines and require less development time. While it may never rival professional libraries and engines, the ability to modify the 3D engine and environment from the REPL allows skilled developers to create applications in a fast, intuitive and flexible way.
Clinch should be as simple as possible for someone familiar with 3D graphics programming to understand. I still remember how easy it was to write a single pixel to the screen in DOS and while I can't simplify to that degree (without losing modern power and flexibility), I can remove many of the most common difficulties. These include texture and vertex buffers, shader compiling and linking, shader variable passing, drawing text and 2D graphics, 3D transformations, etc.
Time spent looking for solutions is spent time, period. It ruins developer flow and can stop a project (especially a small one) indefinitely. Clinch should have few basic primitives which solve the general cases well and allow for easy replacements when necessary. It should be well documented and have a consistent interface. I will strive to keep abstraction leaks at a minimum.
Clinch does not try to wrap other libraries inside the Clinch namespace. This keeps developers from "relearning" the same functionality.
Clinch does not inflict any particular design onto its client applications. It can be easily modified to create a specific engine. It uses plugins to minimize it's own overhead.
Although Clinch can be used as a complete engine, most parts of Clinch are independent. You can use objects by themselves as best suits your application. For example, you can use a buffer object by itself. This also helps with testing by isolating the various parts of Clinch. The following is in hierarchical order based on the default configuration. This is to explain it as clearly as possible, not to indicate a necessary design.
A transform is a 4x4 matrix which is used to hold and apply a C array of 16 floating values. CL-game-math is used as the default linear algebra library and its arrays may be passed to the shader. There are funcions for creating various projection matrices. Math functions are supplied through the rtg-math package.
Nodes are usually the topmost objects in the hierarchy. Nodes abstract 3D transform "chains" and hierarchy. Nodes encapulate transforms and can be scaled, rotated, and translated. They also may have children. Nodes are multiplied together in a hierarchy to create the current transforms which is passes to its children. A node can be used in multiple places within a hierarchy (or tree) or even in several different ones. This is done by passing a list of parents to the update function. It will then append itself and call update on its children. In this way, the transform are only calculated when they or their parent(s) have changed.
Buffers abstract the shared data on the graphics card. They can carry almost any data to the graphics card in bulk, including vertexes, normals, and texture coordinates. Buffers are usually sent to a shader through the entity object. A buffer's data can be accessed directly by using the map/unmap or pullg/pushg functions.
Textures abstract the 2D textures and allow easy access to their raw data. Textures can be loaded from files, drawn on with vector graphics or used as render targets. A texture's data can be accessed directly by using the map/unmap or pullg/pushg functions.
They use Pixel Buffer Object to make texture reading and writing faster. It's a separate buffer object which can send and/or receive data from a texture. It's a separate buffer so it can be used for several similar textures.
Shaders are the compiled output from text-based source code. Clinch supports vertex, fragment and geometry shaders.
Shader programs are complete, usable GPU programs. They take input and output to a texture (by default the screen). Shader-programs require a vertex and fragment shader and may also include a geometry shader. They require a list of uniform and attribute arguments.
Entities are the rendered meshes. They bring together the shader-program, buffers, textures, attributes, uniforms and transforms together into something which can be rendered on the screen. A shader and an index buffer are required although they would be useless without at least one vertex buffer.
An application can have several viewports. As Clinch does not force any particular windowing implementation, it can not have a window class. Once your window is set up, however, you can use the viewport handle for drawing an area on screen.
Frame buffer objects allows OpenGL to render to a texture or textures instead of a screen. The my also have a depth and/or stencle buffer.
Clinch creates the window for you to make things easier. By default it's launched in a separate thread.
Next: Files, Previous: Introduction, Up: Top [Contents][Index]
The main system appears first, followed by any subsystem dependency.
• The clinch system: |
Brad Beer (WarWeasle)
MIT
An OpenGL Game Engine.
0.5
clinch.asd (file)
Files are sorted by type and then listed depth-first from the systems components trees.
• Lisp files: |
Next: The clinch/package<dot>lisp file, Previous: Lisp files, Up: Lisp files [Contents][Index]
clinch.asd
clinch (system)
Next: The clinch/threads<dot>lisp file, Previous: The clinch<dot>asd file, Up: Lisp files [Contents][Index]
Next: The clinch/clinch<dot>lisp file, Previous: The clinch/package<dot>lisp file, Up: Lisp files [Contents][Index]
package.lisp (file)
clinch (system)
threads.lisp
Next: The clinch/transform<dot>lisp file, Previous: The clinch/threads<dot>lisp file, Up: Lisp files [Contents][Index]
threads.lisp (file)
clinch (system)
clinch.lisp
Next: The clinch/node<dot>lisp file, Previous: The clinch/clinch<dot>lisp file, Up: Lisp files [Contents][Index]
clinch.lisp (file)
clinch (system)
transform.lisp
Next: The clinch/shaders<dot>lisp file, Previous: The clinch/transform<dot>lisp file, Up: Lisp files [Contents][Index]
transform.lisp (file)
clinch (system)
node.lisp
Next: The clinch/shader-program<dot>lisp file, Previous: The clinch/node<dot>lisp file, Up: Lisp files [Contents][Index]
node.lisp (file)
clinch (system)
shaders.lisp
Next: The clinch/default-shaders<dot>lisp file, Previous: The clinch/shaders<dot>lisp file, Up: Lisp files [Contents][Index]
shaders.lisp (file)
clinch (system)
shader-program.lisp
Next: The clinch/buffer<dot>lisp file, Previous: The clinch/shader-program<dot>lisp file, Up: Lisp files [Contents][Index]
shader-program.lisp (file)
clinch (system)
default-shaders.lisp
Next: The clinch/index-buffer<dot>lisp file, Previous: The clinch/default-shaders<dot>lisp file, Up: Lisp files [Contents][Index]
default-shaders.lisp (file)
clinch (system)
buffer.lisp
Next: The clinch/pixel-buffer<dot>lisp file, Previous: The clinch/buffer<dot>lisp file, Up: Lisp files [Contents][Index]
buffer.lisp (file)
clinch (system)
index-buffer.lisp
Next: The clinch/texture<dot>lisp file, Previous: The clinch/index-buffer<dot>lisp file, Up: Lisp files [Contents][Index]
index-buffer.lisp (file)
clinch (system)
pixel-buffer.lisp
pixel-buffer (class)
Next: The clinch/2d-node<dot>lisp file, Previous: The clinch/pixel-buffer<dot>lisp file, Up: Lisp files [Contents][Index]
pixel-buffer.lisp (file)
clinch (system)
texture.lisp
Next: The clinch/entity<dot>lisp file, Previous: The clinch/texture<dot>lisp file, Up: Lisp files [Contents][Index]
texture.lisp (file)
clinch (system)
2d-node.lisp
Next: The clinch/viewport<dot>lisp file, Previous: The clinch/2d-node<dot>lisp file, Up: Lisp files [Contents][Index]
2d-node.lisp (file)
clinch (system)
entity.lisp
Next: The clinch/framebuffer<dot>lisp file, Previous: The clinch/entity<dot>lisp file, Up: Lisp files [Contents][Index]
entity.lisp (file)
clinch (system)
viewport.lisp
with-viewport (macro)
Next: The clinch/animation<dot>lisp file, Previous: The clinch/viewport<dot>lisp file, Up: Lisp files [Contents][Index]
viewport.lisp (file)
clinch (system)
framebuffer.lisp
Next: The clinch/window<dot>lisp file, Previous: The clinch/framebuffer<dot>lisp file, Up: Lisp files [Contents][Index]
framebuffer.lisp (file)
clinch (system)
animation.lisp
Next: The clinch/shapes<dot>lisp file, Previous: The clinch/animation<dot>lisp file, Up: Lisp files [Contents][Index]
animation.lisp (file)
clinch (system)
window.lisp
Previous: The clinch/window<dot>lisp file, Up: Lisp files [Contents][Index]
window.lisp (file)
clinch (system)
shapes.lisp
Next: Definitions, Previous: Files, Up: Top [Contents][Index]
Packages are listed by definition order.
• The clinch package: |
package.lisp (file)
common-lisp
Definitions are sorted by export status, category, package, and then by lexicographic order.
• Exported definitions: | ||
• Internal definitions: |
Next: Internal definitions, Previous: Definitions, Up: Definitions [Contents][Index]
• Exported constants: | ||
• Exported special variables: | ||
• Exported macros: | ||
• Exported functions: | ||
• Exported generic functions: | ||
• Exported classes: |
Next: Exported special variables, Previous: Exported definitions, Up: Exported definitions [Contents][Index]
A single-float version of pi.
transform.lisp (file)
Next: Exported macros, Previous: Exported constants, Up: Exported definitions [Contents][Index]
Global Opengl Contex object.
clinch.lisp (file)
An alist of discovered controllers. Format: (controller-id . sdl-controller-handle)
window.lisp (file)
The default on-idle handler. Mapped as both a function and a variable.
window.lisp (file)
Change in time (delta time, dt) since the last on-idle call.
window.lisp (file)
The current entity
clinch.lisp (file)
Current Frame Buffer Object.
framebuffer.lisp (file)
An alist of discovered haptic feedback devices. Format: (controller-id . sdl-haptic-device-handle)
window.lisp (file)
Runs before the next on-idle call. No arguments.
window.lisp (file)
Current default node.
clinch.lisp (file)
Called when a new controller is discovered. Arguments: (controller-id axis-id value timestamp)
window.lisp (file)
Called when a controller’s axis moves. Arguments (controller-id axis-id position timestamp)
window.lisp (file)
Called when a controller’s button is pressed. Arguments: (controller-id axis-id value timestamp)
window.lisp (file)
Called when a controller’s button is released. Arguments: (controller-id axis-id value timestamp)
window.lisp (file)
Called when a controller is remapped. Arguments: (window data1 data2 timestamp)
window.lisp (file)
Called when a controller is removed. Arguments: (window data1 data2 timestamp)
window.lisp (file)
Called when there are no pending events. Take no arguments. Default can be overridden.
window.lisp (file)
Called when a key is pressed. Arguments (win keysym state ts)
window.lisp (file)
Called when a key is released. Arguments (win keysym state ts)
window.lisp (file)
Called when mouse button is released. Arguments: (win mouse x y button state clicks ts)
window.lisp (file)
window.lisp (file)
Called when mouse button is pressed. Arguments: (win mouse x y button state clicks ts)
window.lisp (file)
Called when mouse is moved. Arguments (win mouse state x y xrel yrel ts)
window.lisp (file)
Called when mouse button is released. Arguments: (win mouse x y button state clicks ts)
window.lisp (file)
Called when the mouse wheel is moved. Arguments: (win mouse x y ts)
window.lisp (file)
Called when clinch is about to exit. Take no arguments.
window.lisp (file)
Called when editing text.
window.lisp (file)
Call when text input happens.
window.lisp (file)
Called when window is closing. Arguments (window timestamp)
window.lisp (file)
Called when window gains mouse focus. Arguments (window timestamp)
window.lisp (file)
Called when window is exposed and need redrawn. Arguments (window timestamp)
window.lisp (file)
Called when window gains focus. Arguments (window timestamp)
window.lisp (file)
Called when window loses focus. Arguments (window timestamp)
window.lisp (file)
Called when window is hidden. Arguments (window timestamp)
window.lisp (file)
Called when window is loses mouse focus. Arguments (window timestamp)
window.lisp (file)
Called when window is maximized. Arguments (window timestamp)
window.lisp (file)
Called when window is minimized. Arguments (window timestamp)
window.lisp (file)
Called when the window has been moved. Arguments (window x y timestamp)
window.lisp (file)
Always called when window size changes. Arguments (window width height timestamp)
window.lisp (file)
Called when window is restored to normal position and size. Arguments (window timestamp)
window.lisp (file)
Always called when window size changes. Arguments (window width height timestamp)
window.lisp (file)
An automatically generated orthogonal projection for the window. Pixel to pixel.
clinch.lisp (file)
Current default projection.
clinch.lisp (file)
The current texture. Defaults to the window’s overlay.
clinch.lisp (file)
Time elapsed since (init) in milliseconds.
window.lisp (file)
Weak hash of loaded OpenGL objects.
clinch.lisp (file)
Current viewport object.
clinch.lisp (file)
Global window object.
clinch.lisp (file)
Next: Exported functions, Previous: Exported special variables, Up: Exported definitions [Contents][Index]
Runs body in main thread for safe OpenGL calls. Waits for return value.
clinch.lisp (file)
Runs body in main thread for safe OpenGL calls. Returns immediately.
clinch.lisp (file)
Converts degrees to radians.
transform.lisp (file)
Creates and updates an event handler. Use this for all your *on-* events. It’s just a nice wrapper around (setf event (lambda ...
window.lisp (file)
Converts degrees to radians.
transform.lisp (file)
Coerce a number to a single-float.
transform.lisp (file)
Converts radians to degrees.
transform.lisp (file)
Converts radians to degrees.
transform.lisp (file)
entity.lisp (file)
Convenience macro for useing and resetting an FBO.
framebuffer.lisp (file)
Convenience macro for mapping and unmapping the buffer data. Name is the symbol name to use for the buffer pointer.
buffer.lisp (file)
A wrapper which creates a new node and set it as current.
A wrapper which sets and unsets the current *node* object.
Creates a temporary pixel buffer for a texture.
texture.lisp (file)
entity.lisp (file)
Next: Exported generic functions, Previous: Exported macros, Up: Exported definitions [Contents][Index]
window.lisp (file)
Decomposes a matrix into it’s position vector3, rotation quaterion and scaling vector3. Useful for creating/updating the node object.
clinch.lisp (file)
shapes.lisp (file)
default-shaders.lisp (file)
default-shaders.lisp (file)
default-shaders.lisp (file)
default-shaders.lisp (file)
default-shaders.lisp (file)
Creates/returns a shader-program which blits a texture to an entity.
Uniforms:
P: projection matrix
M: model-view matrix
t1: texture
Attributes:
v: Vertexes
tc1: texture coordinates
default-shaders.lisp (file)
Creates/returns a shader-program which uses simple phong shading with a single color.
Uniforms:
P: projection matrix
M: model-view matrix
ambientLight: Ambient Light Color
lightDirection: Direction of light
lightIntensity: Color of light
color: color of object
Attributes:
v: Vertexes
default-shaders.lisp (file)
Creates/returns a 1x1 texture with the values (1.0, 1.0, 1.0, 1.0). This is a nice placeholder when you don’t want a custom shader.
texture.lisp (file)
Gets the direction from the middle of the screen.
transform.lisp (file)
Creates Clinch’s window in it’s own thread.
Use ! (wait and return a value from main thread) or
Use !! (return immediately with a nil.
window.lisp (file)
Create a raw CFFI frustum matrix.
transform.lisp (file)
Create a raw CFFI orthogonal matrix.
transform.lisp (file)
Create a raw CFFI perspective matrix.
transform.lisp (file)
Creates a quad entity of width and height.
shapes.lisp (file)
Given an origin, direction and a triangle returns if and where they intersect. Presently does not cull backfacing triangles.
clinch.lisp (file)
Graph is an association list whose keys are objects and whose values are lists of objects on which the corresponding key depends. Test is used to compare elements, and should be a suitable test for hash-tables. Topological-sort returns two values. The first is a list of objects sorted toplogically. The second is a boolean indicating whether all of the objects in the input graph are present in the topological ordering (i.e., the first value).
clinch.lisp (file)
transform.lisp (file)
transform.lisp (file)
window.lisp (file)
Unloads all loaded OpenGL objects.
clinch.lisp (file)
Unproject from the screen to transform space.
transform.lisp (file)
Next: Exported classes, Previous: Exported functions, Up: Exported definitions [Contents][Index]
Resets a node to default. Position 0, rotation 0 and scale of 1. Shortcut is !0.
buffer.lisp (file)
Sets the texture data from a vector array.
texture.lisp (file)
Sets the texture data from a pixel buffer.
texture.lisp (file)
Sets the buffer data from a vector array.
buffer.lisp (file)
(setf !>) (generic function)
Gets the texture data as a vector array.
texture.lisp (file)
Returns the buffer’s data as a vector array.
Returns shader-program’s available information such as shader source, uniforms and attributes.
shader-program.lisp (file)
!> (generic function)
buffer.lisp (file)
Resets a node’s rotation to 1,0,0,0. Shortcut is !r0
Resets a node’s scaling to 1,1,1. Shortcut is !s0
Resets a node’s translation to 0,0,0. Shortcut is !t0
automatically generated reader method
animation.lisp (file)
automatically generated writer method
animation.lisp (file)
Shaders pass information by using named values called Uniforms and Attributes. This sets a uniform to the matrix of a node.
shader-program.lisp (file)
Shaders pass information by using named values called Uniforms and Attributes. This sets a uniform to a matrix value.
shader-program.lisp (file)
Shaders pass information by using named values called Uniforms and Attributes. This sets a uniform to value.
shader-program.lisp (file)
Returns an attribute by name. Should work with numbers and strings.
entity.lisp (file)
Sets an attribute’s value. If the name doesn’t exist, it’s added. If the new value is nil, the entry is deleted.
entity.lisp (file)
automatically generated reader method
entity.lisp (file)
Binds the frame buffer for use.
framebuffer.lisp (file)
Wrapper around glBindFrameBuffer. Puts the Framebuffer into play.
framebuffer.lisp (file)
Wrapper around glBindBuffer. Puts the texture into play.
texture.lisp (file)
Wrapper around glBindBuffer. Binds this buffer for use.
buffer.lisp (file)
Bind buffer to a shader attribute.
buffer.lisp (file)
Use buffer in shader for the vertex array: The built-in variable gl_Vertex.
buffer.lisp (file)
Shader-Programs pass information by using named values called Uniforms. Textures are passed using Samplers. This sets a texture-unit to a sampler uniform
texture.lisp (file)
It is possible to bind static information to an attribute. That’s what this does.
shader-program.lisp (file)
automatically generated reader method
viewport.lisp (file)
automatically generated writer method
viewport.lisp (file)
Returns a color-attachment by number.
framebuffer.lisp (file)
Sets an attachment’s number
framebuffer.lisp (file)
automatically generated reader method
texture.lisp (file)
automatically generated writer method
texture.lisp (file)
texture.lisp (file)
buffer.lisp (file)
automatically generated reader method
framebuffer.lisp (file)
Binds the depth buffer for use.
framebuffer.lisp (file)
Use this buffer as an index array and draw somthing.
index-buffer.lisp (file)
Use this buffer as an index array and draw somthing within start and end bounds.
index-buffer.lisp (file)
automatically generated reader method
entity.lisp (file)
automatically generated writer method
entity.lisp (file)
automatically generated reader method
node.lisp (file)
automatically generated writer method
node.lisp (file)
automatically generated reader method
animation.lisp (file)
automatically generated writer method
animation.lisp (file)
animation.lisp (file)
animation.lisp (file)
animation.lisp (file)
animation.lisp (file)
animation.lisp (file)
Shaders pass information by using named values called Uniforms and Attributes. This gets the gl id of a attribute name.
shader-program.lisp (file)
Shaders pass information by using named values called Uniforms and Attributes. If we are using the raw id, this returns it.
shader-program.lisp (file)
animation.lisp (file)
animation.lisp (file)
animation.lisp (file)
animation.lisp (file)
animation.lisp (file)
Calculates the number of VALUES (stride * vcount) or (stride * width * height) this buffer contains.
texture.lisp (file)
Calculates the number of VALUES (stride + vcount) this buffer contains.
buffer.lisp (file)
Shaders pass information by using named values called Uniforms and Attributes. This gets the gl id of a uniform name.
shader-program.lisp (file)
Shaders pass information by using named values called Uniforms and Attributes. If we are using the raw id, this returns it.
shader-program.lisp (file)
Get the viewport height.
viewport.lisp (file)
Set the viewport height.
viewport.lisp (file)
automatically generated reader method
texture.lisp (file)
automatically generated reader method
framebuffer.lisp (file)
automatically generated reader method
index-buffer.lisp (file)
automatically generated reader method
buffer.lisp (file)
automatically generated reader method
shaders.lisp (file)
automatically generated reader method
entity.lisp (file)
Sets the index array.
entity.lisp (file)
Creates and adds a color buffer for the frame buffer.
framebuffer.lisp (file)
Creates a depth texture for a framebuffer.
framebuffer.lisp (file)
Returns a compatible pixel buffer for a texture.
texture.lisp (file)
shapes.lisp (file)
Creates a quad for a texture which defaults to texture’s width and height.
shapes.lisp (file)
Returns a pointer to the buffer data. YOU MUST CALL UNMAP-BUFFER AFTER YOU ARE DONE!
Access options are: :Read-Only, :Write-Only, and :READ-WRITE. NOTE: Using :read-write is slower than the others. If you can, use them instead.
buffer.lisp (file)
Multiplies nodes and matrix transforms.
node.lisp (file)
Multiplies a node? I’m not sure if this works.
Multiplies a node? I’m not sure if this works.
Multiplies a node? I’m not sure if this works.
Multiplies a node? I’m not sure if this works.
automatically generated reader method
animation.lisp (file)
automatically generated writer method
animation.lisp (file)
automatically generated reader method
shader-program.lisp (file)
automatically generated reader method
shaders.lisp (file)
automatically generated reader method
node.lisp (file)
automatically generated writer method
node.lisp (file)
animation.lisp (file)
automatically generated reader method
animation.lisp (file)
automatically generated writer method
animation.lisp (file)
animation.lisp (file)
automatically generated reader method
shader-program.lisp (file)
buffer.lisp (file)
Gets the texture data as a vector array.
texture.lisp (file)
Returns the buffer’s data as a vector array.
Returns shader-program’s available information such as shader source, uniforms and attributes.
shader-program.lisp (file)
buffer.lisp (file)
Sets the texture data from a vector array.
texture.lisp (file)
Sets the texture data from a pixel buffer.
texture.lisp (file)
Sets the buffer data from a vector array.
automatically generated reader method
texture.lisp (file)
automatically generated writer method
texture.lisp (file)
automatically generated reader method
index-buffer.lisp (file)
automatically generated writer method
index-buffer.lisp (file)
automatically generated reader method
buffer.lisp (file)
automatically generated writer method
buffer.lisp (file)
A quick method to set all the values in the viewport.
viewport.lisp (file)
entity.lisp (file)
animation.lisp (file)
Makes this viewport active.
viewport.lisp (file)
Renders the entity (mesh).
:parent Sets the parent for the :model
entity.lisp (file)
Render a list of rendables.
node.lisp (file)
Render child objects. You don’t need to build your application with nodes/render. This is just here to help.
node.lisp (file)
automatically generated reader method
animation.lisp (file)
automatically generated writer method
animation.lisp (file)
automatically generated reader method
animation.lisp (file)
automatically generated writer method
animation.lisp (file)
Resize the viewport.
viewport.lisp (file)
Rotate node. Shortcut is !r.
(setf rotation) (generic function)
automatically generated reader method
node.lisp (file)
automatically generated reader method
animation.lisp (file)
automatically generated writer method
animation.lisp (file)
automatically generated reader method
animation.lisp (file)
automatically generated writer method
animation.lisp (file)
automatically generated reader method
animation.lisp (file)
automatically generated writer method
animation.lisp (file)
Scale node. Shortcut is !s.
(setf scaling) (generic function)
automatically generated reader method
node.lisp (file)
texture.lisp (file)
shaders.lisp (file)
automatically generated reader method
entity.lisp (file)
Sets the shader-program to use.
entity.lisp (file)
shaders.lisp (file)
Calculates how many bytes this buffer consists of.
texture.lisp (file)
Calculates how many bytes this buffer consists of.
buffer.lisp (file)
animation.lisp (file)
animation.lisp (file)
automatically generated reader method
texture.lisp (file)
automatically generated reader method
index-buffer.lisp (file)
automatically generated reader method
buffer.lisp (file)
automatically generated reader method
framebuffer.lisp (file)
automatically generated writer method
framebuffer.lisp (file)
automatically generated reader method
index-buffer.lisp (file)
automatically generated reader method
buffer.lisp (file)
automatically generated reader method
texture.lisp (file)
automatically generated writer method
texture.lisp (file)
get the entire transform.
node.lisp (file)
(setf transform) (generic function)
Gets the transform matrix.
Translate node. Shortcut is !t.
(setf translation) (generic function)
automatically generated reader method
node.lisp (file)
node.lisp (file)
translation (generic function)
Sets the translation vector.
Wrapper around glBindFrameBuffer. Puts the Framebuffer into play.
framebuffer.lisp (file)
Unbinds the texture.
texture.lisp (file)
Wrapper around glBindBuffer with buffer 0, or no buffer.
buffer.lisp (file)
Returns a uniform by name. Should work with numbers and strings.
entity.lisp (file)
Sets a uniform’s value. If the name doesn’t exist, it’s added. If the new value is nil, the entry is deleted.
entity.lisp (file)
automatically generated reader method
entity.lisp (file)
Unloads an opengl object. Does nothing for non-opengl objects.
clinch.lisp (file)
Unloads and releases all frame-buffer resources, also any renderbuffers
framebuffer.lisp (file)
Release entity resources. If :all t, then the index buffer and all uniforms and attributes are unloaded.
entity.lisp (file)
Unloads the texture. Also cancels gc finalization.
texture.lisp (file)
Release buffer resources.
buffer.lisp (file)
Unloads and releases all shader-program resources.
shader-program.lisp (file)
Unloads and releases the shader.
shaders.lisp (file)
Release the pointer given by map-buffer. NOTE: THIS TAKES THE BUFFER OBJECT, NOT THE POINTER! ALSO, DON’T TRY TO RELASE THE POINTER.
buffer.lisp (file)
animation.lisp (file)
entity.lisp (file)
Render child objects. You don’t need to build your application with nodes/render. This is just here to help.
node.lisp (file)
automatically generated reader method
index-buffer.lisp (file)
automatically generated writer method
index-buffer.lisp (file)
automatically generated reader method
buffer.lisp (file)
automatically generated writer method
buffer.lisp (file)
Start using the shader-program.
shader-program.lisp (file)
automatically generated reader method
index-buffer.lisp (file)
automatically generated reader method
buffer.lisp (file)
Get viewport width.
viewport.lisp (file)
Set viewport width.
viewport.lisp (file)
automatically generated reader method
texture.lisp (file)
automatically generated reader method
viewport.lisp (file)
automatically generated writer method
viewport.lisp (file)
automatically generated reader method
viewport.lisp (file)
automatically generated writer method
viewport.lisp (file)
Previous: Exported generic functions, Up: Exported definitions [Contents][Index]
animation.lisp (file)
standard-object (class)
:name
name (generic function)
(setf name) (generic function)
:frames
frames (generic function)
(setf frames) (generic function)
:repeat
t
repeat (generic function)
(setf repeat) (generic function)
:run-length
run-length (generic function)
(setf run-length) (generic function)
animation.lisp (file)
standard-object (class)
:animation
animation (generic function)
(setf animation) (generic function)
:start
0
current-time (generic function)
(setf current-time) (generic function)
:paused
t
paused (generic function)
(setf paused) (generic function)
:repeat
t
repeat (generic function)
(setf repeat) (generic function)
:run-speed
1
run-speed (generic function)
(setf run-speed) (generic function)
:run-length
run-length (generic function)
(setf run-length) (generic function)
Creates and keeps track of GPU buffer object (shared memory with gpu).
buffer.lisp (file)
standard-object (class)
:id
id (generic function)
:qtype
:float
qtype (generic function)
(setf qtype) (generic function)
:usage
:static-draw
usage (generic function)
(setf usage) (generic function)
:stride
3
stride (generic function)
:count
vertex-count (generic function)
:target
:array-buffer
target (generic function)
loaded? (generic function)
(setf loaded?) (generic function)
(gensym "buffer")
key (generic function)
Renders a mesh with a shader-program with attributes and uniforms.
entity.lisp (file)
standard-object (class)
:shader-program
shader-program (generic function)
:indexes
indexes (generic function)
:mode
:triangles
mode (generic function)
:uniforms
uniforms (generic function)
:attributes
attributes (generic function)
:bones
bones (generic function)
(setf bones) (generic function)
:enabled
t
enabled (generic function)
(setf enabled) (generic function)
The Frame Buffer Object or FBO. Use this to render to textures.
framebuffer.lisp (file)
standard-object (class)
:id
id (generic function)
:target
:draw-framebuffer
target (generic function)
(setf target) (generic function)
color-attachments (generic function)
:depth-buffer
depth-buffer (generic function)
stencil-attachments (generic function)
(gensym "framebuffer")
key (generic function)
Creates and keeps track of GPU index buffer object (shared memory with gpu).
index-buffer.lisp (file)
buffer (class)
:id
id (generic function)
:qtype
:unsigned-int
qtype (generic function)
(setf qtype) (generic function)
clinch:usage
:static-draw
usage (generic function)
(setf usage) (generic function)
:stride
1
stride (generic function)
:count
vertex-count (generic function)
:target
:element-array-buffer
target (generic function)
loaded? (generic function)
(setf loaded?) (generic function)
(gensym "buffer")
key (generic function)
A node class for creating hierarchies of objects. It caches calculations for speed. Not enough in itself, and is not required by Clinch.
node.lisp (file)
standard-object (class)
2d-node (class)
:name
name (generic function)
(setf name) (generic function)
:translation
clinch::v0
translation (generic function)
:rotation
(rtg-math.quaternions:identity)
rotation (generic function)
:scale
clinch::vi
scaling (generic function)
current-transform (generic function)
:enabled
t
enabled (generic function)
(setf enabled) (generic function)
:children
children (generic function)
(setf children) (generic function)
Creates and keeps track of the shader-program objects. Requires an UNLOAD call when you are done. Bind Buffer functions are in Buffer.l
shader-program.lisp (file)
standard-object (class)
name (generic function)
program (generic function)
shader-program-attributes (generic function)
shader-program-uniforms (generic function)
(gensym "shader-program")
key (generic function)
Creates and keeps track of a texture object. Can be used with a pixelbuffer to speed things up.
texture.lisp (file)
standard-object (class)
2d-node (class)
:tex-id
tex-id (generic function)
(setf tex-id) (generic function)
:width
width (generic function)
:height
height (generic function)
:qtype
:unsigned-char
qtype (generic function)
(setf qtype) (generic function)
:internal-format
:rgba
internal-format (generic function)
(setf internal-format) (generic function)
:format
:bgra
data-format (generic function)
(setf data-format) (generic function)
:stride
4
stride (generic function)
(gensym "texture")
key (generic function)
Creates a viewport.
viewport.lisp (file)
standard-object (class)
:width
0
width (generic function)
(setf width) (generic function)
:height
0
height (generic function)
(setf height) (generic function)
:clear-color
clear-color (generic function)
(setf clear-color) (generic function)
Previous: Exported definitions, Up: Definitions [Contents][Index]
• Internal constants: | ||
• Internal special variables: | ||
• Internal macros: | ||
• Internal functions: | ||
• Internal generic functions: | ||
• Internal classes: |
Next: Internal special variables, Previous: Internal definitions, Up: Internal definitions [Contents][Index]
framebuffer.lisp (file)
Next: Internal macros, Previous: Internal constants, Up: Internal definitions [Contents][Index]
clinch.lisp (file)
clinch.lisp (file)
texture.lisp (file)
Weak hash of OpenGL objects waiting to be unloaded by another.
clinch.lisp (file)
default-shaders.lisp (file)
texture.lisp (file)
clinch.lisp (file)
clinch.lisp (file)
clinch.lisp (file)
window.lisp (file)
window.lisp (file)
2d-node.lisp (file)
2d-node.lisp (file)
Next: Internal functions, Previous: Internal special variables, Up: Internal definitions [Contents][Index]
threads.lisp (file)
shapes.lisp (file)
clinch.lisp (file)
Helper macro that we can use to allow us to continue from an
error. Remember to hit C in slime or pick the restart so errors don’t kill the app.
window.lisp (file)
default-shaders.lisp (file)
window.lisp (file)
window.lisp (file)
Enables REPL access via UPDATE-SWANK in the main loop using SDL2. Wrap this around the sdl2:with-init code.
window.lisp (file)
texture.lisp (file)
A wrapper which sets and unsets a viewport.
viewport.lisp (file)
Next: Internal generic functions, Previous: Internal macros, Up: Internal definitions [Contents][Index]
threads.lisp (file)
window.lisp (file)
clinch.lisp (file)
Adds item to list of loaded OpenGL objects.
clinch.lisp (file)
Returns the buffer type as a cffi type.
buffer.lisp (file)
entity.lisp (file)
window.lisp (file)
shapes.lisp (file)
shapes.lisp (file)
shapes.lisp (file)
shapes.lisp (file)
clinch.lisp (file)
shapes.lisp (file)
shapes.lisp (file)
clinch.lisp (file)
transform.lisp (file)
shapes.lisp (file)
shapes.lisp (file)
shapes.lisp (file)
window.lisp (file)
window.lisp (file)
shapes.lisp (file)
shapes.lisp (file)
shapes.lisp (file)
shapes.lisp (file)
clinch.lisp (file)
shapes.lisp (file)
shapes.lisp (file)
shapes.lisp (file)
shapes.lisp (file)
clinch.lisp (file)
clinch.lisp (file)
clinch.lisp (file)
window.lisp (file)
shapes.lisp (file)
clinch.lisp (file)
clinch.lisp (file)
shader-program.lisp (file)
shader-program.lisp (file)
Removes item from list of loaded OpenGL objects. Does NOT call unload.
clinch.lisp (file)
clinch.lisp (file)
clinch.lisp (file)
clinch.lisp (file)
window.lisp (file)
shapes.lisp (file)
transform.lisp (file)
clinch.lisp (file)
I think this is a tree walker which applies a function to a clinch node tree.
clinch.lisp (file)
shapes.lisp (file)
window.lisp (file)
clinch.lisp (file)
clinch.lisp (file)
Called from within the main loop, this keep the lisp repl working while cepl runs
window.lisp (file)
Next: Internal classes, Previous: Internal functions, Up: Internal definitions [Contents][Index]
Add a color buffer at position index.
framebuffer.lisp (file)
shaders.lisp (file)
shader-program.lisp (file)
Use buffer in shader for the vertex array: The built-in variable gl_Vertex.
buffer.lisp (file)
automatically generated reader method
entity.lisp (file)
automatically generated writer method
entity.lisp (file)
shader-program.lisp (file)
shader-program.lisp (file)
automatically generated reader method
framebuffer.lisp (file)
automatically generated reader method
animation.lisp (file)
automatically generated writer method
animation.lisp (file)
texture.lisp (file)
shapes.lisp (file)
shader-program.lisp (file)
shader-program.lisp (file)
shader-program.lisp (file)
automatically generated reader method
texture.lisp (file)
automatically generated writer method
texture.lisp (file)
automatically generated reader method
framebuffer.lisp (file)
automatically generated reader method
texture.lisp (file)
automatically generated reader method
index-buffer.lisp (file)
automatically generated reader method
buffer.lisp (file)
automatically generated reader method
shader-program.lisp (file)
automatically generated reader method
shaders.lisp (file)
List the shader-program’s attribute arguments.
shader-program.lisp (file)
List the shader-program’s attribute arguments.
shader-program.lisp (file)
List the shader-program’s uniform arguments.
shader-program.lisp (file)
automatically generated reader method
index-buffer.lisp (file)
automatically generated writer method
index-buffer.lisp (file)
automatically generated reader method
buffer.lisp (file)
automatically generated writer method
buffer.lisp (file)
Creates a geometry shader.
shaders.lisp (file)
Creates a fragment shader.
shaders.lisp (file)
Creates a vertex shader.
shaders.lisp (file)
buffer.lisp (file)
automatically generated reader method
entity.lisp (file)
Removes a shader-program attribute
shader-program.lisp (file)
Removes a shader-program uniform
shader-program.lisp (file)
Resets a node to default. Position 0, rotation 0 and scale of 1. Shortcut is !0.
Resets a node’s rotation to 1,0,0,0. Shortcut is !r0
Resets a node’s scaling to 1,1,1. Shortcut is !s0
Resets a node’s translation to 0,0,0. Shortcut is !t0
Get the rotation matrix.
Get the scale matrix.
automatically generated reader method
shaders.lisp (file)
Gets a shader-program attribute
shader-program.lisp (file)
Sets a shader-program attribute.
shader-program.lisp (file)
automatically generated reader method
shader-program.lisp (file)
Gets a shader-program uniform
shader-program.lisp (file)
Sets a shader-program uniform.
shader-program.lisp (file)
automatically generated reader method
shader-program.lisp (file)
automatically generated reader method
shaders.lisp (file)
automatically generated reader method
shaders.lisp (file)
automatically generated reader method
framebuffer.lisp (file)
Get the translation matrix.
Bind buffer to a shader-program attribute.
buffer.lisp (file)
Stop using the normal array
buffer.lisp (file)
Stop using the vertex array
buffer.lisp (file)
Previous: Internal generic functions, Up: Internal definitions [Contents][Index]
2d-node.lisp (file)
Fragment Shader Class.
shaders.lisp (file)
shader (class)
make-shader (method)
:fragment-shader
Geometry Shader Class.
shaders.lisp (file)
shader (class)
make-shader (method)
:geometry-shader
Creates a buffer for quickly reading and writing to textures. This is separate from the texture’s data.
pixel-buffer.lisp (file)
buffer (class)
pushg (method)
:pixel-unpack-buffer
Base class for all individual shaders.
shaders.lisp (file)
standard-object (class)
name (generic function)
:id
id (generic function)
:shader-type
shader-type (generic function)
shader-attributes (generic function)
shader-uniforms (generic function)
(gensym "shader")
key (generic function)
Vertex Shader Class.
shaders.lisp (file)
shader (class)
make-shader (method)
:vertex-shader
Previous: Definitions, Up: Top [Contents][Index]
• Concept index: | ||
• Function index: | ||
• Variable index: | ||
• Data type index: |
Next: Function index, Previous: Indexes, Up: Indexes [Contents][Index]
Jump to: | C F L |
---|
Jump to: | C F L |
---|
Next: Variable index, Previous: Concept index, Up: Indexes [Contents][Index]
Jump to: | !
$
(
*
_
A B C D E F G H I K L M N P Q R S T U V W X Y |
---|
Jump to: | !
$
(
*
_
A B C D E F G H I K L M N P Q R S T U V W X Y |
---|
Next: Data type index, Previous: Function index, Up: Indexes [Contents][Index]
Jump to: | *
+
A B C D E F H I K L M N P R S T U V W X Y |
---|
Jump to: | *
+
A B C D E F H I K L M N P R S T U V W X Y |
---|
Previous: Variable index, Up: Indexes [Contents][Index]
Jump to: | 2
A B C E F G I N P S T V |
---|
Jump to: | 2
A B C E F G I N P S T V |
---|