mais c'est pris en compte la non ?
Heu j'ai pas le temps donc si tu as un code qui marche bien tout seul ce serait sympa de me le filer.
Mais bon c'est pas ton genre de filer ton code de toute façon..
Car ça fait 3 jours que je suis dessus donc voila, y'en a marre !
Pour afficher un bmp 256 couleurs y a pas de pb, s'il pose la question c'est qu'il y arrive pas en 16bits !!!
-=-=-{}=- avseth -={}-=-=-
Ouais nan mais Orion il parle mais il fait que dal... une grande geule quoi !
ouaip en fait j'ai inversé les deux fonctions pour limiter les erreurs.. reregarde les erreurs...
Warning : C2207W: inventing 'extern int load_bmp();'
gpmain.c line 21
Error : C3029E: <argument 2 to 'gm_memcpy'>: implicit cast of non-0 int to pointer
gpmain.c line 23
Error : C2933E: type disagreement for 'load_bmp'
gpmain.c line 28
C:\ADS\ADS\test\gpmain.c: 1 warning, 2 errors, 0 serious errors
ok, avec ça me donne ça :
Error : (Serious) C2292E: typedef name 'GPDRAWSURFACE' used in expression context
gpmain.c line 17
Error : (Serious) C2284E: expected ';' after command - inserted before 'gpDraw'
gpmain.c line 17
Error : C2456E: undeclared name, inventing 'extern int gpDraw'
gpmain.c line 17
Error : (Serious) C2947E: Illegal types for operands: <subscript>
gpmain.c line 17
Error : (Serious) C2947E: Illegal types for operands: <subscript>
gpmain.c line 19
Error : (Serious) C2947E: Illegal types for operands: <subscript>
gpmain.c line 20
Warning : C2207W: inventing 'extern int load_bmp();'
gpmain.c line 23
Error : (Serious) C2947E: Illegal types for operands: <subscript>
gpmain.c line 25
Error : C2933E: type disagreement for 'load_bmp'
gpmain.c line 30
C:\ADS\ADS\test\gpmain.c: 1 warning, 2 errors, 6 serious errors
#include "gpdef.h"
#include "gpstdlib.h"
#include "gpgraphic.h"
#include "gpmain.h"
#include "gpfont.h"
#include "gpmm.h"
#include "gpmodplay.h"
#include "gpstream.h"
void GpMain(void *arg)
{
unsigned short *mybmp;
mybmp=(unsigned short *)gm_malloc(320*240*2);
GPDRAWSURFACE gpDraw[2];
GpLcdSurfaceGet(&gpDraw[0], 0);
GpSurfaceSet(&gpDraw[0]);
GpFatInit();
load_bmp("gp:\gpmm\image.bmp", mybmp);
gm_memcpy(gpDraw[0].ptbuffer,mybmp,320*240*2);
while(1);
}
unsigned char load_bmp(char *file_name, unsigned short * ptr)
{
F_HANDLE img;
unsigned char *ig,r,g,b,temp[320*240*3];
unsigned short x,y;
if(GpFileOpen(file_name, OPEN_R, &img) == SM_OK)
{
GpFileSeek(img, FROM_BEGIN, 54,NULL);
GpFileRead(img, &temp, 320*240*3, NULL);
GpFileClose(img);
for(x=0; x<320; x++)
{
ig=temp+x*3;
for(y=0; y<240; y++)
{
b=(*(ig))>>3;
g=(*(ig+1))>>3;
r=(*(ig+2))>>3;
ig+=(320*3);
*(ptr++)=(r<<11)+(g<<6)+(b<<1);
}
}
return 1;
} else return 0;
}
> ouaip en fait j'ai inversé les deux fonctions pour limiter les erreurs.. reregarde les erreurs...
> Warning : C2207W: inventing 'extern int load_bmp();'
reinverse les
et ptet aussi gm_memcpy(&gpDraw[0].ptbuffer,mybmp,320*240*2); ^^
et la le mec il le pécho par le bras et il lui dit '
Non c bon j'ai juste en fait un
Warning : C2207W: inventing 'extern int load_bmp();'
gpmain.c line 23
Error : C2933E: type disagreement for 'load_bmp'
gpmain.c line 30
C:\ADS\ADS\test\gpmain.c: 1 warning, 1 error, 0 serious errors
#include "gpdef.h"
#include "gpstdlib.h"
#include "gpgraphic.h"
#include "gpmain.h"
#include "gpfont.h"
#include "gpmm.h"
#include "gpmodplay.h"
#include "gpstream.h"
GPDRAWSURFACE gpDraw[2];
void GpMain(void *arg)
{
unsigned short *mybmp;
mybmp=(unsigned short *)gm_malloc(320*240*2);
GpLcdSurfaceGet(&gpDraw[0], 0);
GpSurfaceSet(&gpDraw[0]);
GpFatInit();
load_bmp("gp:\gpmm\image.bmp", mybmp);
gm_memcpy(gpDraw[0].ptbuffer,mybmp,320*240*2);
while(1);
}
unsigned char load_bmp(char *file_name, unsigned short * ptr)
{
F_HANDLE img;
unsigned char *ig,r,g,b,temp[320*240*3];
unsigned short x,y;
if(GpFileOpen(file_name, OPEN_R, &img) == SM_OK)
{
GpFileSeek(img, FROM_BEGIN, 54,NULL);
GpFileRead(img, &temp, 320*240*3, NULL);
GpFileClose(img);
for(x=0; x<320; x++)
{
ig=temp+x*3;
for(y=0; y<240; y++)
{
b=(*(ig))>>3;
g=(*(ig+1))>>3;
r=(*(ig+2))>>3;
ig+=(320*3);
*(ptr++)=(r<<11)+(g<<6)+(b<<1);
}
}
return 1;
} else return 0;
}
ça compile avec ça :
#include "gpdef.h"
#include "gpstdlib.h"
#include "gpgraphic.h"
#include "gpmain.h"
#include "gpfont.h"
#include "gpmm.h"
#include "gpmodplay.h"
#include "gpstream.h"
GPDRAWSURFACE gpDraw[2];
void GpMain(void *arg)
{
unsigned short *mybmp;
mybmp=(unsigned short *)gm_malloc(320*240*2);
GpLcdSurfaceGet(&gpDraw[0], 0);
GpSurfaceSet(&gpDraw[0]);
GpFatInit();
load_bmp("gp:\gpmm\image.bmp", mybmp);
gm_memcpy(gpDraw[0].ptbuffer,mybmp,320*240*2);
while(1);
}
unsigned char load_bmp(char *file_name, unsigned short * ptr)
{
F_HANDLE img;
unsigned char *ig,r,g,b,temp[320*240*3];
unsigned short x,y;
if(GpFileOpen(file_name, OPEN_R, &img) == SM_OK)
{
GpFileSeek(img, FROM_BEGIN, 54,NULL);
GpFileRead(img, &temp, 320*240*3, NULL);
GpFileClose(img);
for(x=0; x<320; x++)
{
ig=temp+x*3;
for(y=0; y<240; y++)
{
b=(*(ig))>>3;
g=(*(ig+1))>>3;
r=(*(ig+2))>>3;
ig+=(320*3);
*(ptr++)=(r<<11)+(g<<6)+(b<<1);
}
}
return 1;
} else return 0;
}
bon voilà le code final :
il compile mais geepee me sort malheureusement donc voila c pas top ^^
#include "gpdef.h"
#include "gpstdlib.h"
#include "gpgraphic.h"
#include "gpmain.h"
#include "gpfont.h"
#include "gpmm.h"
#include "gpmodplay.h"
#include "gpstream.h"
GPDRAWSURFACE gpDraw[2];
void GpMain(void *arg)
{
unsigned short *mybmp;
mybmp=(unsigned short *)gm_malloc(320*240*2);
GpLcdSurfaceGet(&gpDraw[0], 0);
GpSurfaceSet(&gpDraw[0]);
GpFatInit();
load_bmp("gp:\gpmm\image.bmp", mybmp);
//gm_memcpy(gpDraw[0].ptbuffer,mybmp,320*240*2);
gm_memcpy(&gpDraw[0].ptbuffer,mybmp,320*240*2);
while(1);
}
unsigned char load_bmp(char *file_name, unsigned short * ptr)
{
F_HANDLE img;
unsigned char *ig,r,g,b,temp[320*240*3];
unsigned short x,y;
if(GpFileOpen(file_name, OPEN_R, &img) == SM_OK)
{
GpFileSeek(img, FROM_BEGIN, 54,NULL);
GpFileRead(img, &temp, 320*240*3, NULL);
GpFileClose(img);
for(x=0; x<320; x++)
{
ig=temp+x*3;
for(y=0; y<240; y++)
{
b=(*(ig))>>3;
g=(*(ig+1))>>3;
r=(*(ig+2))>>3;
ig+=(320*3);
*(ptr++)=(r<<11)+(g<<6)+(b<<1);
}
}
return 1;
} else return 0;
}
Y'a surement un prob quelque part..
quelqu'un peut tester sur une gp ? arf ça marche pas !!!!!!!!!!!!!!!!!!!
moi ya un truc que je comprend pas trop, c'est ca "gm_memcpy(&gpDraw[0].ptbuffer,mybmp,320*240*2); " et apres dans ta fonction
pour load_bmp tu as ca "GpFileRead(img, &temp, 320*240*3, NULL); " !
ya le *3 ca je comprend pas trop moi perso j'orai mis 2 partout mais a mon avis c'est pas ca du tt.
heu pour ton code que tu mets en source il manque pas des trucs parce qu'il y a la structure f_handle qui est po declare :/ tu es sur que le code que tu donnes se compile