SDL系列(一)—— 小白入门

SDL Simple DirectMedia Layer 是一套开放源代码的 跨平台多媒体开发库 ,使用 C
言写成。 SDL 提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的
代码就可以开发出 跨多个平台( Linux Windows Mac OS X 等) 的应用软件。目前 SDL
用于开发游戏、模拟器、媒体播放器等多媒体应用领域。
SDL 的“标准库”
SDL_image —支持时下流行的图像格式: BMP PPM XPM PCX GIF JPEG PNG TGA
SDL_mixer —更多的声音输出函数以及更多的声音格式支持。
SDL_net —网络支持。
SDL_ttf TrueType 字体渲染支持。
SDL_rtf 简单的 RTF 渲染支持。
SDL 可以干什么
视频
3D 图形:
        SDL 可以与 OpenGL API Direct3D API 结合使用,用于 3D 图形
加速 2D 渲染 API
        支持简单旋转,缩放和 Alpha 混合,所有这些都使用最新的 3D API 加速
        使用 OpenGL Direct3D 支持加速
创建和管理多个窗口
输入事件
提供的事件和 API 方法如下:
        应用程序和窗口状态更改
        鼠标输入
        键盘输入
        操纵杆和游戏控制器输入
        多点触控手势
可以使用 SDL_EventState ()启用或禁用每个事件
在发布到内部事件队列之前,事件将通过用户指定的过滤器函数传递
线程安全事件队列
音频
设置 8 位和 16 位音频,单声道立体声或 5.1 环绕声的音频播放,如果硬件不支持格式,
可选择转换
音频在单独的线程中独立运行,通过用户回调机制处理
专为自定义软件音频混音器而设计,其中 SDL_mixer 提供完整的音频 / 音乐输出库
文件 I / O 抽象
通用抽象开放,读写数据
内置支持文件和内存支持
共享对象支持
加载共享对象( Windows 上的 DLL Mac OS X 上的 .dylib Linux 上的 .so
共享对象中的查找方法 , 调用
线程
简单线程创建 API
简单 线程本地存储 API
互斥量,信号量和条件变量
用于无锁编程的原子操作
计时器
获取流逝的毫秒数
等待指定的毫秒数
在单独的线程中创建与代码并行运行的计时器
使用高分辨率计数器进行分析
CPU 特征检测
查询 CPU 数量
检测 CPU 功能和支持的指令集
支持大小端检测
检测当前系统的字节顺序
用于快速交换数据值的例程
读取和写入指定字节数据的数据
电源管理
查询电源管理状态
SDL2.0 知识框架体系
SDL 视频渲染 主要涉及到 四个对象
  • SDL_Window
  • SDL_Surface
  • SDL_Render
  • SDL_Texture
  • SDL_Event
SDL 视频渲染 主要涉及到 相关 API
初始化:
SDL_Init(): 初始化 SDL
SDL_CreateWindow(): 创建窗口( Window
SDL_CreateRenderer(): 基于窗口创建渲染器( Render
SDL_CreateTexture(): 创建纹理( Texture
循环渲染数据:
SDL_UpdateTexture(): 设置纹理的数据
SDL_RenderCopy(): 纹理复制给渲染器
SDL_RenderPresent(): 显示
退出:
SDL_DestroyWindow()
SDL_DestroyRenderer()
SDL_DestroyTexture()
SDL_Quit()
SDL 主要涉及到 几个扩展库
  • SDL_image
  • SDL_mixer
  • SDL_ttf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/12796.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

618有什么划算的数码产品?4款精选数码好物清单分享,赶紧码住!

随着618购物节慢慢开始,数码产品的大门已经向你敞开,等你来发现里面的各种乐趣。在这个购物的好时节,我们为你准备了一些很不错的数码东西,不管是喜欢新鲜科技的你,还是需要实用小工具的朋友们,这里都有可能…

安卓、iOS、iPad三端搞定,不再剧荒!

哈喽,各位小伙伴们好,我是给大家带来各类黑科技与前沿资讯的小武。 之前给大家推荐过各种看剧姿势,但很多苹果、平板端的小伙伴还是存在更好的需求体验,今天给大家推荐这款可以在安卓、iOS和平板上都能安装使用,不再剧…

2024自学网络安全的三个必经阶段(含路线图)_网络安全自学路线

一、为什么选择网络安全? 这几年随着我国《国家网络空间安全战略》《网络安全法》《网络安全等级保护2.0》等一系列政策/法规/标准的持续落地,网络安全行业地位、薪资随之水涨船高。 未来3-5年,是安全行业的黄金发展期,提前踏入…

基于Django的图书管理系统

文章目录 前言一、页面展示1.登录2.前端页面3.后端页面 总结 前言 本网站调用Django编写了图书管理网站,可以在后端控制书籍,前端进行书籍预览 一、页面展示 1.登录 2.前端页面 3.后端页面 — ![在这里插入图片描述](https://img-blog.csdnimg.cn/dir…

低功耗音频编解码器CJC8990

由工采网代理的CJC8990是一款低功耗音频编解码器,拥有先进的功能并提供高质量音频,非常适合于便携式数字音频应用,支持多种音频数据格式,包括I2S, DSP模式。 产品介绍: 该芯片工作电压:1.5V~3…

甲方运营工具——安天威胁情报中心每日热点事件爬取

一、背景 本次是采用python爬取安天威胁情报中心的每日热点事件,进行甲方内部威胁情报同步的这样一个需求开发。 界面及内容: 二、逐步实现 2.1、分析请求页面的数据来源 通过请求页面我们看到安天对于第三方引用这些内容的真实性等是不予负责的;我们看到该页面的数据来源…

mysql 行转列 case when 和 聚合函数实现

一、原始数据## 二、行转列 第一步 SELECTCASE WHEN SUBSTRING( aaa.cost_code, 1, 3 ) 100 THEN aaa.budget_cost_budget ELSE 0 END b1,CASE WHEN SUBSTRING( aaa.cost_code, 1, 3 ) 300 THEN aaa.budget_cost_budget ELSE 0 END b2,CASE WHEN SUBSTRING( aaa.cost_cod…

Math.Round()函数说明

Math.Round()并不是严格意义上的是四舍五入函数。它默认的执行的是“银行家舍入”算法,即四舍六入五取偶。概括为:四舍六入五考虑、五后非零就进一,五后皆零看奇偶,五前为偶应舍去、五前为奇要进一。 当为5时,取离着最…

淘宝店铺运营爆流课:助你打造高流量店铺,实现销售持续增长(52节课)

课程目录 01【开店类型第1课】货架式店铺.mp4 02【开店类型第2课】短视频店铺.mp4 03【开店类型第3课】直播型店铺.mp4 04【店铺基础操作第1课】如何发布一个成功的宝贝.mp4 05【店铺基础操作第2课】商品SKU设置技巧及库存设置方法.mp4 06【标题】如何制作一个爆款标题.mp…

寄大件家具用什么物流便宜,寄沙发大件物流便宜

在现代生活中,搬家或重新布置家居时,沙发作为体积较大、价值较高的家具,选择一个经济实惠的物流服务至关重要。 1、对于近距离的运输,同城寄沙发可以找个车直接拉过去比较划算,省外的可以试试像我这样邮寄;…

手机怎么制作搞笑gif?来看看这一个方法

动态图片是现在网络中很流行的一种图片格式,可以把多个jpg、png格式静图变成一张gif格式的动图。在各大社交媒体中非常的受欢迎,用简单快速的方法传递信息。当我们想要通过手机制作gif动画的时候,要如何操作呢?这时候,…

Java后端面试常见问题

Java后端面试 经历了两个月的面试和准备,下面对常见的八股文进行总结。有些问题是网上看到的面经里提到的,有些是我真实面试过程遇到的。 异常 1、异常分为哪几种?他们的父类是什么? 注意:所有异常对象的父类为Thr…

瑞_Docker安装教程(超详细图文步骤,含卸载、离线安装)

文章目录 1 CentOS 在线安装 Docker1.1 卸载旧版Docker1.2 安装Docker1.2.1 安装Docker的yum库1.2.2 配置Docker的yum源1.2.3 安装Docker-CE1.2.4 启动和校验(开机自启)1.2.5 配置镜像加速 1.3 安装 Docker Compose1.4 启动和校验(开机自启&a…

Acrel-1000变电站综合自动化监控系统 实时测控保护、远动于一体

​一、 系统概述 1.1 概述 Acrel-1000 变电站综合自动化监控系统,是我司根据电力系统自动化及无人值守的要求,总结国内外的研究和生产的先进经验,专门研制出的新一代电力监控系统。本系统具有保护、遥测、遥信、遥脉、遥调、遥控功能&#x…

Python代码:三、读入字符串

1、题目 从变量输出开始。请使用input函数读入一个字符串,然后将其输出。 2、代码 import sys ainput() print(a) 3、在sublime运行的结果

DIYGW UniApp可视化工具:低代码时代的前端开发新体验

摘要: 随着技术的不断发展,前端开发领域也迎来了低代码时代的浪潮。本文介绍了DIYGW UniApp可视化工具,这款工具以其傻瓜式、拖拽式、模块化的特性,为前端开发者提供了一个全新的开发体验。通过DIYGW UniApp,用户无需深…

公域流量如何引流到私域流量?

公域流量和私域流量是数字营销中常用的两种流量类型。公域流量指的是通过搜索引擎、社交媒体等公共平台获取的流量,而私域流量则是指企业自身拥有的用户群体和数据。那么,如何将公域流量引流到私域流量呢?下面我将为您详细解答。 1、提供有价…

HTML5+CSS3 将图片和文字置于一行

将文字对齐图片中心的水平位置 今天课堂作业上有一段是要做出文字与图片在一行且文字对齐图片的中心位置。课上用inline-block做的,但盒子总是不受控制。于是回来随便找了个图片用vertical-align做成功了。 这是原本的样式(加了边框方便看盒子&#xff…

【数据可视化-05】:Plotly数据可视化宝典

一、引言 数据可视化是机器学习流程中不可或缺的一部分。通过图形和图表展示数据,我们可以更直观地理解数据的分布、趋势和关联,从而更有效地进行数据分析、特征工程和模型评估。Plotly是一个功能强大且灵活的数据可视化库,它提供了丰富的图表…

WebLogic SSL应用

SSL 安全套接字层(SSL)是通过在客户端和Web服务器端之间进行身份验证,并对双方交换的数据进行加密,从而提供安全连接。 验证类型: 单向:客户端验证Web服务器端证书 双向:客户端验证Web服务器证书, Web服务器验证客户端证书 Weblogic Server12c 支持 SSL 3.0 和 TLS1.0 …