- 修复opengl/下13个文件对overview.md的错误引用,改为opengl.md - 修复opengl/shader/下2处get-native-handle.md的错误路径引用 - 修复rhi.md中rhifactory路径错误 - 修复opengl.md中对d3d12.md的错误引用 - 修复opengl/README.md中的overview.md引用 - 新增RHIFramebuffer完整文档(7个文件) - 新增RHIRenderPass完整文档(7个文件) - 更新rhi.md总览页,添加RHIFramebuffer和RHIRenderPass分类
2.6 KiB
2.6 KiB
OpenGLSwapChain
命名空间: XCEngine::RHI
类型: class
描述: OpenGL 交换链实现,继承自 RHISwapChain。基于 GLFW 窗口管理,用于 OpenGL 渲染的帧缓冲交换。
概述
OpenGLSwapChain 是 OpenGL 后端的交换链实现,负责管理渲染目标帧缓冲的呈现。它继承自 RHISwapChain 抽象接口,通过 GLFW 窗口系统进行帧缓冲交换。
枚举类型
| 枚举 | 描述 |
|---|---|
PresentMode |
呈现模式(Immediate/VSync/Mailbox/Fifo) |
SurfaceFormat |
表面格式(RGBA8/RGBA16F/RGBA32F/BGRA8) |
公共方法
| 方法 | 描述 |
|---|---|
OpenGLSwapChain |
构造函数 |
~OpenGLSwapChain |
析构函数 |
Initialize |
初始化交换链 |
Initialize(mode) |
使用模式初始化 |
Shutdown |
关闭交换链 |
Present |
呈现画面 |
SwapBuffers |
交换缓冲 |
Resize |
调整交换链大小 |
SetVSync |
设置垂直同步 |
IsVSync |
检查是否垂直同步 |
SetFullscreen |
设置全屏模式 |
IsFullscreen |
检查是否全屏 |
ShouldClose |
检查是否应关闭 |
SetShouldClose |
设置关闭标志 |
PollEvents |
处理窗口事件 |
GetCurrentBackBufferIndex |
获取当前后台缓冲区索引 |
GetCurrentBackBuffer |
获取当前后台缓冲区 |
GetWidth |
获取宽度 |
GetHeight |
获取高度 |
GetFramebufferWidth |
获取帧缓冲宽度 |
GetFramebufferHeight |
获取帧缓冲高度 |
SetFramebufferSize |
设置帧缓冲大小 |
GetWindow |
获取窗口 |
GetNativeHandle |
获取原生句柄 |
使用示例
#include <XCEngine/RHI/OpenGL/OpenGLSwapChain.h>
// 创建并初始化
XCEngine::RHI::OpenGLSwapChain swapChain;
GLFWwindow* window = /* 获取 GLFW 窗口 */;
swapChain.Initialize(window, true);
// 游戏循环
while (!swapChain.ShouldClose()) {
swapChain.PollEvents();
// 渲染逻辑
Render();
swapChain.Present(1, 0);
}
// 关闭
swapChain.Shutdown();
相关文档
- OpenGL 后端总览
- RHISwapChain - 抽象交换链接口