# OpenGLDevice::GetCapabilities ```cpp 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) - 返回内部缓存的能力信息 ## 示例 ```cpp 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; } ``` ## 相关文档 - [OpenGLDevice](device.md) - 类总览 - [RHICapabilities](../../capabilities/capabilities.md) - 能力结构定义 - [GetDeviceInfo](get-device-info.md) - 获取设备信息