6 void im_sdl_surface_to_picinfo(SDL_Surface
* surface
, PICINFO
* pic
)
13 if(surface
->format
->BytesPerPixel
==1)
16 pic
->pic
=(byte
*)surface
->pixels
;
20 pic
->pal
[i
*3] =surface
->format
->palette
->colors
[i
].r
;
21 pic
->pal
[i
*3+1]=surface
->format
->palette
->colors
[i
].g
;
22 pic
->pal
[i
*3+2]=surface
->format
->palette
->colors
[i
].b
;
24 SDL_FreeSurface(surface
);
29 pic
->pic
=(byte
*)surface
->pixels
;
31 SDL_FreeSurface(surface
);
35 int im_load_image_through_loader(char* fname
, PICINFO
* to_pic
,
37 SDL_Surface
* (*img_loader
)(SDL_RWops
*))
43 rw
=SDL_RWFromFile(fname
,"rb");
45 rw
=SDL_RWFromMem((void*)fname
, from_mem_size
);
47 surface
=img_loader(rw
);
51 im_sdl_surface_to_picinfo(surface
,to_pic
);
56 /******************************************************************/
58 int im_load_gif(char* fname
, PICINFO
* to_pic
, int from_mem_size
)
61 return im_load_image_through_loader(fname
,to_pic
,
62 from_mem_size
,IMG_LoadGIF_RW
);