一个最简单的sdl显示图片例子sdl example sdl 例子 例程SDL贴图bmp
来源:互联网 发布:万网备案域名购买 编辑:程序博客网 时间:2024/04/28 09:11
#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!\n");
SDL_Delay(3000);
exit(0);
}
//printf("SDL initialized.\n");
}
////////////////////////////////////////////////³õÊŒ»¯ÓÎÏ·
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);
}
#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!\n");
SDL_Delay(3000);
exit(0);
}
//printf("SDL initialized.\n");
}
////////////////////////////////////////////////³õÊŒ»¯ÓÎÏ·
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);
}
0 0
- 一个最简单的sdl显示图片例子sdl example sdl 例子 例程SDL贴图bmp
- SDL 最简单的一个例子
- SDL 显示bmp图片
- SDL一个很好的例子
- SDL
- SDL
- SDL
- SDL
- SDL
- sdl
- SDL
- SDL
- SDL
- SDL
- sdl
- SDL
- 一个SDL的例子分析(一)
- sdl显示bmp
- 如何在电子表格中的批注里插入多张图片
- PYTHON condition Monitor
- 怎样从Linux终端管理进程:10个你必须知道的命令
- R软件读取中文编码的数据错误解决方法
- 《智慧城市—大数据、物联网和云计算之应用》
- 一个最简单的sdl显示图片例子sdl example sdl 例子 例程SDL贴图bmp
- SP2010和Windows PowerShell 2.0--PowerShell脚本方法和创建自定义命令
- 程华奕:凡是过去,皆为序曲——大数据变现时代来临
- 手写C语言中强制类型转换算法
- 自学Linux命令的四种方法
- 常见小问题总结
- AE二次开发中获取A点到B点的最佳路径(1)
- FFmepg 多线程解码历程 - 3: int ff_thread_decode_frame
- eclipse svn提交代码到google code 出错(Server sent unexpected return value (405 Method Not Allowed) in resp)