1、简介linux
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是类似的代码 就能够开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。ide
2、配置函数
sudo apt-get install libsdl1.2-dev学习
附加包:测试
sudo apt-get install libsdl-image1.2-devui
sudo apt-get install libsdl-mixer1.2-devspa
sudo apt-get install libsdl-ttf2.0-dev开放源代码
sudo apt-get install libsdl-gfx1.2-dev指针
也能够去官网下载最新的源码进行编译。视频
3、测试
#include "SDL/SDL.h"
int main( int argc, char* args[] )
{
//Start SDL
SDL_Init( SDL_INIT_EVERYTHING );
//Quit SDL
SDL_Quit();
return 0;
}
编译命令:g++ main.c -o main -lSDL
若是程序可以编译经过并可以运行,那么SDL安装成功。
4、加载一张位图
SDL能够很方便的来加载位图。
首先拷贝一张bmp格式的图片到项目文件夹,而后修改代码以下:
#include <stdio.h>
#include <SDL/SDL.h>
int main()
{
//The images
SDL_Surface* hello = NULL;
SDL_Surface* screen = NULL;
SDL_Init( SDL_INIT_EVERYTHING );
//Set up screen
screen = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE );
//Load image
hello = SDL_LoadBMP( "1.bmp" );
//Apply image to screen
SDL_BlitSurface( hello, NULL, screen, NULL );
//Update Screen
SDL_Flip( screen );
//Pause
SDL_Delay( 5000 );
//Quit SDL
SDL_Quit();
//Free memory
SDL_FreeSurface( hello );
//Quit SDL
SDL_Quit();
return 0;
}
编译运行:
若是须要加载其余格式的图片,须要添加SDL_image库。
几个用到的函数解释一下:
SDL_Init():
动态的加载和初始化SDL库。 该函数带有一组标记来表示哪部分须要激活:
SDL_INIT_AUDIO
SDL_INIT_VIDEO
SDL_INIT_CDROM
SDL_INIT_TIMER
SDL_INIT_EVERYTHING
使用完毕最后调用SDL_Quit()。
SDL_SetVideoMode()
设置视频的色彩深度和分辨率
SDL_LoadBMP()
加载BMP图片
int SDL_BlitSurface(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect);
4个参数都是指针——2个SDL_Surface指针,2个SDL_Rect指针。src是源面,也就是被blit的面;dst是目的面,也就是源面被blit到的面。
int SDL_Flip(SDL_Surface *screen);
交换屏幕缓冲
相关连接:SDL入门学习续-在SDL中使用OpenGL http://www.linuxidc.com/Linux/2012-12/75256.htm