Files
XCEngine/docs/api/XCEngine/RHI/OpenGL/OpenGLShader/GetUniformInfos.md

970 B

OpenGLShader::GetUniformInfos()

const std::vector<UniformInfo>& GetUniformInfos() const override;

作用

返回当前 program 的 uniform 反射结果集合。

当前实现行为

  • 首次调用时执行 CacheUniformInfos()
  • 通过 glGetProgramInterfaceiv(..., GL_UNIFORM, GL_ACTIVE_RESOURCES, ...) 枚举 uniform
  • 对每个资源读取:
    • 名称长度
    • 类型
    • 偏移
    • 数组大小
  • 根据部分常见 GL 类型估算 size
  • 把结果缓存到 m_uniformInfos
  • 后续调用直接返回缓存

需要特别注意

  • bindPoint 当前使用的是枚举到的资源索引,不等同于显式 layout binding
  • size 只覆盖部分常见标量、向量、矩阵类型,其他类型可能得到 0
  • 这套缓存会在成功编译后重置,并在 Shutdown 时清空

相关文档