#include "bctexture.inc"
#include "bcwindowbase.inc"
#include "bccmodels.h"
-#include "bccmodels.h"
#include "vframe.inc"
// Maximum number of prev or next effects to be pushed onto the stacks.
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);
return transfer_from(frame, bg_color, 0,0, frame->get_w(),frame->get_h());
}
// Required for YUV
- int clear_frame();
+ void black_frame();
+ void clear_frame();
int allocate_compressed_data(long bytes);
// Sequence number. -1 means invalid. Passing frames to the encoder is
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.
// Calls init_screen with the current frame's dimensions.
void init_screen();
+// color used by clear_frame, default -1 (unset) which clears to BLACK
+ void set_clear_color(int color, int alpha);
+ int get_clear_color();
+ int get_clear_alpha();
+
// Compiles and links the shaders into a program.
// Adds the program with put_shader.
// Returns the program handle.
unsigned char *a;
// Dimensions of frame
int w, h;
+// color used by clear_frame
+ int clear_color, clear_alpha;
// Info for reading png images
const unsigned char *image;
long image_offset;