Revision: 6714
http://playerstage.svn.sourceforge.net/playerstage/?rev=6714&view=rev
Author: rtv
Date: 2008-06-30 01:22:54 -0700 (Mon, 30 Jun 2008)
Log Message:
-----------
fixed byte-alignment bug in screenshot code. I want 3 hours of my life back
Modified Paths:
--------------
code/stage/trunk/libstage/canvas.cc
code/stage/trunk/worlds/fasr.world
Modified: code/stage/trunk/libstage/canvas.cc
===================================================================
--- code/stage/trunk/libstage/canvas.cc 2008-06-30 07:59:07 UTC (rev 6713)
+++ code/stage/trunk/libstage/canvas.cc 2008-06-30 08:22:54 UTC (rev 6714)
@@ -624,7 +624,7 @@
int width = viewport[2];//w();
int height = viewport[3];//;;h();
- int depth = 3; // RGB
+ int depth = 4; // RGBA
// printf( "VP: %d %d %d %d WIN %d %d\n",
// viewport[0],
@@ -639,8 +639,13 @@
glFlush(); // make sure the drawing is done
// read the pixels from the screen
//glReadPixels( viewport[0], viewport[1], width, height, GL_RGB,
GL_UNSIGNED_BYTE, pixels );
- glReadPixels( 0,0, width, height, GL_RGB, GL_UNSIGNED_BYTE, pixels );
+ glReadPixels( 0,0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, pixels );
+ // force the alpha channel to be maximum
+ for( int i=0; i<height; i++ )
+ for( int j=0; j<width; j++ )
+ pixels[ ((i * width + j) * depth)+3] = 0xFF;
+
static uint32_t count = 0;
char filename[64];
snprintf( filename, 63, "stage-%d.png", count++ );
@@ -668,11 +673,13 @@
//png_set_compression_level(pp, Z_DEFAULT_COMPRESSION);
png_set_IHDR( pp, info,
width, height, 8,
- PNG_COLOR_TYPE_RGB,
+ PNG_COLOR_TYPE_RGBA,
PNG_INTERLACE_NONE,
PNG_COMPRESSION_TYPE_DEFAULT,
PNG_FILTER_TYPE_DEFAULT);
+ png_set_strip_alpha(pp);
+
png_write_png( pp, info, PNG_TRANSFORM_IDENTITY, NULL );
png_destroy_write_struct(&pp, &info);
Modified: code/stage/trunk/worlds/fasr.world
===================================================================
--- code/stage/trunk/worlds/fasr.world 2008-06-30 07:59:07 UTC (rev 6713)
+++ code/stage/trunk/worlds/fasr.world 2008-06-30 08:22:54 UTC (rev 6714)
@@ -21,7 +21,7 @@
# configure the GUI window
window
(
- size [ 280.000 480.000 ]
+ size [ 641.000 480.000 ]
center [-0.294 0.114]
rotate [ -52.500 -18.500 ]
scale 27.525
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit