一、简介
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。
二、配置
sudo apt-get install libsdl1.2-dev
附加包:
sudo apt-get install libsdl-image1.2-dev
sudo apt-get install libsdl-mixer1.2-dev
sudo apt-get install libsdl-ttf2.0-dev
sudo apt-get install libsdl-gfx1.2-dev
也可以去官网下载最新的源码进行编译。
源码:http://www.libsdl.org/projects/
1、SDL_Image:提供显示多种格式的图像显示接口,它支持bmp,png,jpeg,gif,tiff等.
source:http://www.libsdl.org/projects/SDL_image/
2、SDL_Draw:提供画点线圆等几何图形的接口.
3、SDL_ttf:提供显示TTF文字的接口.
source:http://www.libsdl.org/projects/SDL_ttf/
4、SDL_mixer:提供播放各种声音文件的接口.
三、测试
#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安装成功。
四、加载一张位图
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;
}