Shader library


Pixie comes with a library that allows you to query a compiled shader for its parameter. SDR lib exports the following two functions:

TSdrShader *sdrGet(const char *);

void sdrDelete(TSdrShader *);

The first function is used to get the shader info i.e.: sdrGet("matte.sdr"). The second function can be used to free the structure returned be sdrGet. The structure TSdrShader contains the shader and parameter information. See the source code for "sdrinfo" for example usage.

The structure TSdrShader is defined as:

typedef struct TSdrParameter {
    char          *name;         // Name of the parameter
    ESdrType      type;          // Type of the parameter
    ESdrContainer container;     // Container class of the parameter
    int           numItems;      // Number of items (the number of items if an array, 1 otherwise)
    char          *space;        // The space that the default value is expressed in
    UDefaultVal   defaultValue;  // The default value
    struct TSdrParameter *next;  // The next parameter
} TSdrParameter;