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.pswp.cn/web/12796.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12796.shtml
英文地址,請注明出處:http://en.pswp.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時,取離著最…

數據庫第九次作業官方答案

文章目錄 1.12.12.22.32.4 1.1 列出下圖所示關系滿足的所有非平凡的函數依賴(忽略蘊含的函數依賴)。 A B C ? ? ? ? ? ? ? ? ? ? ? ? ------------ ???????????? a1 b1 c1 a1 b1 c2 a2 b1 c1 a2 b1 c3 非平凡的函數依賴有:A→B和C→B 2.1 …

淘寶店鋪運營爆流課:助你打造高流量店鋪,實現銷售持續增長(52節課)

課程目錄 01【開店類型第1課】貨架式店鋪.mp4 02【開店類型第2課】短視頻店鋪.mp4 03【開店類型第3課】直播型店鋪.mp4 04【店鋪基礎操作第1課】如何發布一個成功的寶貝.mp4 05【店鋪基礎操作第2課】商品SKU設置技巧及庫存設置方法.mp4 06【標題】如何制作一個爆款標題.mp…

微前端的概念

微前端是一種架構模式,用于構建單個現代web應用程序的多個小型獨立前端應用。每個前端應用都有自己的代碼庫、技術棧和團隊,并可以獨立開發、測試、部署和運行。這些小型前端應用被組合在一起以形成一個完整的前端應用程序。 微前端的核心思想是將前端應…

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

在現代生活中,搬家或重新布置家居時,沙發作為體積較大、價值較高的家具,選擇一個經濟實惠的物流服務至關重要。 1、對于近距離的運輸,同城寄沙發可以找個車直接拉過去比較劃算,省外的可以試試像我這樣郵寄;…

2244. 完成所有任務需要的最少輪數 --力扣 -- JAVA

題目 給你一個下標從 0 開始的整數數組 tasks ,其中 tasks[i] 表示任務的難度級別。在每一輪中,你可以完成 2 個或者 3 個 相同難度級別 的任務。 返回完成所有任務需要的 最少 輪數,如果無法完成所有任務,返回 -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、提供有價…