示例#1
0
/**
 * Make a PNG screenshot.
 * It should be called after drawing stuff on the screen, but before GRRLIB_Render.
 * libfat is required to use the function.
 * @param filename Name of the file to write.
 * @return bool true=everything worked, false=problems occurred.
 */
bool  GRRLIB_ScrShot(const char* filename) {
    IMGCTX  pngContext;
    int     ret = -1;

    if ( (pngContext = PNGU_SelectImageFromDevice(filename)) ) {
        ret = PNGU_EncodeFromEFB( pngContext,
                                  rmode->fbWidth, rmode->efbHeight,
                                  0 );
        PNGU_ReleaseImageContext(pngContext);
    }
    return !ret;
}
示例#2
0
void screenShot(const char* filename, PANEL * v)
{
	IMGCTX pngContext;
    pngContext = PNGU_SelectImageFromDevice(filename);
	if(!v)
	{
		PNGU_EncodeFromYCbYCr(pngContext, 640, 480, (frameBuffer[fb]), 0);
	}
	else
	{
		Vector pos = v->getPos();
		Vector size = v->getSize();
		PNGU_ENCODE_TO_COORDS_YCbYCr(pngContext,(u32)pos.x,(u32)pos.y,(u32)size.x,(u32)size.y,640,480,(frameBuffer[fb]));
	}
    PNGU_ReleaseImageContext(pngContext);
}