#include "SDL.h"
#include "SDL_image.h"
#define true 1
#define false 0
SDL_Surface *screen;
SDL_Surface *pic;
//SDL_Event event;
char exit_game=false;
////////////////////////////////////////////////
void InitAll()
{
//if (SDL_Init(SDL_INIT_EVERYTHING) == -1)
if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE) == -1)
//if (SDL_Init(SDL_INIT_VIDEO)== -1)
{
printf("Initial Failed!
");
SDL_Delay(3000);
exit(0);
}
//printf("SDL initialized.
");
}
////////////////////////////////////////////////³õÊŒ»¯ÓÎÏ·
int InitGame()
{
//SDL_Surface *screen;
//SDL_Surface *pic
screen = SDL_SetVideoMode(800,480,16,SDL_SWSURFACE);
//void Draw_Circle(screen,250, 120, 85,0x0000ff0);
//screen = SDL_SetVideoMode(500,400,32,SDL_SWSURFACE|SDL_DOUBLEBUF);
if(screen == NULL)
{
printf("init screen failed, please check your display card");
return false;//init screen failed
}
return 1;
}
int initImg_BMP(const char *aFileName, SDL_Surface **aImg)
{
SDL_Surface *pTemp;
//load picture filethe file must be BMP file
pTemp = SDL_LoadBMP(aFileName);
//format pictures’ file
*aImg = SDL_DisplayFormat(pTemp);
if (pTemp == NULL || aImg == NULL)
{
printf("%s cann't initial", aFileName );
return 0;
}
//free temporary pointer
SDL_FreeSurface(pTemp);
return 1;
}
int initImg_PNG(const char *aFileName, SDL_Surface **aImg)
{
SDL_Surface *pTemp;
//load picture filethe file must be BMP file
pTemp = IMG_Load(aFileName);
//format pictures’ file
*aImg = SDL_DisplayFormat(pTemp);
if (pTemp == NULL || aImg == NULL)
{
printf("%s cann't initial", aFileName );
return 0;
}
//free temporary pointer
SDL_FreeSurface(pTemp);
return 1;
}
void showImg(SDL_Surface *aSource, int aLeft , int aTop , int aWidth , int aHeight , SDL_Surface *aDestination)
{
SDL_Rect picPosition;
picPosition.x = aLeft;
picPosition.y = aTop;
picPosition.w = (aWidth == 0)? aSource-> w : aWidth;
picPosition.h = (aHeight == 0)? aSource-> h : aHeight;
SDL_BlitSurface(aSource,NULL,aDestination,&picPosition);
}
int main(int argc, char* argv[])
{
InitAll();
InitGame();
initImg_BMP("1.bmp", &pic);
showImg(pic,0,0,0,0,screen);
SDL_Flip(screen);
SDL_Delay(4000);
}