/** * 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; }
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); }