mirror of
https://github.com/GRRLIB/GRRLIB.git
synced 2024-12-23 02:39:19 +00:00
[CHG] Remove the "trash" occurence to a clean way to clear EFB
This commit is contained in:
parent
8ede687af8
commit
bf8a78ffac
3 changed files with 5 additions and 13 deletions
|
@ -161,8 +161,6 @@ int GRRLIB_Init (void) {
|
|||
// Initialise the filing system
|
||||
if (!fatInitDefault()) error_code = -2;
|
||||
|
||||
TrashTex = memalign(32, rmode->fbWidth * rmode->efbHeight * 4);
|
||||
|
||||
VIDEO_SetBlack(false); // Enable video output
|
||||
return error_code;
|
||||
}
|
||||
|
@ -191,8 +189,6 @@ void GRRLIB_Exit (void) {
|
|||
GX_DrawDone();
|
||||
GX_AbortFrame();
|
||||
|
||||
// free the temp Texture (allocated for compositing)
|
||||
free(TrashTex);
|
||||
// Free up memory allocated for frame buffers & FIFOs
|
||||
if (xfb[0] != NULL) { free(MEM_K1_TO_K0(xfb[0])); xfb[0] = NULL; }
|
||||
if (xfb[1] != NULL) { free(MEM_K1_TO_K0(xfb[1])); xfb[1] = NULL; }
|
||||
|
|
|
@ -27,15 +27,17 @@ THE SOFTWARE.
|
|||
* @param posx top left corner of the grabbed part.
|
||||
* @param posy top left corner of the grabbed part.
|
||||
* @param tex A pointer to a texture representing the screen or NULL if an error occurs.
|
||||
* @param clear When this flag is set to true, the grabbed part is cleared while copying.
|
||||
* @param clear When this flag is set to true, the screen is cleared after copy.
|
||||
*/
|
||||
void GRRLIB_Screen2Texture (int posx, int posy, GRRLIB_texImg *tex, bool clear) {
|
||||
if(tex->data != NULL) {
|
||||
GX_SetTexCopySrc(posx, posy, tex->w, tex->h);
|
||||
GX_SetTexCopyDst(tex->w, tex->h, GX_TF_RGBA8, GX_FALSE);
|
||||
GX_CopyTex(tex->data, clear);
|
||||
GX_CopyTex(tex->data, GX_FALSE);
|
||||
GX_PixModeSync();
|
||||
GRRLIB_FlushTex(tex);
|
||||
if(clear)
|
||||
GX_CopyDisp (xfb[!fb], GX_TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -57,12 +59,7 @@ void GRRLIB_CompoStart (void) {
|
|||
* @param tex A pointer to a texture representing the screen or NULL if an error occurs.
|
||||
*/
|
||||
void GRRLIB_CompoEnd(int posx, int posy, GRRLIB_texImg *tex) {
|
||||
GRRLIB_Screen2Texture(posx, posy, tex, FALSE);
|
||||
|
||||
GX_SetTexCopySrc(0, 0, rmode->fbWidth, rmode->efbHeight);
|
||||
GX_SetTexCopyDst(rmode->fbWidth, rmode->efbHeight, GX_TF_RGBA8, GX_FALSE);
|
||||
GX_CopyTex(TrashTex, GX_TRUE);
|
||||
GX_PixModeSync();
|
||||
GRRLIB_Screen2Texture(posx, posy, tex, GX_TRUE);
|
||||
|
||||
if (rmode->aa) GX_SetPixelFmt(GX_PF_RGB565_Z16, GX_ZC_LINEAR) ;
|
||||
else GX_SetPixelFmt(GX_PF_RGB8_Z24 , GX_ZC_LINEAR) ;
|
||||
|
|
|
@ -202,7 +202,6 @@ typedef struct tagRGBQUAD {
|
|||
GRR_EXTERN GXRModeObj *rmode;
|
||||
GRR_EXTERN void *xfb[2] GRR_INITS(NULL, NULL);
|
||||
GRR_EXTERN u32 fb GRR_INIT(0);
|
||||
GRR_EXTERN void *TrashTex;
|
||||
//==============================================================================
|
||||
// procedure and function prototypes
|
||||
// Inline function handling - http://www.greenend.org.uk/rjk/2003/03/inline.html
|
||||
|
|
Loading…
Reference in a new issue