Files
XCEngine/docs/api/rhi/opengl/device/get-capabilities.md
2026-03-20 02:35:45 +08:00

2.0 KiB

OpenGLDevice::GetCapabilities

const RHICapabilities& GetCapabilities() const override

获取 OpenGL 设备能力。

详细描述

返回设备的硬件能力和特性支持信息。能力信息在 InitializeWithExistingWindow() 期间通过查询 OpenGL 获得。

查询的能力项

能力字段 描述 OpenGL 查询
majorVersion OpenGL 主版本 GL_MAJOR_VERSION
minorVersion OpenGL 次版本 GL_MINOR_VERSION
bSupportsGeometryShaders 几何着色器支持 始终 true
bSupportsComputeShaders 计算着色器支持 GL_VERSION >= 4.3
bSupportsTessellation 曲面细分支持 GL_VERSION >= 4.1
bSupportsExplicitMultiThreading 多线程支持 始终 false
maxTexture2DSize 2D 纹理最大尺寸 GL_MAX_TEXTURE_SIZE
maxTextureCubeSize 立方体贴图最大尺寸 GL_MAX_CUBE_MAP_TEXTURE_SIZE
maxRenderTargets 最大渲染目标数 GL_MAX_DRAW_BUFFERS
maxColorAttachments 最大颜色附件数 GL_MAX_DRAW_BUFFERS
maxViewports 最大视口数 GL_MAX_VIEWPORTS
maxAnisotropy 最大各向异性级别 GL_MAX_TEXTURE_MAX_ANISOTROPY
maxVertexAttribs 最大顶点属性数 GL_MAX_VERTEX_ATTRIBS

返回值

const RHICapabilities& - 设备能力结构的常量引用

复杂度

O(1) - 返回内部缓存的能力信息

示例

const RHICapabilities& caps = device.GetCapabilities();

std::cout << "OpenGL Version: " << caps.majorVersion << "." << caps.minorVersion << std::endl;
std::cout << "Max Texture Size: " << caps.maxTexture2DSize << std::endl;
std::cout << "Max Render Targets: " << caps.maxRenderTargets << std::endl;

if (caps.bSupportsComputeShaders) {
    std::cout << "Compute shaders supported" << std::endl;
}

相关文档