SDL解析——SDL简介
来源:互联网 发布:python eval函数用法 编辑:程序博客网 时间:2024/06/07 10:16
SDL是什么?它是一个集输入控制,音频处理,视频处理于一身的跨平台底层函数库。SDL的一个主要应用领域就是游戏开发。很多知名的游戏都是以它为基础的。由于它的易用,高性能以及跨平台等诸多优点。被广泛的应用在各种操作系统之中。
SDL本身是使用C语言写成的。对C/C++语言具有原生的支持。与此同时,它也被绑定到了其他编程语言之中,这些语言包括 Ada, C#, D, Eiffel, Erlang, Euphoria, Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP, Pike, Pliant, Python, Ruby, Smalltalk等。
SDL的另外一个优势是,它是以LGPLv2发布的。这表示SDL在商业产品中使用将会更加自由。
在当前版本的SDL中,涵盖了视频处理(video),音频处理(audio),窗口管理(window management),事件处理(event),控制手柄处理(joystick),光盘处理(CD-ROM),多线程(Multi-threaded Programming)以及时间管理(time)等几个部分。
考虑到能够与大家进行交流,我会陆续使用一些篇幅来介绍SDL在某些方面的编程方法,期间也会涉及到SDL函数库的内部实现方法(知其然而不知其所以然非吾所欲也)。所以,此系列文章并非局限在技术文档层面上,而是一个交流的平台。文中会涉及到示例,方法,原理,设计模式等一些问题,希望与大家共同探讨,这也是我的文章的一贯风格。至于涵盖的内容,以视频,事件处理为主。其他内容是否涵盖,视情况而定。
我一直秉承着在实践中学习的观点。于是,对于那些对SDL不了解的朋友们。写出一个类似”hello world!“这样的程序。是我们今后实践的一个基础。那么接下来的篇幅我们就会把重点放在怎样使用SDL成功编译运行一个最短的程序。
请看代码:
这段代码很简单。在确保头SDL头文件被包含的情况下,程序自定义了两个SDL资源初始化和释放函数。其中分别调用了SDL_Init以及SDL_Quit两个函数。而SDL_Init函数带有一个参数,它表示初始化哪些SDL资源。完整的列表如下:
可想而知,作为全局初始化函数,SDL_Init函数必须在所有SDL操作之前被调用。SDL_Quit也是一样。
下面我们尝试编译这段程序,在linux下,建议编写Makefile来编译程序。如果你是在其他操作系统中编译这段代码,请参考SDL在相关系统或工具中的配置方法。
一个典型的Makefile模板如下:
本文不是Makefile普及文章,上边代码的实现细节将不涉及。但这里需要强调的是,我们在编译使用SDL的程序时,需要提供附加的编译参数,最好由pkg-config来提供:
pkg-config --cflags sdl
而链接参数则需要使用下面的格式:
pkg-config --libs sdl
这一步也许在其他环境下会略有不同。但无论如何,我们的目的是能够找到SDL头文件和链接库。
将前面C程序代码保存成文件,命名为sdltest。并放在与Makefile相同的目录下编译。
这就是第一段SDL程序,虽然运行不会有什么效果,但这就表示SDL初始化的顺利完成。
- SDL解析——SDL简介
- SDL解析——SDL视频处理
- SDL解析——五步棋
- SDL解析——SDL视频处理(2)
- SDL解析——SDL事件处理(1)
- 【SDL】SDL简介
- SDL简介
- SDL简介
- SDL简介
- SDL——资料
- SDL
- SDL
- SDL
- SDL
- SDL
- sdl
- SDL
- SDL
- 我的空间开通了,欢迎光临!
- OCI+OCL下BLOB
- JOJ2672 Hanoi Tower Once More
- 前缀操作符和后缀操作符的重载
- 一个IT人士的工作经历
- SDL解析——SDL简介
- android 之输入法
- Linux 2.6内核中新的锁机制--RCU
- [MARK]不使用borlndmm.dll内存管理
- Lucene的使用与优化1
- sql 2005性能调优
- Lucene使用与优化2
- 如何 从 9I升级到10gR2(wait to be translated)
- Lucene使用与优化3