# OpenGLShader::GetUniformInfos() ```cpp const std::vector& GetUniformInfos() const override; ``` ## 作用 返回当前 program 的 uniform 反射结果集合。 ## 当前实现行为 - 首次调用时执行 `CacheUniformInfos()` - 通过 `glGetProgramInterfaceiv(..., GL_UNIFORM, GL_ACTIVE_RESOURCES, ...)` 枚举 uniform - 对每个资源读取: - 名称长度 - 类型 - 偏移 - 数组大小 - 根据部分常见 GL 类型估算 `size` - 把结果缓存到 `m_uniformInfos` - 后续调用直接返回缓存 ## 需要特别注意 - `bindPoint` 当前使用的是枚举到的资源索引,不等同于显式 layout binding - `size` 只覆盖部分常见标量、向量、矩阵类型,其他类型可能得到 `0` - 这套缓存会在成功编译后重置,并在 [Shutdown](Shutdown.md) 时清空 ## 相关文档 - [GetUniformInfo](GetUniformInfo.md) - [GetUniformLocation](GetUniformLocation.md) - [OpenGLShader](OpenGLShader.md)