// Maximum number of prev or next effects to be pushed onto the stacks.
#define MAX_STACK_ELEMENTS 255
// Maximum number of prev or next effects to be pushed onto the stacks.
#define MAX_STACK_ELEMENTS 255
// BC_CModels::transfer
int transfer_from(VFrame *frame, int bg_color, int in_x, int in_y, int in_w, int in_h);
int transfer_from(VFrame *frame, int bg_color=0) {
// BC_CModels::transfer
int transfer_from(VFrame *frame, int bg_color, int in_x, int in_y, int in_w, int in_h);
int transfer_from(VFrame *frame, int bg_color=0) {
// Adds the program with put_shader.
// Returns the program handle.
// Requires a null terminated argument list of shaders to link together.
// Adds the program with put_shader.
// Returns the program handle.
// Requires a null terminated argument list of shaders to link together.
// At least one shader argument must have a main() function. make_shader
// replaces all the main() functions with unique functions and calls them in
// sequence, so multiple independant shaders can be linked.
// At least one shader argument must have a main() function. make_shader
// replaces all the main() functions with unique functions and calls them in
// sequence, so multiple independant shaders can be linked.
static void dump_shader(int shader_id);
// Because OpenGL is faster if multiple effects are combined, we need
static void dump_shader(int shader_id);
// Because OpenGL is faster if multiple effects are combined, we need
void draw_arrow(int x1, int y1, int x2, int y2, int sz=10);
void draw_x(int x1, int y1, int sz=2);
void draw_t(int x1, int y1, int sz=2);
void draw_arrow(int x1, int y1, int x2, int y2, int sz=10);
void draw_x(int x1, int y1, int sz=2);
void draw_t(int x1, int y1, int sz=2);