Vuo
0.4.2
|
A graphics shader program, specifying how to render a 3D object.
Classes | |
struct | _VuoShader |
A graphics shader program, specifying how to render a 3D object. More... | |
Macros | |
#define | VUOSHADER_GLSL_SOURCE(version, source) "#version " #version "\n" #source |
A macro to facilitate defining a GLSL shader in a C source file. | |
Typedefs | |
typedef struct _VuoShader * | VuoShader |
A graphics shader program, specifying how to render a 3D object. | |
Functions | |
void | VuoShader_free (void *shader) |
Decrements the retain count of the OpenGL Texture Object associated with the specified VuoImage , and frees the texture VuoImage struct. | |
void | VuoShader_printShaderInfoLog (GLuint obj) |
Prints GLSL debug information to the console. | |
void | VuoShader_printProgramInfoLog (GLuint obj) |
Prints GLSL debug information to the console. | |
VuoShader | VuoShader_make (const char *vertexShaderSource, const char *fragmentShaderSource) |
Compiles, links, and uploads the specified shader sources. | |
VuoShader | VuoShader_valueFromString (const char *initializer) |
Unserializes the pointer in initializer. | |
char * | VuoShader_stringFromValue (const VuoShader value) |
Serializes the pointer to the VuoShader object, since we need to preserve its reference count. | |
char * | VuoShader_summaryFromValue (const VuoShader value) |
VuoShader | VuoShader_makeImageShader (void) |
Returns a shader that renders objects with an image (ignoring lighting), specified by uniform texture . | |
void | VuoShader_resetTextures (VuoShader shader) |
Empties the list of textures associated with shader . | |
void | VuoShader_addTexture (VuoShader shader, VuoImage texture, const char *uniformIdentifier) |
Adds to shader an association between texture and uniformIdentifier . | |
struct _VuoShader |
Class Members | ||
---|---|---|
unsigned int | glFragmentShaderName | |
unsigned int | glProgramName | |
VuoList_VuoInteger | glTextureUniformLocations | |
unsigned int | glVertexShaderName | |
VuoList_VuoImage | textures |
typedef struct _VuoShader * VuoShader |
A graphics shader program, specifying how to render a 3D object.
The struct is typedef'd to a pointer so that VuoShaders are reference-counted, enabling us to automatically delete the GL Program Objects when the last reference is released.
Adds to shader
an association between texture
and uniformIdentifier
.
May be called from any thread (doesn't require an existing GL Context).
void VuoShader_free | ( | void * | shader | ) |
Decrements the retain count of the OpenGL Texture Object associated with the specified VuoImage
, and frees the texture
VuoImage struct.
May be called from any thread (doesn't require an existing GL Context).
VuoShader VuoShader_make | ( | const char * | vertexShaderSource, |
const char * | fragmentShaderSource | ||
) |
Compiles, links, and uploads the specified shader sources.
The vertex shader must define:
uniform mat4 projectionMatrix; uniform mat4 modelviewMatrix; attribute vec4 position; attribute vec4 normal; attribute vec4 tangent; attribute vec4 bitangent; attribute vec4 textureCoordinate;
May be called from any thread (doesn't require an existing GL Context).
void VuoShader_printProgramInfoLog | ( | GLuint | obj | ) |
Prints GLSL debug information to the console.
Must be called from a thread with an active GL Context.
void VuoShader_printShaderInfoLog | ( | GLuint | obj | ) |
Prints GLSL debug information to the console.
Must be called from a thread with an active GL Context.
char * VuoShader_summaryFromValue | ( | const VuoShader | value | ) |