Mercurial > hg > old > magoroku_racing.bad
diff LoadSprite.c @ 115:31dd5c07f7c1
class OBJECT:SceanGraph
author | e085768 |
---|---|
date | Wed, 15 Jun 2011 23:31:59 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LoadSprite.c Wed Jun 15 23:31:59 2011 +0900 @@ -0,0 +1,50 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <ctype.h> +#include <math.h> +#include <time.h> +#include <SDL.h> +#include "SDL_opengl.h" +#include "SDL_image.h" +#include "object.h" +#include "xml.h" +#include "tree_controll.h" +#include "LoadSprite.h" + +//#define bmp_file "./s-dandy.bmp" + +SDL_Surface *sprite; + +SDL_Surface *LoadSprite(SURFACE *surfaces) +{ + SDL_Surface *image; + SDL_Surface *temp; + + /* Load the sprite image */ + image = IMG_Load(surfaces->image_name); + + if ( image == NULL ) { + fprintf(stderr, "Couldn't load %s: %s", surfaces->image_name, SDL_GetError()); + printf("can't not load image_file\n"); + return NULL; + } + + /* Set transparent pixel as the pixel at (0,0) */ + /* if ( image->format->palette ) { + SDL_SetColorKey(image, (SDL_SRCCOLORKEY|SDL_RLEACCEL), *(Uint8 *)image->pixels); + }*/ + SDL_SetColorKey(image, (SDL_SRCCOLORKEY|SDL_RLEACCEL), SDL_MapRGB(image->format, 0, 0, 0)); + + /* Convert sprite to video format */ + temp = SDL_DisplayFormat(image); + SDL_FreeSurface(image); + if ( temp == NULL ) { + fprintf(stderr, "Couldn't convert background: %s\n", SDL_GetError()); + return NULL; + } + image = temp; + return image; + + /* We're ready to roll. */ +}