Alpha Pngs and double buffer March 11, 2010 07:41PM | Registered: 14 years ago Posts: 25 |
Re: Alpha Pngs and double buffer March 11, 2010 08:51PM | Registered: 15 years ago Posts: 175 |
Re: Alpha Pngs and double buffer March 11, 2010 10:22PM | Registered: 15 years ago Posts: 62 |
Re: Alpha Pngs and double buffer March 12, 2010 08:36PM | Registered: 14 years ago Posts: 25 |
Re: Alpha Pngs and double buffer March 12, 2010 09:12PM | Registered: 15 years ago Posts: 175 |
// allocate 2 framebuffers for double buffering frameBuffer[0] = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode)); frameBuffer[1] = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));I did not told you to use GRRLIB, but to look at how GRRLIB is using PNGU.
Re: Alpha Pngs and double buffer March 12, 2010 11:17PM | Registered: 14 years ago Posts: 25 |
#include#include #include #include #include #include #include #include #include #define DEFAULT_FIFO_SIZE (256*1024) static void *xfb[2] = { NULL, NULL}; static GXRModeObj *rmode; PNGUPROP imgProp; IMGCTX ctx; GXTexObj texObj; u32 fb; u32 first_frame; f32 yscale; u32 xfbHeight; Mtx44 perspective; Mtx GXmodelView2D; void *gp_fifo = NULL; GXColor background = {0, 0, 0, 0xff}; int i; void Init() { VIDEO_Init(); fatInitDefault(); rmode = VIDEO_GetPreferredMode(NULL); fb = 0; first_frame = 1; xfb[0] = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode)); xfb[1] = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode)); VIDEO_Configure(rmode); VIDEO_SetNextFramebuffer(xfb[fb]); VIDEO_SetBlack(FALSE); VIDEO_Flush(); VIDEO_WaitVSync(); if(rmode->viTVMode&VI_NON_INTERLACE) VIDEO_WaitVSync(); fb ^= 1; gp_fifo = memalign(32,DEFAULT_FIFO_SIZE); memset(gp_fifo,0,DEFAULT_FIFO_SIZE); GX_Init(gp_fifo,DEFAULT_FIFO_SIZE); GX_SetCopyClear(background, 0x00ffffff); GX_SetViewport(0,0,rmode->fbWidth,rmode->efbHeight,0,1); yscale = GX_GetYScaleFactor(rmode->efbHeight,rmode->xfbHeight); xfbHeight = GX_SetDispCopyYScale(yscale); GX_SetScissor(0,0,rmode->fbWidth,rmode->efbHeight); GX_SetDispCopySrc(0,0,rmode->fbWidth,rmode->efbHeight); GX_SetDispCopyDst(rmode->fbWidth,xfbHeight); GX_SetCopyFilter(rmode->aa,rmode->sample_pattern,GX_TRUE,rmode->vfilter); GX_SetFieldMode(rmode->field_rendering,((rmode->viHeight==2*rmode->xfbHeight)?GX_ENABLE:GX_DISABLE)); if (rmode->aa) GX_SetPixelFmt(GX_PF_RGB565_Z16, GX_ZC_LINEAR); else GX_SetPixelFmt(GX_PF_RGB8_Z24, GX_ZC_LINEAR); GX_SetCullMode(GX_CULL_NONE); GX_CopyDisp(xfb[fb],GX_TRUE); GX_SetDispCopyGamma(GX_GM_1_0); GX_SetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_F32, 0); GX_SetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); GX_SetNumChans(1); GX_SetNumTexGens(1); GX_SetTevOp(GX_TEVSTAGE0, GX_REPLACE); GX_SetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); GX_SetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY); GX_InvalidateTexAll(); } void InitWhile() { WPAD_ScanPads(); if (WPAD_ButtonsDown(0) & WPAD_BUTTON_HOME) exit(0); GX_SetViewport(0,0,rmode->fbWidth,rmode->efbHeight,0,1); GX_InvVtxCache(); GX_InvalidateTexAll(); GX_ClearVtxDesc(); GX_SetVtxDesc(GX_VA_POS, GX_DIRECT); GX_SetVtxDesc(GX_VA_TEX0, GX_DIRECT); guMtxIdentity(GXmodelView2D); guMtxTransApply (GXmodelView2D, GXmodelView2D, 0.0F, 0.0F, -5.0F); GX_LoadPosMtxImm(GXmodelView2D,GX_PNMTX0); } void CloseWhile() { GX_DrawDone(); GX_SetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); GX_SetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_CLEAR); GX_SetAlphaUpdate(GX_TRUE); GX_SetColorUpdate(GX_TRUE); GX_CopyDisp(xfb[fb],GX_TRUE); VIDEO_SetNextFramebuffer(xfb[fb]); if(first_frame) { VIDEO_SetBlack(FALSE); first_frame = 0; } VIDEO_Flush(); VIDEO_WaitVSync(); fb ^= 1; } int main() { Init(); while(1) { InitWhile(); printf("Probando"); CloseWhile(); } return 0; }
Re: Alpha Pngs and double buffer March 13, 2010 01:03AM | Registered: 15 years ago Posts: 175 |
I guess this is normal since you did not initialize the console with console_init.Quote
the_marioga
It don't work a simple printf
Re: Alpha Pngs and double buffer March 13, 2010 04:40PM | Registered: 14 years ago Posts: 25 |
Re: Alpha Pngs and double buffer March 15, 2010 04:04PM | Registered: 14 years ago Posts: 25 |