Files
XCEngine/docs/api/rhi/texture/texture.md
ssdfasd d83ed56177 fix(rhi): Fix RHI abstraction layer API docs per api-skill.md template
- Rename texture/dtor.md to destructor.md per template spec
- Remove duplicate non-hyphenated fence docs (getnativehandle.md, issignaled.md, getcompletedvalue.md)
- Fix template field issues:
  - swap-chain, command-queue: 类型 now uses 'class (abstract)'
  - sampler: 头文件 now uses full path 'XCEngine/RHI/RHISampler.h'
  - types: 类型 fixed from 'structs' to 'struct'
  - enums: 类型 fixed from 'enums' to 'enum class'
- Fix include paths in command-queue and pipeline-layout code examples
- Create missing constructor/destructor docs for 11 classes:
  buffer, texture, shader, device, command-list, command-queue,
  fence, sampler, swap-chain, pipeline-state, pipeline-layout
- Update class overview pages to include constructor/destructor entries
2026-03-22 03:07:41 +08:00

3.4 KiB
Raw Blame History

RHITexture

命名空间: XCEngine::RHI

类型: class (abstract)

头文件: XCEngine/RHI/RHITexture.h

描述: GPU 纹理资源抽象接口,用于管理 1D、2D、3D 纹理和立方体贴图等 GPU 资源。

概述

RHITexture 是 GPU 纹理资源的抽象接口,封装了 1D、2D、3D 纹理和立方体贴图等资源的创建、状态管理、查询等操作。通过 RHI 抽象层RHITexture 可在不同图形 APIDirectX 12、OpenGL之间无缝切换。

公共方法

方法 描述
RHITexture 默认构造函数
~RHITexture 虚析构函数
GetWidth 获取纹理宽度
GetHeight 获取纹理高度
GetDepth 获取纹理深度
GetMipLevels 获取 Mip 级别数量
GetFormat 获取纹理格式
GetTextureType 获取纹理类型
GetState 获取资源状态
SetState 设置资源状态
GetNativeHandle 获取原生句柄
GetName 获取资源名称
SetName 设置资源名称
Shutdown 关闭并释放资源

纹理类型 (TextureType)

枚举值 描述
TextureType::Texture1D 1D 纹理
TextureType::Texture2D 2D 纹理
TextureType::Texture2DArray 2D 纹理数组
TextureType::Texture3D 3D 纹理(体积纹理)
TextureType::TextureCube 立方体贴图
TextureType::TextureCubeArray 立方体贴图数组

纹理格式 (Format)

格式 描述
Format::Unknown 未知格式
Format::R8_UNorm 单通道 8 位归一化
Format::R8G8_UNorm 双通道 8 位归一化
Format::R8G8B8A8_UNorm 四通道 8 位归一化
Format::R16G16B16A16_Float 四通道 16 位浮点
Format::R32G32B32A32_Float 四通道 32 位浮点
Format::R16_Float 单通道 16 位浮点
Format::R32_Float 单通道 32 位浮点
Format::D16_UNorm 16 位深度
Format::D24_UNorm_S8_UInt 24 位深度 + 8 位模板
Format::D32_Float 32 位深度
Format::BC1_UNorm BC1 压缩 (DXT1)
Format::BC2_UNorm BC2 压缩 (DXT2/3)
Format::BC3_UNorm BC3 压缩 (DXT4/5)
Format::BC4_UNorm BC4 压缩
Format::BC5_UNorm BC5 压缩
Format::BC6H_UF16 BC6H 压缩 (UF16)
Format::BC7_UNorm BC7 高质量压缩
Format::R32G32B32A32_UInt 四通道 32 位无符号整数
Format::R32_UInt 单通道 32 位无符号整数

使用示例

// 假设已通过 RHIDevice 创建了纹理
RHITexture* texture = device->CreateTexture(desc);

// 查询纹理属性
uint32_t width = texture->GetWidth();
uint32_t height = texture->GetHeight();
Format format = texture->GetFormat();
TextureType type = texture->GetTextureType();

// 设置资源状态
texture->SetState(ResourceStates::PixelShaderResource);

// 设置调试名称
texture->SetName("DiffuseMap_Main");

// 获取原生句柄(用于平台特定操作)
void* nativeHandle = texture->GetNativeHandle();

// 关闭并释放资源
texture->Shutdown();

相关文档