【RK3588嵌入式图形编程】-SDL2-构建一个多功能的图像类

news/2025/3/14 8:11:09/

构建一个多功能的图像类

文章目录

  • 构建一个多功能的图像类
    • 1、概述
    • 2、设计原则
      • 2.1 友好API
      • 2.2 性能
      • 2.3 反馈
      • 2.4 破坏性变更和可扩展性
    • 3、加载文件
    • 4、源矩形
    • 5、目标矩形
    • 6、渲染和缩放模式
    • 7、完整代码
    • 8、总结

本文将详细介绍如何设计一个灵活的组件,方便SDL的应用程序中处理图像。

1、概述

在本文中,我们将把本章到目前为止所涵盖的技术结合起来,形成一个统一的 Image 类。我们将专注于创建一个友好的 API,以便外部代码可以轻松控制图像如何渲染到它们的Surface上。我们将涵盖以下内容:

  • 创建灵活的图像处理 API
  • 实现文件加载和错误检查
  • 设置源矩形和目标矩形
  • 添加不同的缩放模式以进行渲染
  • 优化游戏循环的性能

作为一个起点,我们将基于课程早期涵盖的基础知识构建一个基本的窗口和应用循环:

// main.cpp
#include <SDL_image.h>
#include "Window.h"
#include "Image.h"int main(int argc, char** argv) {SDL_Init(SDL_INIT_VIDEO);IMG_Init(IMG_INIT_PNG);Window GameWindow;Image ExampleImage{"example.png"};SDL_Event Event;bool shouldQuit{false};w

http://www.ppmy.cn/news/1578985.html

相关文章

Nginx 生产环境安全配置加固

以下是Nginx生产环境安全配置加固的综合方案&#xff0c;结合多个技术实践和行业标准整理&#xff1a; 一、基础安全防护 1‌. 隐藏版本信息‌ 在http或server块添加server_tokens off;&#xff0c;避免暴露Nginx版本号‌。使用headers-more-nginx-module模块彻底移除响应头…

宇树科技嵌入式面试题及参考答案(春晚机器人的公司)

目录 设计一个带看门狗(Watchdog)的嵌入式系统,描述故障恢复流程 在资源受限的 MCU 上实现 OTA 升级功能,描述关键设计点 如何实现 OTA(空中升级)功能?描述固件校验和回滚机制的设计要点 推挽输出与开漏输出的区别?举例说明其在 GPIO 控制中的应用 UART、SPI、I2C …

单机DeepSeek做PPT,YYDS!

今天同事问我 AI 能不能做 PPT&#xff0c;有个述职报告要做&#xff0c;问我能不能帮忙&#xff0c;这时我脑海中的第一画面就是 DeepSeek Kimi DeepSeek 擅长逻辑构建与内容生成&#xff0c;其深度思考能力当前测试下来&#xff0c;不愧为国内No.1&#xff0c;而且还会把中间…

SPA应用优化首屏加载速度

一、问题产生原因&#xff1a; 网络延时问题 资源文件体积过大 资源重复请求加载 二、常见解决方案 减小入口文件体积 常用的手段是路由懒加载&#xff0c;在配置vue-router时以函数的形式动态导入加载&#xff0c;这样可以把不同的路由组件分别打包&#xff0c;只有在解析具…

stm32中分析UART中IDLE,RXNE,TC,TXE这些标志位的作用

下面将基于 STM32 标准库&#xff0c;结合之前提到的不同应用场景&#xff0c;给出使用 TXE、TC、IDLE 和 RXNE 标志位的代码示例及分析。 1. 连续数据发送&#xff08;使用 TXE&#xff09; 应用场景 向外部设备连续发送大量数据&#xff0c;如向显示屏发送显示数据、向传感…

【AI】技术人如何系统学习AI大模型应用开发?

从理论认知到全栈落地的完整指南 一、认知突破&#xff1a;理解大模型的技术本质&#xff08;1-2周&#xff09; 1.1 基础理论筑基 必学内容 大模型演进脉络&#xff1a;从Transformer到GPT-4的技术跃迁核心机制解析&#xff1a;注意力机制、位置编码、自监督学习关键能力边界…

TDengine SQL 函数

单行函数 数学函数 ABSACOSASINATANCEILCOSDEGREESEXPFLOORGREATESTLEASTLNLOGMODPIPOWRADIANSRANDROUNDSIGNSINSQRTTANTRUNCATE 字符串函数 ASCIICHARCHAR_LENGTHCONCATCONCAT_WSLENGTHLOWERLTRIMPOSITIONREPEATREPLACERTRIMSUBSTRING/SUBSTRSUBSTRING_INDEXTRIMUPPER 转换函数…

sed 命令\1 引用捕获组

正则表达式中使用 (pattern) 定义分组&#xff0c;sed 会按顺序记录这些分组&#xff08;最多支持9个&#xff0c;即 \1 到 \9&#xff09;‌ # 将 "key:value" 替换为 "value:key" echo "key:value" | sed -r s/(.*):(.*)/\2:\1/ 将路径 /home…