mirror of
https://github.com/dborth/snes9xgx.git
synced 2024-11-01 00:15:14 +01:00
for some reason memcpy won't work but GX_CopyTex does?
This commit is contained in:
parent
bb2c829be2
commit
403d4cefc1
@ -868,21 +868,24 @@ setGFX ()
|
||||
*/
|
||||
void TakeScreenshot()
|
||||
{
|
||||
int texSize = vmode->fbWidth * vmode->efbHeight * 4;
|
||||
|
||||
if(gameScreenTex) free(gameScreenTex);
|
||||
gameScreenTex = (u8 *)memalign(32, vmode->fbWidth * vmode->efbHeight * 4);
|
||||
gameScreenTex = (u8 *)memalign(32, texSize);
|
||||
if(gameScreenTex == NULL) return;
|
||||
GX_SetTexCopySrc(0, 0, vmode->fbWidth, vmode->efbHeight);
|
||||
GX_SetTexCopyDst(vmode->fbWidth, vmode->efbHeight, GX_TF_RGBA8, GX_FALSE);
|
||||
GX_CopyTex(gameScreenTex, GX_FALSE);
|
||||
GX_PixModeSync();
|
||||
DCFlushRange(gameScreenTex, vmode->fbWidth * vmode->efbHeight * 4);
|
||||
DCFlushRange(gameScreenTex, texSize);
|
||||
|
||||
#ifdef HW_RVL
|
||||
if(gameScreenTex2) free(gameScreenTex2);
|
||||
gameScreenTex2 = (u8 *)memalign(32, vmode->fbWidth * vmode->efbHeight * 4);
|
||||
gameScreenTex2 = (u8 *)memalign(32, texSize);
|
||||
if(gameScreenTex2 == NULL) return;
|
||||
memcpy(gameScreenTex2, gameScreenTex, vmode->fbWidth * vmode->efbHeight * 4);
|
||||
DCFlushRange(gameScreenTex2, vmode->fbWidth * vmode->efbHeight * 4);
|
||||
GX_CopyTex(gameScreenTex2, GX_FALSE);
|
||||
GX_PixModeSync();
|
||||
DCFlushRange(gameScreenTex2, texSize);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user