Files
XCEngine/docs/api/XCEngine/RHI/OpenGL/OpenGLDevice/CreateTexture.md

1.0 KiB

OpenGLDevice::CreateTexture

RHITexture* CreateTexture(const TextureDesc& desc) override;
RHITexture* CreateTexture(const TextureDesc& desc, const void* initialData, size_t initialDataSize, uint32_t rowPitch = 0) override;

作用

创建 OpenGL 纹理对象;可选地带一份初始数据。

当前实现行为

无初始数据路径

  • 根据 TextureType 选择 OpenGLTextureType
  • 把抽象 Format 转为 OpenGLFormat
  • 调用 OpenGLTexture::Initialize(...)
  • 设置抽象层格式字段

带初始数据路径

  • 会先 MakeContextCurrent()
  • 只在当前上下文可用时继续
  • 初始化成功后把纹理状态设为 ResourceStates::PixelShaderResource

注意事项

  • 带初始数据路径显式保证了上下文当前;无初始数据路径则默认假设当前上下文已经可用
  • rowPitchinitialDataSize 当前没有形成复杂的数据上传策略

相关文档