前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SDL是什么,能干什么,为什么我们要学习它?

SDL是什么,能干什么,为什么我们要学习它?

作者头像
用户1263308
发布2018-02-02 10:59:11
3.2K0
发布2018-02-02 10:59:11
举报
文章被收录于专栏:代码GG之家代码GG之家

关于SDL,在简介里面,有一些概念,但是很多人还是留言,不清楚到底是个什么。这节,我简单总结下:

我们如何将一张图显示在屏幕上。这里简单的分为几个部分,硬件屏幕,驱动程序,软件部分。SDL不直接关注硬件屏幕,而是关注每个平台下的屏幕驱动程序。比如window下的DirectX,linux下的x11 ,以及android下的opengl es。SDL通过将这三个平台,当然不止这三个平台的屏幕驱动,封装成一套对外统一的API调用,让使用者可以不关注具体某个平台,可以快速开发图像的绘制操作。SDL的核心,便是如此。

在此基础上,SDL支持了各种图片加载,渲染,各种图片的像素格式转换,比如RGB565转换到RGB888等等。SDL的主要任务,便是完成图像的加载,渲染显示,其他方向都比较单薄,对于开发游戏来说,显得力不从心,由于其没有配套的开发组件,比如界面库,动画库,粒子库等等,都是没有的。然而为什么选它呢?

算是一个巧合而已,做ffmpeg的移植,有人使用SDL做了最终的解码一帧图像的显示,如此做出视频播放器。而同时,自己在移植一款游戏,西游释厄转,一款fba游戏模拟器,网上使用了sdl1.2引擎,然而sdl1.2用的是framebuffer,导致游戏渲染很慢,大大降低了游戏的流畅度,于是乎自己花费一段时间,研究sdl2.0的框架,将此游戏的流程分析完后,把sdl2.0合入进去,使用opengles硬件加速,提高性能。

完成上面的几个事情后,发现sdl挺好玩的,既然自己已经熟悉了基本流程,也对sdl的整体过程比较熟悉,于是就有了记录,开始整理,画流程,框架,想既然这个讲解的比较少,那就花些心思,研究一番,整理成系列讲解,于是就有了这些内容。

记住,sdl的讲解,可以作为兴趣学习,它不是成熟的游戏开发引擎,但却是非常成熟,跨平台的一套渲染引擎。它本身做的事情非常简单,就是让一张图片,可以显示到更多平台,同时附加一些音频编解码而已。诚然,sdl不是你开发游戏的首选,但却是不可多得的,代码不算复杂,可以深入学习,掌握一套跨平台的开发流程,思路,同时理解图像格式的分类,转化,运算的具体实现。

当然,后续我会展开,将西游释厄传的移植过程,同时这个可以玩拳皇97,是不是很兴奋? 在移植完游戏的同时,我会移植一个gui库,当前进行到一半,因为工期比较长,所以会较晚出来,在移植完gui之后,会在此框架上做一款游戏开发,进行深入练习。

学习,往往需要持之以恒,敬请期待!!

当前工程代码已经上传:

https://github.com/luxiaoming/SDL-study

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 代码GG之家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档