#define RGB3 3 // 3 bytes of color info per pixel
#define RGBA 4 // 4 bytes of color+alpha info
-void my_glWritePPMFile(const char *filename, GLubyte *buffer, int win_width, int win_height, int mode)
+bool sg_glWritePPMFile(const char *filename, GLubyte *buffer, int win_width, int win_height, int mode)
{
int i, j, k, q;
unsigned char *ibuffer;
if ( (fp = fopen(filename, "wb")) == NULL ) {
printf("Warning: cannot open %s\n", filename);
- return;
+ return false;
}
fprintf(fp, "P6\n# CREATOR: glReadPixel()\n%d %d\n%d\n",
printf("wrote file (%d x %d pixels, %d bytes)\n",
win_width, win_height, RGB3*win_width*win_height);
+ return true;
}
// dump the screen buffer to a ppm file
-void my_glDumpWindow(const char *filename, int win_width, int win_height) {
+bool sg_glDumpWindow(const char *filename, int win_width, int win_height) {
GLubyte *buffer;
+ bool result;
buffer = (GLubyte *) malloc(win_width*win_height*RGBA);
glFinish();
glReadPixels(0, 0, win_width, win_height,
GL_RGBA, GL_UNSIGNED_BYTE, buffer);
- my_glWritePPMFile( filename, buffer, win_width, win_height, GL_RGBA );
+ result = sg_glWritePPMFile( filename, buffer, win_width, win_height,
+ GL_RGBA );
free(buffer);
+
+ return result;
}
* @param win_width width of our opengl window
* @param win_height height of our opengl window
*/
-void my_glDumpWindow( const char *filename, int win_width, int win_height );
+bool sg_glDumpWindow( const char *filename, int win_width, int win_height );
/**
* @param win_height height of buffer
* @param mode one of GL_RGBA, GL_RGB, etc.
*/
-void my_glWritePPMFile( const char *filename, GLubyte *buffer, int win_width,
+bool sg_glWritePPMFile( const char *filename, GLubyte *buffer, int win_width,
int win_height, int mode);