void grlib_Init (void) { memset (&grlibSettings, 0, sizeof (s_grlibSettings)); grlibSettings.wiiswitch_poweroff = false; grlibSettings.wiiswitch_reset = false; // Initialise the Wiimotes & Gamecube PAD_Init(); WPAD_Init(); WPAD_SetDataFormat(WPAD_CHAN_0, WPAD_FMT_BTNS_ACC_IR); VIDEO_Init(); VIDEO_SetBlack(true); // Disable video output during initialisation VIDEO_WaitVSync(); VIDEO_WaitVSync(); GRRLIB_Init(1,0); WPAD_SetVRes(0, 640, 480); WPAD_SetPowerButtonCallback( wmpower_cb ); SYS_SetPowerCallback (power_cb); SYS_SetResetCallback (reset_cb); redrawTex = GRRLIB_CreateEmptyTexture (rmode->fbWidth, rmode->efbHeight); popPushTex = GRRLIB_CreateEmptyTexture (rmode->fbWidth, rmode->efbHeight); grlibSettings.RedrawCallback = NULL; grlibSettings.pointer[0] = NULL; grlibSettings.pointer[1] = NULL; grlibSettings.pointer[2] = NULL; grlibSettings.pointer[3] = NULL; }
GRRLIB_texImg * grlib_CreateTexFromTex (GRRLIB_texImg *source) { GRRLIB_texImg * tex; GRRLIB_SetAntiAliasing (FALSE); if (source == NULL) source = redrawTex; //return NULL; tex = GRRLIB_CreateEmptyTexture (source->w, source->h); if (tex == NULL) return NULL; memcpy (tex->data, source->data, source->w * source->h * 4); GRRLIB_FlushTex (tex); return tex; }
int main() { float rot=0; float i; int circsize=150; char text[]="GRRLIB ROXX "; GRRLIB_Init(); PAD_Init(); GRRLIB_texImg *tex_font = GRRLIB_LoadTexture(font3d); GRRLIB_InitTileSet(tex_font, 64, 64, 32); GRRLIB_SetHandle (tex_font, tex_font->tilew/2, tex_font->tileh+circsize); GRRLIB_texImg *tex_screen; tex_screen = GRRLIB_CreateEmptyTexture(rmode->fbWidth,rmode->efbHeight); GRRLIB_Settings.antialias = true; while(1) { PAD_ScanPads(); if(PAD_ButtonsDown(0) & PAD_BUTTON_START) exit(0); // we say thant we will want to capture to a texture all the following GRRLIB_CompoStart(); for(i=0;i<360;i+=30) { // We draw some letters GRRLIB_DrawTile((rmode->fbWidth/2)-(tex_font->tilew/2), (rmode->efbHeight/2)-(tex_font->tileh+circsize), tex_font, rot+i, 1, 1, 0xFFFFFFFF, text[(int)(i/30)]-32); } // we say we want to capture now, (the buffer will be cleared after the capture) GRRLIB_CompoEnd(0, 0, tex_screen); rot-=0.6; // we now draw 3 times the captured buffer playing with color GRRLIB_DrawImg(0, 0, tex_screen, 0, 1, 1, 0xFF00FFFF); GRRLIB_DrawImg(50, 50, tex_screen, 0, 1, 1, 0xFFFF00FF); GRRLIB_DrawImg(100, 100, tex_screen, 0, 1, 1, 0xFFFFFFFF); GRRLIB_Render(); } GRRLIB_FreeTexture(tex_screen); GRRLIB_FreeTexture(tex_font); GRRLIB_Exit(); // Be a good boy, clear the memory allocated by GRRLIB exit(0); }
int main() { u32 paddown; s8 page = 0; // Font texture GRRLIB_texImg *text_font1 = GRRLIB_LoadTexture(font1); GRRLIB_InitTileSet(text_font1, 32, 36, 32); // Load the original texture and create empty texture of the same size as the original one GRRLIB_texImg *tex_pirate = GRRLIB_LoadTexture(pirate); GRRLIB_texImg *tex_gray = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_sepia = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_invert = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_blur1 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_blur2 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_blur3 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_blur4 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_blur5 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_blur6 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_pixel1 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_pixel2 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_pixel3 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_pixel4 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_pixel5 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_pixel6 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_scatter1 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_scatter2 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_scatter3 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_scatter4 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_scatter5 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_scatter6 = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_fliph = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_flipv = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); GRRLIB_texImg *tex_fliphv = GRRLIB_CreateEmptyTexture(tex_pirate->w, tex_pirate->h); // Let's precalculate the grayscale texture GRRLIB_BMFX_Grayscale(tex_pirate, tex_gray); GRRLIB_FlushTex(tex_gray); // Let's precalculate the sepia texture GRRLIB_BMFX_Sepia(tex_pirate, tex_sepia); GRRLIB_FlushTex(tex_sepia); // Let's precalculate the inverted color texture GRRLIB_BMFX_Invert(tex_pirate, tex_invert); GRRLIB_FlushTex(tex_invert); // Let's precalculate 6 differents blur texture with 6 differents blur factor GRRLIB_BMFX_Blur(tex_pirate, tex_blur1, 1); GRRLIB_FlushTex(tex_blur1); GRRLIB_BMFX_Blur(tex_pirate, tex_blur2, 2); GRRLIB_FlushTex(tex_blur2); GRRLIB_BMFX_Blur(tex_pirate, tex_blur3, 3); GRRLIB_FlushTex(tex_blur3); GRRLIB_BMFX_Blur(tex_pirate, tex_blur4, 4); GRRLIB_FlushTex(tex_blur4); GRRLIB_BMFX_Blur(tex_pirate, tex_blur5, 5); GRRLIB_FlushTex(tex_blur5); GRRLIB_BMFX_Blur(tex_pirate, tex_blur6, 6); GRRLIB_FlushTex(tex_blur6); // Let's precalculate 6 differents pixelate texture with 6 differents pixelate factor GRRLIB_BMFX_Pixelate(tex_pirate, tex_pixel1, 1); GRRLIB_FlushTex(tex_pixel1); GRRLIB_BMFX_Pixelate(tex_pirate, tex_pixel2, 2); GRRLIB_FlushTex(tex_pixel2); GRRLIB_BMFX_Pixelate(tex_pirate, tex_pixel3, 3); GRRLIB_FlushTex(tex_pixel3); GRRLIB_BMFX_Pixelate(tex_pirate, tex_pixel4, 4); GRRLIB_FlushTex(tex_pixel4); GRRLIB_BMFX_Pixelate(tex_pirate, tex_pixel5, 5); GRRLIB_FlushTex(tex_pixel5); GRRLIB_BMFX_Pixelate(tex_pirate, tex_pixel6, 6); GRRLIB_FlushTex(tex_pixel6); // Let's precalculate 6 differents pixelate texture with 6 differents pixelate factor GRRLIB_BMFX_Scatter(tex_pirate, tex_scatter1, 2); GRRLIB_FlushTex(tex_pixel1); GRRLIB_BMFX_Scatter(tex_pirate, tex_scatter2, 4); GRRLIB_FlushTex(tex_pixel2); GRRLIB_BMFX_Scatter(tex_pirate, tex_scatter3, 6); GRRLIB_FlushTex(tex_pixel3); GRRLIB_BMFX_Scatter(tex_pirate, tex_scatter4, 8); GRRLIB_FlushTex(tex_pixel4); GRRLIB_BMFX_Scatter(tex_pirate, tex_scatter5, 10); GRRLIB_FlushTex(tex_pixel5); GRRLIB_BMFX_Scatter(tex_pirate, tex_scatter6, 12); GRRLIB_FlushTex(tex_pixel6); // Let's precalculate for flipping the texture GRRLIB_BMFX_FlipH(tex_pirate, tex_fliph); GRRLIB_FlushTex(tex_fliph); GRRLIB_BMFX_FlipV(tex_pirate, tex_flipv); GRRLIB_FlushTex(tex_flipv); GRRLIB_BMFX_FlipV(tex_fliph, tex_fliphv); GRRLIB_FlushTex(tex_fliphv); GRRLIB_Init(); PAD_Init(); while(1) { PAD_ScanPads(); paddown = PAD_ButtonsDown(0); GRRLIB_FillScreen(0xFFFFFFFF); switch(page) { case 1: GRRLIB_Printf(10, 10, text_font1, 0X000000FF, 1, "GRAYSCALE FX"); GRRLIB_DrawImg(10, 60, tex_pirate, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*1, 60, tex_gray, 0, 1, 1, 0xFFFFFFFF); break; case 2: GRRLIB_Printf(10, 10, text_font1, 0X000000FF, 1, "SEPIA FX"); GRRLIB_DrawImg(10, 60, tex_pirate, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*1, 60, tex_sepia, 0, 1, 1, 0xFFFFFFFF); break; case 3: GRRLIB_Printf(10, 10, text_font1, 0X000000FF, 1, "INVERT FX"); GRRLIB_DrawImg(10, 60, tex_pirate, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*1, 60, tex_invert, 0, 1, 1, 0xFFFFFFFF); break; case 4: GRRLIB_Printf(10, 10, text_font1, 0X000000FF, 1, "FLIPH AND FLIPV FX"); GRRLIB_DrawImg(10, 60, tex_pirate, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*1, 60, tex_fliph, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*2, 60, tex_flipv, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*3, 60, tex_fliphv, 0, 1, 1, 0xFFFFFFFF); break; case 5: GRRLIB_Printf(10, 10, text_font1, 0X000000FF, 1, "BLUR FX"); GRRLIB_DrawImg(10, 60, tex_pirate, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*1, 60, tex_blur1, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*2, 60, tex_blur2, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*3, 60, tex_blur3, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10, 60+tex_pirate->h*1, tex_blur4, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*1, 60+tex_pirate->h*1, tex_blur5, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*2, 60+tex_pirate->h*1, tex_blur6, 0, 1, 1, 0xFFFFFFFF); break; case 6: GRRLIB_Printf(10, 10, text_font1, 0X000000FF, 1, "PIXELATE FX"); GRRLIB_DrawImg(10, 60, tex_pirate, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*1, 60, tex_pixel1, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*2, 60, tex_pixel2, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*3, 60, tex_pixel3, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10, 60+tex_pirate->h*1, tex_pixel4, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*1, 60+tex_pirate->h*1, tex_pixel5, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*2, 60+tex_pirate->h*1, tex_pixel6, 0, 1, 1, 0xFFFFFFFF); break; case 7: GRRLIB_Printf(10, 10, text_font1, 0X000000FF, 1, "SCATTER FX"); GRRLIB_DrawImg(10, 60, tex_pirate, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*1, 60, tex_scatter1, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*2, 60, tex_scatter2, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*3, 60, tex_scatter3, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10, 60+tex_pirate->h*1, tex_scatter4, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*1, 60+tex_pirate->h*1, tex_scatter5, 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(10+tex_pirate->w*2, 60+tex_pirate->h*1, tex_scatter6, 0, 1, 1, 0xFFFFFFFF); break; default: GRRLIB_Printf(10, 10, text_font1, 0X000000FF, 1, "WELCOME TO THE"); GRRLIB_Printf(10, 40, text_font1, 0X000000FF, 1, "GRRLIB FX DEMO."); GRRLIB_Printf(10, 80, text_font1, 0X000000FF, 1, "TO QUIT PRESS THE"); GRRLIB_Printf(10, 120, text_font1, 0X000000FF, 1, "HOME BUTTON."); GRRLIB_Printf(10, 160, text_font1, 0X000000FF, 1, "USE + OR - TO MOVE"); GRRLIB_Printf(10, 200, text_font1, 0X000000FF, 1, "ACROSS PAGES."); } GRRLIB_Render(); if(paddown & PAD_BUTTON_START) { break; } if(paddown & PAD_BUTTON_X) { page--; if(page < 0) page = 7; } if(paddown & PAD_BUTTON_Y) { page++; if(page > 7) page = 0; } } GRRLIB_FreeTexture(tex_pirate); GRRLIB_FreeTexture(tex_gray); GRRLIB_FreeTexture(tex_sepia); GRRLIB_FreeTexture(tex_invert); GRRLIB_FreeTexture(tex_fliph); GRRLIB_FreeTexture(tex_flipv); GRRLIB_FreeTexture(tex_fliphv); GRRLIB_FreeTexture(tex_blur1); GRRLIB_FreeTexture(tex_blur2); GRRLIB_FreeTexture(tex_blur3); GRRLIB_FreeTexture(tex_blur4); GRRLIB_FreeTexture(tex_blur5); GRRLIB_FreeTexture(tex_blur6); GRRLIB_FreeTexture(tex_pixel1); GRRLIB_FreeTexture(tex_pixel2); GRRLIB_FreeTexture(tex_pixel3); GRRLIB_FreeTexture(tex_pixel4); GRRLIB_FreeTexture(tex_pixel5); GRRLIB_FreeTexture(tex_pixel6); GRRLIB_FreeTexture(tex_scatter1); GRRLIB_FreeTexture(tex_scatter2); GRRLIB_FreeTexture(tex_scatter3); GRRLIB_FreeTexture(tex_scatter4); GRRLIB_FreeTexture(tex_scatter5); GRRLIB_FreeTexture(tex_scatter6); GRRLIB_Exit(); // Be a good boy, clear the memory allocated by GRRLIB return 0; }
int main() { int startx=0, starty=0; int x=0, y=0; int dirx=0, diry=0; int cptx=0, cpty=0; int bgx=-32, bgy=-32; float idperso=0; int i=0; float sinnonameno=0, oldsinnonameno=0; float camZ=1400.0f; float a=0; GRRLIB_Init(); GRRLIB_Settings.antialias = false; WPAD_Init(); GRRLIB_ClipDrawing(0,0,rmode->fbWidth,rmode->efbHeight); GRRLIB_texImg *tex_tile1 = GRRLIB_LoadTexture(tile1); GRRLIB_InitTileSet(tex_tile1, TileMap1Width, TileMap1Height, 0); GRRLIB_texImg *tex_perso = GRRLIB_LoadTexture(perso); GRRLIB_InitTileSet(tex_perso, 64, 64, 0); GRRLIB_texImg *tex_bg = GRRLIB_LoadTexture(bg); GRRLIB_texImg *tex_nonameno = GRRLIB_LoadTexture(nonameno); GRRLIB_InitTileSet(tex_nonameno, 32, 32, 0); GRRLIB_texImg *tex_screen = GRRLIB_CreateEmptyTexture(rmode->fbWidth, rmode->efbHeight); GRRLIB_SetBackgroundColour(0x00, 0x00, 0x00, 0xFF); while(1) { GRRLIB_2dMode(); WPAD_ScanPads(); if (WPAD_ButtonsDown(0) & WPAD_BUTTON_HOME) break; if (WPAD_ButtonsHeld(0) & WPAD_BUTTON_PLUS) camZ+=20.0f; if (WPAD_ButtonsHeld(0) & WPAD_BUTTON_MINUS) camZ-=20.0f; if((dirx==0) && (diry==0)) { if (WPAD_ButtonsHeld(0) & WPAD_BUTTON_LEFT) { diry=-4; idperso=15;} else if (WPAD_ButtonsHeld(0) & WPAD_BUTTON_RIGHT) { diry=4; idperso=15;} else if (WPAD_ButtonsHeld(0) & WPAD_BUTTON_DOWN) { dirx=-4 ; idperso=1;} else if (WPAD_ButtonsHeld(0) & WPAD_BUTTON_UP) { dirx=4 ; idperso=8;} } if((dirx==0) && (diry==0)) { idperso=0; } if(((Map1Info[9+starty][10+startx]==1) || (Map1Info[9+starty][11+startx]==1)) || ((Map1Info[9+starty][10+startx]==43521) || (Map1Info[9+starty][11+startx]==43521))) { } else{ dirx=0; diry=-4; } if(dirx<0) { if((Map1Info[7+starty][12+startx]==8) || (Map1Info[7+starty][12+startx]==2) || (Map1Info[8+starty][12+startx]==8) || (Map1Info[8+starty][12+startx]==2)) { dirx=0; } else { idperso++; if(idperso>7) idperso=1; } } if(dirx>0) { if((Map1Info[7+starty][9+startx]==8) || (Map1Info[7+starty][9+startx]==2) || (Map1Info[8+starty][9+startx]==8) || (Map1Info[8+starty][9+startx]==2)) { dirx=0; } else { idperso++; if(idperso>14) idperso=8; } } if(diry<0) { if((Map1Info[9+starty][10+startx]==1) || (Map1Info[9+starty][11+startx]==1)) { diry=0; } } if(diry!=0) { idperso++; if(idperso>22) idperso=16; } cptx+=dirx; if(dirx>0) bgx++; else if(dirx<0) bgx--; if((bgx>-1) || (bgx<-63)) bgx=-32; if(cptx==32) { cptx=0; dirx=0; startx--; } else if(cptx==-32) { cptx=0; dirx=0; startx++; } cpty+=diry; if(diry>0) bgy++; else if(diry<0) bgy--; if((bgy>-1) ||(bgy<-63)) bgy=-32; if(cpty==32) { cpty=0; diry=0; starty--; } else if(cpty==-32) { cpty=0; if(((Map1Info[9+starty][10+startx]==1) || (Map1Info[9+starty][11+startx]==1)) || ((Map1Info[9+starty][10+startx]==43521) || (Map1Info[9+starty][11+startx]==43521))) { diry=0; } starty++; } GRRLIB_DrawImg(bgx, bgy, tex_bg, 0, 1, 1, 0xFFFFFFFF); for(y=0;y<=(17);y++) { for(x=0;x<=(21);x++) { if(Map1Data[y+starty][x+startx] != 0) { GRRLIB_DrawTile(x*TileMap1Width+cptx-TileMap1Width,y*TileMap1Height+cpty-TileMap1Height,tex_tile1,0,1,1,0xFFFFFFFF,Map1Data[y+starty][x+startx]-1); } } } GRRLIB_DrawTile(TileMap1Width*9,TileMap1Height*6,tex_perso,0,1,1,0xFFFFFFFF,(int)idperso); oldsinnonameno=sinnonameno; for(i=0; i<8; i++) { GRRLIB_DrawTile(TileMap1Width*(6+i),(TileMap1Height*10)+sin(sinnonameno)*64,tex_nonameno,0,1,1,0xFFFFFFFF,i); sinnonameno+=0.4F; } sinnonameno=oldsinnonameno+0.08F; GRRLIB_Screen2Texture(0, 0, tex_screen, GX_TRUE); GRRLIB_Camera3dSettings(0.0f,0.0f,camZ, 0,1,0, 0,0,0); GRRLIB_3dMode(0.1,3000,45,1,0); GRRLIB_SetTexture(tex_screen,0); GRRLIB_ObjectView(0,0,0, a,a*2,a*3,1,1,1); GX_Begin(GX_QUADS, GX_VTXFMT0, 16); GX_Position3f32(-rmode->fbWidth/2,rmode->efbHeight/2,rmode->fbWidth/2); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,0.0f); GX_Position3f32(rmode->fbWidth/2,rmode->efbHeight/2,rmode->fbWidth/2); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,0.0f); GX_Position3f32(rmode->fbWidth/2,-rmode->efbHeight/2,rmode->fbWidth/2); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,1.0f); GX_Position3f32(-rmode->fbWidth/2,-rmode->efbHeight/2,rmode->fbWidth/2); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,1.0f); GX_Position3f32(rmode->fbWidth/2,rmode->efbHeight/2,-rmode->fbWidth/2); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,0.0f); GX_Position3f32(-rmode->fbWidth/2,rmode->efbHeight/2,-rmode->fbWidth/2); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,0.0f); GX_Position3f32(-rmode->fbWidth/2,-rmode->efbHeight/2,-rmode->fbWidth/2); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,1.0f); GX_Position3f32(rmode->fbWidth/2,-rmode->efbHeight/2,-rmode->fbWidth/2); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,1.0f); GX_Position3f32(rmode->fbWidth/2,rmode->efbHeight/2,rmode->fbWidth/2); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,0.0f); GX_Position3f32(rmode->fbWidth/2,rmode->efbHeight/2,-rmode->fbWidth/2); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,0.0f); GX_Position3f32(rmode->fbWidth/2,-rmode->efbHeight/2,-rmode->fbWidth/2); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,1.0f); GX_Position3f32(rmode->fbWidth/2,-rmode->efbHeight/2,rmode->fbWidth/2); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,1.0f); GX_Position3f32(-rmode->fbWidth/2,rmode->efbHeight/2,-rmode->fbWidth/2); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,0.0f); GX_Position3f32(-rmode->fbWidth/2,rmode->efbHeight/2,rmode->fbWidth/2); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,0.0f); GX_Position3f32(-rmode->fbWidth/2,-rmode->efbHeight/2,rmode->fbWidth/2); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,1.0f); GX_Position3f32(-rmode->fbWidth/2,-rmode->efbHeight/2,-rmode->fbWidth/2); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,1.0f); GX_End(); a+=0.2f; GRRLIB_Render(); } GRRLIB_FreeTexture(tex_tile1); GRRLIB_FreeTexture(tex_perso); GRRLIB_FreeTexture(tex_bg); GRRLIB_FreeTexture(tex_nonameno); GRRLIB_FreeTexture(tex_screen); GRRLIB_Exit(); exit(0); }
int main() { float a=0; int cubeZ=5; int i=0; float sinx=0, oldsinx=0; GRRLIB_Init(); WPAD_Init(); GRRLIB_texImg *tex_screen = GRRLIB_CreateEmptyTexture(rmode->fbWidth,rmode->efbHeight); GRRLIB_InitTileSet(tex_screen, rmode->fbWidth, 1, 0); GRRLIB_texImg *tex_girl= GRRLIB_LoadTexture(girl); GRRLIB_texImg *tex_font = GRRLIB_LoadTexture(font); GRRLIB_InitTileSet(tex_font, 16, 16, 32); GRRLIB_Settings.antialias = true; GRRLIB_SetBackgroundColour(0x00, 0x00, 0x00, 0xFF); GRRLIB_Camera3dSettings(0.0f,0.0f,13.0f, 0,1,0, 0,0,0); while(1) { GRRLIB_2dMode(); WPAD_ScanPads(); if(WPAD_ButtonsDown(0) & WPAD_BUTTON_HOME) exit(0); if(WPAD_ButtonsHeld(0) & WPAD_BUTTON_A) cubeZ++; if(WPAD_ButtonsHeld(0) & WPAD_BUTTON_B) cubeZ--; GRRLIB_3dMode(0.1,1000,45,1,0); GRRLIB_SetTexture(tex_girl,0); GRRLIB_ObjectView(0,0,cubeZ, a,a*2,a*3,1,1,1); GX_Begin(GX_QUADS, GX_VTXFMT0, 24); GX_Position3f32(-1.0f,1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,0.0f); GX_Position3f32(1.0f,1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,0.0f); GX_Position3f32(1.0f,-1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,1.0f); GX_Position3f32(-1.0f,-1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,1.0f); GX_Position3f32(1.0f,1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,0.0f); GX_Position3f32(-1.0f,1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,0.0f); GX_Position3f32(-1.0f,-1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,1.0f); GX_Position3f32(1.0f,-1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,1.0f); GX_Position3f32(1.0f,1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,0.0f); GX_Position3f32(1.0f,1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,0.0f); GX_Position3f32(1.0f,-1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,1.0f); GX_Position3f32(1.0f,-1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,1.0f); GX_Position3f32(-1.0f,1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,0.0f); GX_Position3f32(-1.0f,1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,0.0f); GX_Position3f32(-1.0f,-1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,1.0f); GX_Position3f32(-1.0f,-1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,1.0f); GX_Position3f32(-1.0f,1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,0.0f); GX_Position3f32(1.0f,1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,0.0f); GX_Position3f32(1.0f,1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,1.0f); GX_Position3f32(-1.0f,1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,1.0f); GX_Position3f32(1.0f,-1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,0.0f); GX_Position3f32(-1.0f,-1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,0.0f); GX_Position3f32(-1.0f,-1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,1.0f); GX_Position3f32(1.0f,-1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,1.0f); GX_End(); GRRLIB_Screen2Texture(0,0,tex_screen,1); a+=0.5f; // Switch To 2D Mode to display text GRRLIB_2dMode(); oldsinx=sinx; for(i=0; i<rmode->efbHeight; i++) { GRRLIB_DrawTile(0+sin(sinx)*60,i,tex_screen,0,1,1,0xFFFFFFFF,i); sinx+=0.02f; } sinx=oldsinx+0.02f; GRRLIB_Printf((640-(16*29))/2, 20, tex_font, 0xFFFFFFFF, 1, "PRESS A OR B TO ZOOM THE CUBE"); GRRLIB_Render(); } GRRLIB_FreeTexture(tex_girl); GRRLIB_FreeTexture(tex_font); GRRLIB_FreeTexture(tex_screen); GRRLIB_Exit(); // Be a good boy, clear the memory allocated by GRRLIB exit(0); }
int main() { int i; int screen_index = 0; float t=0; const int R=81; const int r=71; const int d=120; float f=0; float ff=0; float spr=0; int n=1; float a=0; float cubeZ=10.0f; float camZ=30.0f;; GRRLIB_Init(); PAD_Init(); GRRLIB_Settings.antialias = false; GRRLIB_texImg *tex_screen[9]; for(i=0; i<9; i++) { tex_screen[i] = GRRLIB_CreateEmptyTexture(rmode->fbWidth, rmode->efbHeight); } GRRLIB_texImg *tex_girl = GRRLIB_LoadTexture(girl); GRRLIB_texImg *tex_logo = GRRLIB_LoadTexture(logo); GRRLIB_texImg *tex_font = GRRLIB_LoadTexture(font); GRRLIB_InitTileSet(tex_font, 16, 16, 32); for(i=0;i<=255;i+=1) { GRRLIB_Printf((640-(16*16))/2, 200, tex_font, 0xFFFFFF00|i, 1, "HOW MANY 3D CUBE"); GRRLIB_Printf((640-(16*20))/2, 216, tex_font, 0xFFFFFF00|i, 1, "CAN YOU DISPLAY WITH"); GRRLIB_DrawImg((640-352)/2, 248, tex_logo, 0, 1, 1, 0xFFFFFF00|i); GRRLIB_Printf((640-(16*28))/2, 480-16, tex_font, 0xFFFFFF00|i, 1, "BY NONAMENO FROM GRRLIB TEAM"); GRRLIB_Render(); } for(i=255;i>=0;i-=2) { GRRLIB_Printf((640-(16*16))/2, 200, tex_font, 0xFFFFFF00|i, 1, "HOW MANY 3D CUBE"); GRRLIB_Printf((640-(16*20))/2, 216, tex_font, 0xFFFFFF00|i, 1, "CAN YOU DISPLAY WITH"); GRRLIB_DrawImg((640-352)/2, 248, tex_logo, 0, 1, 1, 0xFFFFFF00|i); GRRLIB_Printf((640-(16*28))/2, 480-16, tex_font, 0xFFFFFF00|i, 1, "BY NONAMENO FROM GRRLIB TEAM"); GRRLIB_Render(); } GRRLIB_SetBackgroundColour(0x00, 0x00, 0x00, 0xFF); while(1) { PAD_ScanPads(); GRRLIB_Camera3dSettings(0.0f,0.0f,camZ, 0,1,0, 0,0,0); GRRLIB_2dMode(); GRRLIB_DrawImg(0, 0, tex_screen[screen_index], 0, 1, 1, 0xFFFFFFFF); GRRLIB_3dMode(0.1, 1000, 45, 1, 0); GRRLIB_SetBlend(GRRLIB_BLEND_ALPHA); cubeZ+=0.02f; GRRLIB_ObjectView((float)(((R + r-ff)*cos(t-f) - d*cos(((R + r-f)/r)*t)))/20.0f,(float)(((R + r-ff)*sin(t) - d*sin(((R + r)/r)*t)-f))/20.0f,sin(cubeZ)*10, a,a*2,a*3,1,1,1); GRRLIB_SetTexture(tex_girl, 0); GX_Begin(GX_QUADS, GX_VTXFMT0, 24); GX_Position3f32(-1.0f,1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,0.0f); GX_Position3f32(1.0f,1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,0.0f); GX_Position3f32(1.0f,-1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,1.0f); GX_Position3f32(-1.0f,-1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,1.0f); GX_Position3f32(1.0f,1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,0.0f); GX_Position3f32(-1.0f,1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,0.0f); GX_Position3f32(-1.0f,-1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,1.0f); GX_Position3f32(1.0f,-1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,1.0f); GX_Position3f32(1.0f,1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,0.0f); GX_Position3f32(1.0f,1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,0.0f); GX_Position3f32(1.0f,-1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,1.0f); GX_Position3f32(1.0f,-1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,1.0f); GX_Position3f32(-1.0f,1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,0.0f); GX_Position3f32(-1.0f,1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,0.0f); GX_Position3f32(-1.0f,-1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,1.0f); GX_Position3f32(-1.0f,-1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,1.0f); GX_Position3f32(-1.0f,1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,0.0f); GX_Position3f32(1.0f,1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,0.0f); GX_Position3f32(1.0f,1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,1.0f); GX_Position3f32(-1.0f,1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,1.0f); GX_Position3f32(1.0f,-1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,0.0f); GX_Position3f32(-1.0f,-1.0f,-1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,0.0f); GX_Position3f32(-1.0f,-1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(1.0f,1.0f); GX_Position3f32(1.0f,-1.0f,1.0f); GX_Color1u32(0xFFFFFFFF); GX_TexCoord2f32(0.0f,1.0f); GX_End(); a+=0.5f; GRRLIB_2dMode(); GRRLIB_Screen2Texture(0, 0, tex_screen[screen_index], GX_FALSE); GRRLIB_Printf((640-(16*6*5))/2+5, 200+5, tex_font, 0x00000088, 5, "%06d",(int)spr); GRRLIB_Printf((640-(16*6*5))/2, 200, tex_font, 0xFFEEEE88, 5, "%06d",(int)spr); GRRLIB_Render(); screen_index++; screen_index %= 9; spr+=0.1f; t+=0.01f; if(t>n*2*M_PI) { n++; f+=0.01f; } if(f>2*M_PI) { f=0; ff+=0.02f; } if(PAD_ButtonsDown(0) & PAD_BUTTON_START) exit(0); } GRRLIB_FreeTexture(tex_logo); GRRLIB_FreeTexture(tex_girl); GRRLIB_FreeTexture(tex_font); for(i=0; i<9; i++) { GRRLIB_FreeTexture(tex_screen[i]); } GRRLIB_Exit(); // Be a good boy, clear the memory allocated by GRRLIB return 0; }
int main() { int i; int screen_index = 0; float t = 0; const int R = 81; const int r = 71; const int d = 120; float f = 0; float ff = 0; float spr = 0; int n = 1; GRRLIB_Init(); PAD_Init(); GRRLIB_Settings.antialias = false; GRRLIB_texImg *tex_screen[10]; for(i=0; i<10; i++) { tex_screen[i] = GRRLIB_CreateEmptyTexture(rmode->fbWidth, rmode->efbHeight); } GRRLIB_texImg *tex_ball = GRRLIB_LoadTexture(ball); GRRLIB_texImg *tex_logo = GRRLIB_LoadTexture(logo); GRRLIB_texImg *tex_font = GRRLIB_LoadTexture(font); GRRLIB_InitTileSet(tex_font, 16, 16, 32); for(i=0;i<=255;i+=1) { GRRLIB_Printf((640-(16*16))/2, 200, tex_font, 0xFFFFFF00|i, 1, "HOW MANY SPRITES"); GRRLIB_Printf((640-(16*20))/2, 216, tex_font, 0xFFFFFF00|i, 1, "CAN YOU DISPLAY WITH"); GRRLIB_DrawImg((640-352)/2, 248, tex_logo, 0, 1, 1, 0xFFFFFF00|i); GRRLIB_Printf((640-(16*28))/2, 480-16, tex_font, 0xFFFFFF00|i, 1, "BY NONAMENO FROM GRRLIB TEAM"); GRRLIB_Render(); } for(i=255;i>=0;i-=2) { GRRLIB_Printf((640-(16*16))/2, 200, tex_font, 0xFFFFFF00|i, 1, "HOW MANY SPRITES"); GRRLIB_Printf((640-(16*20))/2, 216, tex_font, 0xFFFFFF00|i, 1, "CAN YOU DISPLAY WITH"); GRRLIB_DrawImg((640-352)/2, 248, tex_logo, 0, 1, 1, 0xFFFFFF00|i); GRRLIB_Printf((640-(16*28))/2, 480-16, tex_font, 0xFFFFFF00|i, 1, "BY NONAMENO FROM GRRLIB TEAM"); GRRLIB_Render(); } while(1) { PAD_ScanPads(); GRRLIB_DrawImg(0, 0, tex_screen[screen_index], 0, 1, 1, 0xFFFFFFFF); GRRLIB_DrawImg(((R + r-ff)*cos(t-f) - d*cos(((R + r-f)/r)*t))+rmode->fbWidth/2-32, ((R + r-ff)*sin(t) - d*sin(((R + r)/r)*t)-f)+rmode->efbHeight/2-32, tex_ball, 1, 1, 1, 0xFFFFFFFF); GRRLIB_Screen2Texture(0, 0, tex_screen[screen_index], GX_FALSE); GRRLIB_Printf((640-(16*6*5))/2+5, 200+5, tex_font, 0x00000088, 5, "%06d",(int)spr); GRRLIB_Printf((640-(16*6*5))/2, 200, tex_font, 0xFFEEEE88, 5, "%06d",(int)spr); GRRLIB_Render(); screen_index++; screen_index %= 10; spr+=0.1f; t+=0.01f; if(t>n*2*M_PI) { n++; f+=0.01f; } if(f>2*M_PI) { f=0; ff+=0.02f; } if(PAD_ButtonsDown(0) & PAD_BUTTON_START) exit(0); } GRRLIB_FreeTexture(tex_logo); GRRLIB_FreeTexture(tex_ball); GRRLIB_FreeTexture(tex_font); for(i=0; i<10; i++) { GRRLIB_FreeTexture(tex_screen[i]); } GRRLIB_Exit(); // Be a good boy, clear the memory allocated by GRRLIB return 0; }