30

mais c'est pris en compte la non ?

31

je c pas tongue

c le truc ac ton *3 + 2
met juste *3 la ou il y a *3+2 et met *3+2 la ou il y avais *3
si sa marche pas, ben ct pas ca grin
et la le mec il le pécho par le bras et il lui dit '

32

ça marche pas sad

33

-

34

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 !

35

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 -={}-=-=-

36

Ouais nan mais Orion il parle mais il fait que dal... une grande geule quoi !

37

-

38

-

39

Merci orion smile
-=-=-{}=- avseth -={}-=-=-

40

non il a raison, faut savoir chercher mais bon si sa fait 3 jours tongue

tien voila du code, g pas testé smile
ca converti un buffer 24 bit en buffer 16 bit
a toi apres de faire faire une rotation ^^

uchar *buffer, *bufPtr ;
uchar r,g,b ;
uint cpt = 320*240 ;
ushort *bufDst, *bufDstPtr = gm_malloc(cpt*2) ;
bufPtr = buffer = gm_malloc(cpt*3) ;
gpfileread(file,buffer, cpt*3,0) ;
bufDst = bufDstPtr ;

while(cpt--)
{
b = (*bufPtr++)>>3 ;
g = (*bufPtr++)>>3 ;
r = (*bufPtr++)>>3 ;

*bufDstPtr++ = (r<<11)|(g<<6)|(b<<1)|0 ;
};

free(buffer) ;
et la le mec il le pécho par le bras et il lui dit '

41

-

42

Merci beaucoup tous.

Mais je comprend pas ou le mettre ton code dans le mien...arf smile

43

-

44

-

45

merci smile

voila les erreurs.. voire plus bas..


#include "gpdef.h"  #include "gpstdlib.h"  #include "gpgraphic.h"  #include "gpmain.h"  #include "gpfont.h"  #include "gpmm.h"    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;  }    void GpMain(void *arg)  {    unsigned short mybmp;    GPDRAWSURFACE gpDraw[2];      GpLcdSurfaceGet(&gpDraw[0], 0);    GpSurfaceSet(&gpDraw[0]);    GpFatInit();      load_bmp("gp:\gpmm\pic.bmp", mybmp);       gm_memcpy(gpDraw[0].ptbuffer,mybmp,320*240*2);    while(1);  } 

46

-

47

ouaip en fait j'ai inversé les deux fonctions pour limiter les erreurs.. reregarde les erreurs...

48

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

49

-

50

sans rajouter ton "mybmp=(unsigned short *)gm_malloc(320*240*2); "

j'obtiens :

Warning : C2207W: inventing 'extern int load_bmp();'
gpmain.c line 21

Error : C2933E: type disagreement for 'load_bmp'
gpmain.c line 28

gpmain.c: 1 warning, 1 error, 0 serious errors

on se rapproche de la compilation smile

51

-

52

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;  } 

53

> 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 '

54

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;  } 

55

ç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;  } 

56

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..

57

quelqu'un peut tester sur une gp ? arf ça marche pas !!!!!!!!!!!!!!!!!!!

58

bon ok ça compile et ça marche pas sad pkoi ????????????????????????

59

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.

60

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