Skip to content
tiffany352 edited this page Jan 1, 2013 · 1 revision

Types

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.

Variables

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.

Clone this wiki locally