gpt4 book ai didi

c++ - 使我的游戏独立于 C++ 中的图形 API

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:45:56 26 4
gpt4 key购买 nike

我想让我的游戏独立于所使用的底层图形 API(以便在我想将其移植到另一个平台时减少耦合)。

我目前正在使用 SDL,最初我想将 SDL_Renderer 封装在 GraphicAPI_SDL 类中,实现我的通用 GraphicAPI 接口(interface)。此 API 会创建 Image_SDL(封装 SDL_Texture),它实现了我的通用图像接口(interface)。

我的问题是,当我想使用我的 GraphicAPI 实例渲染图像时,底层的 GraphicAPI_SDL 必须将图像转换为 Image_SDL,以获得 SDL_Texture。而且这样的造型很丑。

处理这种情况的最佳方法是什么?我已经将每个 SDL_Texture 存储在我的 GraphicAPI_SDL 中的 vector 中,每个 Image 实例只有一个整数对应于 vector 中的纹理索引,因此只有 GraphicAPI_SDL 类直接使用 SDL,但是是否有更好的方法(例如使用模式)?

最佳答案

如果您正在使用 SDL 2.0(并且只是制作 2D 游戏),那么您已经在很大程度上与底层图形 API 分离。当您设置窗口时,SDL 2.0 可以自动为您的系统选择正确的渲染器(DirectX 或 OpenGL),您的代码根本不需要担心它。但是,如果您的游戏需要较低级别的绘图控制(即,您正在制作 3D 游戏),您将需要自己处理渲染器。

有关详细信息,请参见此处:http://wiki.libsdl.org/MigrationGuide#Video

关于c++ - 使我的游戏独立于 C++ 中的图形 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20576244/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com