int data_size,
int data_allocated);
-// Write a PNG for debugging
+// Write a PNG/PPM for debugging
int write_png(const char *path);
+ static void write_ppm(VFrame *vfrm, const char *fmt, ...);
+ void write_ppm(const char *path) { write_ppm(this, "%s", path); }
+//static int n = 0; write_ppm(vframe, "/tmp/data/f%05d", ++n);
// if frame points to the same data as this return 1
int equals(VFrame *frame);
long get_bytes_per_line();
int get_memory_type();
-
-
static int calculate_bytes_per_pixel(int colormodel);
// Get size + 4 for assembly language
static long calculate_data_size(int w, int h,
int bytes_per_line = -1, int color_model = BC_RGB888);
// Get size of uncompressed frame buffer without extra 4 bytes
long get_data_size();
+// alloc/reset temp vframe to spec
+ static void get_temp(VFrame *&vfrm, int w, int h, int color_model);
void rotate270();
void rotate90();
BC_PBuffer* get_pbuffer();
// Bind the frame's texture to GL_TEXTURE_2D and enable it.
-// If a texture_unit is supplied, the texture unit is made active
-// and the commands are run in the right sequence to
-// initialize it to our preferred specifications.
- void bind_texture(int texture_unit = -1);
-
-
+ void bind_texture(int texture_unit, int nearest=0);
// Create a frustum with 0,0 in the upper left and w,-h in the bottom right.
// Set preferred opengl settings.
virtual int draw_pixel(int x, int y);
int pixel_rgb, pixel_yuv, stipple;
- void set_pixel_color(int rgb);
+ void set_pixel_color(int rgb, int a=0xff);
void set_stiple(int mask);
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);