SDL图形库
来源:互联网 发布:spss数据分析案例 编辑:程序博客网 时间:2024/06/09 23:12
Simple DirectMedia Layer库,简称SDL,它是一个跨平台的多媒体库,以用于直接控制底层的多媒体硬件的接口。这些多媒体功能包括了视频、音频、键盘和鼠标(事件)、游戏摇杆等。当然,最为重要的是提供了2D图形帧缓冲(framebuffer)的接口,以及为OpenGL与各种操作系统之间提供了统一的标准接口以实现3D图形。也就是说我们通过这个图形库可以自己写游戏,播放电影、歌曲等等,哪些C语言基本库里无法完成的任务,我们可以通过SDL的库完成,只要按上一次的要求安装完了SDL,我们就可以自由的使用SDL完成自己想要完成的功能!
SDL是一个跨平台的库,它支持: Windows, Windows CE,Linux, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX,QNX
SDL是用C语言开发的,但它对C++支持的更好!所以你在网上可以找到很多SDL源代码都是C++写的。除了这两种语言,SDL还支持:Java,C#, D,PHP,Eiffel, Erlang, Python,Euphoria, Ada, Go,Guile, Haskell, Lisp, Lua, ML, Objective C, Pascal, Perl, Pike, Pliant, Ruby, Smalltalk, and Tcl.几乎支持所有当下流行的语言!
为什么选择SDL做图形库而不是DirectX、OpenGl等著名的图形库呢?第一,SDl是免费的,它能够完成绝大多数哪些大的图形库的功能,但你可以随意使用不需要付费,而且它是跨平台的,可以在多种平台上使用。第二,SDL小巧精悍,接口简单,向用户隐蔽了复杂的操作,用户只需要懂一点C语言的基础知识就可以调用它完成很炫的功能。换句话说SDL使你的编程工作变得简单容易,而完成同样的功能DirectX代码量最少是SDL的5到6倍!那么你现在是不是觉得对于一个编程新手来说,SDL是最佳选择!
#include <stdio.h> #include <stdlib.h> #include <SDL\SDL.h> SDL_Surface *gpScreen; int main(int argc,char *argv[]){ if((SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO)==-1)) { exit(-1); } gpScreen = SDL_SetVideoMode(600,600, 0, SDL_HWSURFACE | SDL_HWPALETTE | SDL_DOUBLEBUF ); if( NULL == gpScreen ) { SDL_Quit(); return -1; } SDL_Delay(3000); SDL_FreeSurface(gpScreen);//退出程序前必须释放 SDL_Quit();//关闭SDL各个子系统 system("pause"); return 0; }
首先要使用SDL必须加载SDL.h头文件,再者主函数的写法必须是int main(int argc,char *argv[]),不能是int main(void),否则会报编译错误。
要使用SDL,必须先初始化SDL,函数int SDL_Init(Uint32 flags),参数flags是一个无符号整数,表示要初始化SDL哪些子系统。
其中,flags可以取下列值:
SDL_INIT_TIMER:定时器
SDL_INIT_AUDIO:音频
SDL_INIT_VIDEO:视频
SDL_INIT_JOYSTICK:摇杆
SDL_INIT_HAPTIC:触摸屏
SDL_INIT_GAMECONTROLLER:游戏控制器
SDL_INIT_EVENTS:事件
SDL_INIT_NOPARACHUTE:不捕获关键信号(这个不理解)
SDL_INIT_EVERYTHING:包含上述所有选项
相关更细参考 :
http://www.cnblogs.com/landmark/archive/2012/04/29/2475252.html
http://blog.csdn.net/leixiaohua1020/article/details/40680907
- SDL图形库
- (转载)sdl-linux下的图形库
- SDL图形入门
- Linux下SDL图形库SDL-1.2.14.tar 开发板ARM6410移植
- 基于Linux系统的SDL图形库记忆翻牌小游戏
- linux图形编程之SDL
- SDL学习(2)图形的处理
- SDL-1:初识SDL开发库
- SDL和SDL扩展库交叉编译
- SDL和SDL扩展库交叉编译
- SDL入门教程(九):1、在SDL图形窗口显示文本
- SDL入门教程(九):1、在SDL图形窗口显示文本
- [转载]SDL 用法,第 3 部分:图形设计
- linux下C语言编程8-SDL图形入门
- SDL游戏开发系列第二话:基本图形的绘制
- 使用SDL库
- SDL库的安装
- SDL常用库介绍
- Android Studio 三种添加插件的方式
- Install Subversion 1.8.9 ( SVN Client ) on CentOS/RHEL
- LeetCode Triangle
- Android Log 跟踪
- 怎么清除Android开发中的垃圾代码?
- SDL图形库
- CentOS安装TortoiseSVN 客户端
- Linux命令之目录与路径
- mosquitto 使用时出现的一些问题及其解决办法
- SpringMVC集中传参方式
- mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication
- Merge Sorted Array
- OSI参考模型中各层的作用及协议
- SQL语句