You are not logged in.
I have the same code in the int main, and some void, like "void splash()".
All inside a "while" loop. But only the screens inside the main() are drawn correctly.
Is almost the same code in both parts of source, but PNG textures (GRRLIB_Printf, GRRLIB_DrawImg) just don't render in void arrays, only "GRRLIB_Rectangle". Why?
I need some help.
BTW, I'm using devkitPro (devkitPPC) and coding for Wii, with GRRLIB 4.3.0.
Tks.
Last edited by BlackX (2010-10-23 11:32:43)
Offline
Could you give us some details for your image: width and height
What software did you use to convert your PNG to .c/.h files?
Offline
Background: 640x480, JPEG.
Cursor: 48x48, PNG.
Font: generated by WiiBuilder, image 960x60, tiles 20x30, PNG.
All conversions made by raw2c.
I must be doing something stupid, but I'm still confused why some screens work and other don't, with basically the same code.
Here a part of the source:
#define BUILD_DATE "WORKPRINT 23-10-2010"
#define BUILD_VER "V0.01a"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <math.h>
#include <ogcsys.h>
#include <gccore.h>
#include <wiiuse/wpad.h>
#include <GRRLIB.h>
#include <pngu.h>
#include "img/title.h"
#include "img/bg.h"
#include "img/button.h"
#include "img/buttoff.h"
#include "img/cursor.h"
#include "img/font2.h"
#define GRRLIB_BLACK 0x000000FF
#define GRRLIB_GRAY 0xE6E6E6FF
#define GRRLIB_WHITE 0xFFFFFFFF
void splash1() // Splash screen not rendering fonts or cursor.
{
while(1)
{
WPAD_ScanPads();
wpaddown = WPAD_ButtonsDown(0);
WPAD_IR(0,&ir1);
if(ir1.valid==0) cursor_on=0;
else cursor_on=1;
if(wpaddown&WPAD_BUTTON_2)
GRRLIB_ScrShot("sd:/screen.png");
GRRLIB_FillScreen(GRRLIB_GRAY); // --> These and the Logs screens ( logs() ) not working at all.
GRRLIB_DrawImg(0,0,tex_bg,0,1,1,GRRLIB_WHITE);
GRRLIB_Printf(400,15,tex_font,GRRLIB_BLACK,0.8,"%d %d",BUILD_VER,BUILD_DATE);
GRRLIB_Printf(5,100,tex_font,GRRLIB_BLACK,1,"TO QUIT PRESS THE HOME BUTTON.");
GRRLIB_Printf(160,400,tex_font,GRRLIB_BLACK,1,"PRESS A TO START");
if(cursor_on) GRRLIB_DrawImg((int)ir1.x,(int)ir1.y,tex_cursor,0,1,1,GRRLIB_WHITE); // Cursor not working in this screen.
GRRLIB_Render();
if (wpaddown & WPAD_BUTTON_HOME) quit(LAUNCHER);
else
if((wpaddown&WPAD_BUTTON_A)||wpaddown&WPAD_BUTTON_B) return;
if(power==1)
quit(POWEROFF);
else if(power==2)
quit(WIIMENU);
}
}
int main() {
GRRLIB_Init();
GRRLIB_texImg *tex_font = GRRLIB_LoadTexture(font2);
GRRLIB_InitTileSet(tex_font,20,30,32);
GRRLIB_texImg *tex_title = GRRLIB_LoadTexture(title);
GRRLIB_texImg *tex_bg = GRRLIB_LoadTexture(bg);
GRRLIB_texImg *tex_buttoff = GRRLIB_LoadTexture(buttoff);
GRRLIB_texImg *tex_button = GRRLIB_LoadTexture(button);
GRRLIB_texImg *tex_cursor = GRRLIB_LoadTexture(cursor);
WPAD_Init();
splash1();
while(1)
{
WPAD_ScanPads();
wpaddown = WPAD_ButtonsDown(0);
WPAD_IR(0,&ir1);
if(ir1.valid==0) cursor_on=0;
else cursor_on=1;
if((int)ir1.x>=375&&(int)ir1.x<444&&(int)ir1.y>=312&&(int)ir1.y<352)
highlighted=1;
else if((int)ir1.x>=375&&(int)ir1.x<585&&(int)ir1.y>=372&&(int)ir1.y<412)
highlighted=2;
else
highlighted=0;
if((wpaddown&WPAD_BUTTON_A)&&cursor_on)
{
if((int)ir1.x>=20&&(int)ir1.x<52&&(int)ir1.y>=120&&(int)ir1.y<312&&((int)(int)ir1.y%40)<32)
sortby=(char)(((int)ir1.y-120)/40)+1;
else if((int)ir1.x>=360&&(int)ir1.x<392&&(int)ir1.y>=120&&(int)ir1.y<192&&((int)(int)ir1.y%40)<32) // All the highlighting code works.
order=(char)(((int)ir1.y-120)/40);
else if(highlighted==1)
showlist(sortby,order);
else if(highlighted==2)
showtotal();
}
if(wpaddown&WPAD_BUTTON_2)
GRRLIB_ScrShot("sd:/screenshot.png");
GRRLIB_FillScreen(GRRLIB_GRAY);
GRRLIB_DrawImg(0,0,tex_bg,0,1,1,GRRLIB_WHITE);
for(i=1;i<6;i++)
GRRLIB_DrawImg(20,i*40+80,sortby==i?tex_button:tex_buttoff,0,0.7,0.7,GRRLIB_GRAY); // This screen works!!!
for(i=0;i<2;i++)
GRRLIB_DrawImg(360,i*40+120,order==i?tex_button:tex_buttoff,0,0.7,0.7,GRRLIB_GRAY);
GRRLIB_Printf(20,95,tex_font,GRRLIB_BLACK,1,"List1:");
GRRLIB_Printf(55,125,tex_font,GRRLIB_BLACK,0.8,"Opt1");
GRRLIB_Printf(55,165,tex_font,GRRLIB_BLACK,0.8,"Opt2");
GRRLIB_Printf(55,205,tex_font,GRRLIB_BLACK,0.8,"Opt3");
GRRLIB_Printf(55,245,tex_font,GRRLIB_BLACK,0.8,"Opt4");
GRRLIB_Printf(55,285,tex_font,GRRLIB_BLACK,0.8,"Opt5");
GRRLIB_Printf(360,95,tex_font,GRRLIB_BLACK,1,"List2:");
GRRLIB_Printf(395,125,tex_font,GRRLIB_BLACK,0.8,"Opt1-2");
GRRLIB_Printf(395,165,tex_font,GRRLIB_BLACK,0.8,"Opt2-2");
GRRLIB_Rectangle(375,312,69,40,GRRLIB_BLACK,0);
GRRLIB_Rectangle(376,313,67,38,GRRLIB_BLACK,0);
if(highlighted==1)
GRRLIB_Rectangle(377,314,65,36,GRRLIB_WHITE,1);
GRRLIB_Printf(382,314,tex_font,GRRLIB_BLACK,1,"Show me!");
GRRLIB_Rectangle(375,372,210,40,GRRLIB_BLACK,0);
GRRLIB_Rectangle(376,373,208,38,GRRLIB_BLACK,0);
if(highlighted==2)
GRRLIB_Rectangle(377,374,206,36,GRRLIB_WHITE,1);
GRRLIB_Printf(382,374,tex_font,GRRLIB_BLACK,1,"TOTALS");
if(cursor_on) GRRLIB_DrawImg((int)ir1.x,(int)ir1.y,tex_cursor,0,1,1,GRRLIB_WHITE); // Cursor Works!
GRRLIB_Render();
if (wpaddown & WPAD_BUTTON_HOME) quit(LAUNCHER);
if(power==1)
quit(POWEROFF);
else if(power==2)
quit(WIIMENU);
}
return 0;
}Last edited by BlackX (2010-10-23 18:53:33)
Offline
I don't understand, does your code compiles? Because it looks like you declared all your textures in main() and you use them in splash1()??? The scope for all your GRRLIB_texImg * is limited to main!
Offline
Yes, it compiles.
What do you mean by "The scope is all your GRRLIB_texImg * is limited to main"?
I am newbie in this, using this as a learning task.
EDITED: I said: I'm a newbie and the problem was stupid... GRRLIB_texImg inside void splash() and others... and the problem SOLVED.
Thanks!
Last edited by BlackX (2010-10-24 21:38:35)
Offline