What is SDL_Surface?
What is SDL_Surface?
我遵循lazyfoo http://lazyfoo.net/tutorials/SDL/01_hello_SDL/index2.php的教程当绘制到屏幕上时,使用"表面"。它是什么,它类似于SDL_Texture吗?它与缓冲区有关吗?
这个问题很容易通过查看文档来回答。
SDL_Texture
SDL_Texture包含像素数据的高效/优化表示。SDL_Texture
在SDL2.0中引入,支持硬件渲染。渲染SDL_Texture
的方法是
void SDL_RenderPresent
(
SDL_Renderer* renderer
)
您应该尝试只使用SDL_Texture
,因为它们针对呈现进行了优化,与SDL_Surface
相反
SDL_Surface
SDL_Surface基本上是一个包含所有原始像素数据以及一些元信息(如大小和像素格式)的结构体。由于SDL_Surface
只是原始像素数据,因此没有以任何方式进行优化,在渲染时应避免使用。
SDL2.0的某些部分仍然使用SDL_Texture
(如图像加载或文本渲染)
SDL_Surface
转换为SDL_Texture
。SDL_Texture* SDL_CreateTextureFromSurface
(
SDL_Renderer* renderer,
SDL_Surface* surface
)
关于SDL2以及如何使用它制作游戏的更多信息,您可以查看我的博客
相关文章:
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- Mix_Init和Mix_OpenAudio SDL之间的区别是什么
- SDL 窗口不会弹出
- SDL 操纵杆按钮按下/C++
- VSCode IntelliSense无法识别SDL框架的SDL_image扩展库
- C++/SDL "initial value of reference to a non-const must be an lvalue"
- SDL 映像:无法打开映像,仅显示错误消息
- 如何在 3D OpenGL 场景上绘制 SDL 2D 矩形?
- "Undefined symbols for architecture x86_64" 在 SDL 2 (macOS) 中
- 为什么 SDL 在 Mac 上比 Linux 慢得多?
- 在 OSX 上打开 SDL 窗口时不要打开终端窗口
- 关于 Vulkan 并使用 GLFW 抽象出 Surface 创建
- SDL + OpenGL ES 2.0 使用着色器显示纹理
- SDL GPU 为什么将两个图像分成两个单独的循环更快?
- 在 cmake 中找不到 SDL 库
- SDL/C++: 如何平滑但随机地移动矩形?
- 如何与 SDL 库链接?
- 为什么我的C++代码不呈现 SDL 矩形?
- Surface Pro平板电脑上的QML应用程序键盘行为
- 来自 SDL Surface 的 openGL 纹理