-
Notifications
You must be signed in to change notification settings - Fork 3
Material.h
tiffany352 edited this page Jan 1, 2013
·
1 revision
typedef void (*ilG_material_bind_cb)(struct ilG_context*, void*);
Bind/unbind callback.
typedef void (*ilG_material_update_cb)(struct ilG_context*, struct il_positionable*, void*);
Update callback (called before each drawing)
typedef struct ilG_material {
unsigned int id;
const char *name;
GLuint program, vertshader, fragshader;
ilG_material_bind_cb bind, unbind;
ilG_material_update_cb update;
void *bind_ctx, *update_ctx, *unbind_ctx;
} ilG_material;
Represents a single OpenGL shader program. Each one should correlate to one fragment shader file, and one vertex shader file. Has a one-to-many relationship with positionables, and a many-to-many relationship with drawables.
ilG_material* ilG_material_default;
Represents a default shader program. Used mainly for testing and simple demos. Somewhat of a passthrough shader, but does camera rotations.
ilG_material* ilG_material_fromId(unsigned int id);
Converts a material ID to a material pointer. void ilG_material_assignId(ilG_material*); Assigns an ID to a material object. void ilG_material_setId(ilG_material*, unsigned int id); Sets the ID of a material object.