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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

公共字段填充(AOP的使用)

Thread是线程池,ThreadLocal是线程变量,每个线程变量是封闭的,与其它线程变量分隔开来,在sky-common下的com.sky.context包下有一个Basecontext类 public class BaseContext {//每一个上下文创建了一个线程变量,用来存储long类型的id//创建三个方法,用来设置,取用,删除idpubli…

基于微信小程序+JAVA Springboot 实现的【房屋租赁管理系统】app+后台管理系统 (内附设计LW + PPT+ 源码+ 演示视频 下载)

项目名称 项目名称: 基于微信小程序的房屋租赁管理系统 在本次项目开发中,我们成功构建了一款基于微信小程序的房屋租赁管理系统,旨在通过现代化信息技术提升房屋租赁服务的效率和质量。以下是对本项目的全面总结: 项目背景与目…

07-Fortran基础--Fortran指针(Pointer)的使用

07-Fortran基础--Fortran指针Pointer的使用 0 引言1 指针(Poionter)的有关内容1.1 一般类型指针1.2 数组指针1.3 派生类(type)指针1.4 函数指针 2 可运行code 0 引言 Fortran是一种广泛使用的编程语言,特别适合科学计算和数值分析。Fortran 9…

43k Star!推荐一款功能强大的开源笔记软件!

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

【2024系统架构设计】回顾历史,查缺补漏篇 ③

前言 hello,大家好: 💡💡💡 我们一起来备考软考高级系统架构设计师吧,本专栏提供综合知识、案例科目、论文(论点和部分示例范文)等内容,包括知识点总结和记忆小妙招哦。 🚀🚀🚀 可以减少资料查找和收集的时间,提高效率,我们一起集中精力学习干货吧! 💡…

Lora训练Windows[笔记]

一. 使用kohya_ss的GUI版本(https://github.com/bmaltais/kohya_ss.git) 这个版本跟stable-diffusion-webui的界面很像,只不过是训练模型专用而已,打开的端口同样是7860。 1.双击setup.bat,选择1安装好xformers,pytorch等和cuda…

Linux进程概念总结

这里总结下Linux进程概念总结❗ 冯诺依曼: CPU 运算器与控制器RAM 内存(存储器)Cache 缓存(一种技术)不属于冯诺依曼体系结构。ROM 磁盘(输入输出设备)磁盘 既可以从硬盘读取数据也可以向硬盘…

【全开源】JAVA语聊大厅语音聊天APP系统源码

语聊大厅语音聊天源码:打造专属的语音社交平台 核心功能 多人语音聊天:支持多人同时在线语音聊天,用户可以创建或加入不同的聊天室,与好友或陌生人进行实时互动。语音转文字:提供语音转文字功能,方便用户…

你好 GPT-4o!

你好 GPT-4o! OpenAI公司宣布推出 GPT-4o,这是OpenAI的新旗舰模型,可以实时对音频、视觉和文本进行推理。 GPT-4o(“o”代表“o​​mni”)是迈向更自然的人机交互的一步——它接受文本、音频、图像和视频的任意组合作…

C++二叉搜索树搜索二叉树二叉排序树

C二叉搜索树 1. 二叉搜索树的概念 二叉搜索树(BST,Binary Search Tree),也称为二叉排序树或二叉查找树。它与一般二叉树的区别在于:每个结点必须满足“左孩子大于自己,右孩子小于自己”的规则。在这种规则的约束下,二…

海上定位测量难?千寻星基稳如“定”海神针_0416(update-2)

海上定位测量难?千寻星基稳如“定”海神针 近年来,随着海洋资源的开发和利用,海上定位测量的需求日益增加,它通过测量物体的位置和方向来确定海洋中的各项活动。其准确性和可靠性对于确保海上作业的安全和效率至关重要。 由于海…

想做好抖店?新手、老玩家切勿掉进这些坑,操作要慎重!

大家好,我是电商花花。 很多人都说做抖音小店不需要脑子,会抄就行,难道做店真的就是这样吗? 真的就是会抄,会简单选品,找一些达人就能出单,就能实现睡后收入了吗? 其实并不见得&a…

Latex问题1

问题 添加bib文件的引用后 \bibliographystyle{IEEEtran} \bibliography{IEEEabrv}之后,出现莫名其妙的错误,如下 IEEEabrv.bib是我的参考文献的bib文件,CCS_1.tex是我的tex文件,bib文件中的内容为 ARTICLE{1,author{Capponi,…

精选合作伙伴:如何挑选最适合您小程序商城开发的软件公司

在选择一家合适的软件公司来协助您开发并运营小程序商城时,选择过程无疑是一项关键而复杂的任务。市场上的软件公司繁多,各具特色,那么,如何在这众多的选择中找到最适合您的合作伙伴呢?以下将从需求梳理、公司实力评估…

jiebaNET中文分词器

最近我接手了一个有趣的需求,需要对用户评价进行分词,进行词频统计和情绪分析,并且根据词频权重制成词云图以供后台数据统计,于是我便引入了jieba分词器,但是我发现网上关于jiebaNET相关文档实在太少了,甚至连配置文件…

2.1.2 C++程序设计——程序基本概念

文章目录 展示大纲1、程序基本概念2、基本数据类型3、程序基本语句4、基本运算5、数学库常用函数6、结构化程序设计展示大纲 1、程序基本概念

分享开放原子AtomGit开源协作平台评测报告

AtomGit平台的总体介绍 开放原子开源基金会是致力于推动全球开源事业发展的非营利机构,于 2020 年 6 月在北京成立,由阿里巴巴、百度、华为、浪潮、360、腾讯、招商银行等多家龙头科技企业联合发起。目前有三个主要机构设置,技术监督委员会&…

3-3 基于RYU的流量风暴事件原理与响应策略

在传统网络中,存在着一定的广播流量,占据了一部分的网络带宽。同时,在有环的拓扑中,如果不运行某些协议,广播数据还会引起网络风暴,使网络瘫痪。 如有以下的一个网络拓扑结构(3_2_topoplus.py) …

武汉星起航:亚马逊构建综合性商业生态,卖家买家共享全球化红利

在当今全球化日益加速的时代,亚马逊不仅以其卓越的电商平台服务全球消费者,更通过一系列前沿服务打造了一个综合性的商业生态系统。在这个生态系统中,卖家能够轻松拓展全球业务,买家则享受到了前所未有的购物体验。亚马逊以其独特…

CCF-Csp算法能力认证, 202309-1坐标变换(其一)(C++)含解析

前言 推荐书目,在这里推荐那一本《算法笔记》(胡明),需要PDF的话,链接如下 「链接:https://pan.xunlei.com/s/VNvz4BUFYqnx8kJ4BI4v1ywPA1?pwd6vdq# 提取码:6vdq”复制这段内容后打开手机迅雷…