VFrame(VFrame &vframe);
// Create new frame for compressed data.
VFrame();
- ~VFrame();
+ virtual ~VFrame();
// Return 1 if the colormodel and dimensions are the same
// Used by FrameCache
// direct copy with no alpha
int copy_from(VFrame *frame);
+ int copy_vframe(VFrame *src);
// 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.
+// if fragments is not NULL, it is a a zero terminated list of frags
+// if fragments is NULL, then a zero terminated list of va_args frags
// 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.
-// x is a placeholder for va_arg and should be 0.
- static unsigned int make_shader(int x, ...);
+ static unsigned int make_shader(const char **fragments, ...);
static void dump_shader(int shader_id);
// Because OpenGL is faster if multiple effects are combined, we need
// This clears the stacks and the param table
void clear_stacks();
- int (VFrame::*draw_point)(int x, int y);
+ virtual int draw_pixel(int x, int y);
int pixel_rgb, pixel_yuv, stipple;
void set_pixel_color(int rgb);
void set_stiple(int mask);
- int draw_pixel(int x, int y);
void draw_line(int x1, int y1, int x2, int y2);
void draw_smooth(int x1, int y1, int x2, int y2, int x3, int y3);
void smooth_draw(int x1, int y1, int x2, int y2, int x3, int y3);