ref: 5781e4d2a29054abc5d659e9ca867604cba4513f
dir: /objects.h/
typedef struct Buffer Buffer;
struct Buffer {
char *buffer;
long len;
};
typedef struct Variable Variable;
struct Variable {
long type;
};
typedef struct Type Type;
struct Type {
u32int len;
u32int optype;
};
typedef struct Function Function;
struct Function {
long rettype;
long label;
};
typedef struct Label Label;
struct Label {
u32int *ptr;
};
enum {
TTYPE,
TVARIABLE,
TFUNCTION,
TLABEL,
};
typedef struct Item Item;
struct Item {
short type;
union {
Variable v;
Type t;
Function f;
Label l;
};
};
typedef struct EntryPoint EntryPoint;
struct EntryPoint {
char *name;
long func;
EntryPoint *next;
};
typedef struct Shader Shader;
struct Shader {
u32int *buffer;
long len;
int descpool;
int compiled; // is the shader compiled?
Item *items;
long nitems;
long maxitems;
EntryPoint *entrypoints;
long lastfunction;
};
typedef struct DescSet DescSet;
struct DescSet {
vlong *bindings; // id of buffer
int numbindings;
};
typedef struct DescPool DescPool;
struct DescPool {
DescSet *sets;
int numsets;
};