Simplify cases and default to All
This commit is contained in:
committed by
Jeremy Nelson
parent
63fe439a5e
commit
d455899b93
@@ -856,134 +856,39 @@ wgpu::TextureFormat WGPUTexture::fToWGPUTextureFormat(const TextureFormat& fUsag
|
||||
|
||||
wgpu::TextureAspect WGPUTexture::inferWGPUTextureViewAspect(const wgpu::TextureFormat& format,
|
||||
const wgpu::TextureUsage& usage) {
|
||||
switch (format) {
|
||||
case wgpu::TextureFormat::R8Unorm:
|
||||
case wgpu::TextureFormat::R8Snorm:
|
||||
case wgpu::TextureFormat::R8Uint:
|
||||
case wgpu::TextureFormat::R8Sint:
|
||||
case wgpu::TextureFormat::R16Float:
|
||||
case wgpu::TextureFormat::R16Uint:
|
||||
case wgpu::TextureFormat::R16Sint:
|
||||
case wgpu::TextureFormat::RG8Unorm:
|
||||
case wgpu::TextureFormat::RG8Snorm:
|
||||
case wgpu::TextureFormat::RG8Uint:
|
||||
case wgpu::TextureFormat::RG8Sint:
|
||||
case wgpu::TextureFormat::R32Float:
|
||||
case wgpu::TextureFormat::R32Uint:
|
||||
case wgpu::TextureFormat::R32Sint:
|
||||
case wgpu::TextureFormat::RG16Float:
|
||||
case wgpu::TextureFormat::RG16Uint:
|
||||
case wgpu::TextureFormat::RG16Sint:
|
||||
case wgpu::TextureFormat::RGBA8Unorm:
|
||||
case wgpu::TextureFormat::RGBA8UnormSrgb:
|
||||
case wgpu::TextureFormat::RGBA8Snorm:
|
||||
case wgpu::TextureFormat::RGBA8Uint:
|
||||
case wgpu::TextureFormat::RGBA8Sint:
|
||||
case wgpu::TextureFormat::RG32Float:
|
||||
case wgpu::TextureFormat::RG32Uint:
|
||||
case wgpu::TextureFormat::RG32Sint:
|
||||
case wgpu::TextureFormat::RGBA16Float:
|
||||
case wgpu::TextureFormat::RGBA16Uint:
|
||||
case wgpu::TextureFormat::RGBA16Sint:
|
||||
case wgpu::TextureFormat::RGBA32Float:
|
||||
case wgpu::TextureFormat::RGBA32Uint:
|
||||
case wgpu::TextureFormat::RGBA32Sint:
|
||||
case wgpu::TextureFormat::EACR11Unorm:
|
||||
case wgpu::TextureFormat::EACR11Snorm:
|
||||
case wgpu::TextureFormat::EACRG11Unorm:
|
||||
case wgpu::TextureFormat::EACRG11Snorm:
|
||||
case wgpu::TextureFormat::ETC2RGB8Unorm:
|
||||
case wgpu::TextureFormat::ETC2RGB8UnormSrgb:
|
||||
case wgpu::TextureFormat::ETC2RGB8A1Unorm:
|
||||
case wgpu::TextureFormat::ETC2RGB8A1UnormSrgb:
|
||||
case wgpu::TextureFormat::ETC2RGBA8Unorm:
|
||||
case wgpu::TextureFormat::ETC2RGBA8UnormSrgb:
|
||||
case wgpu::TextureFormat::ASTC4x4Unorm:
|
||||
case wgpu::TextureFormat::ASTC4x4UnormSrgb:
|
||||
case wgpu::TextureFormat::ASTC5x4Unorm:
|
||||
case wgpu::TextureFormat::ASTC5x4UnormSrgb:
|
||||
case wgpu::TextureFormat::ASTC5x5Unorm:
|
||||
case wgpu::TextureFormat::ASTC5x5UnormSrgb:
|
||||
case wgpu::TextureFormat::ASTC6x5Unorm:
|
||||
case wgpu::TextureFormat::ASTC6x5UnormSrgb:
|
||||
case wgpu::TextureFormat::ASTC6x6Unorm:
|
||||
case wgpu::TextureFormat::ASTC6x6UnormSrgb:
|
||||
case wgpu::TextureFormat::ASTC8x5Unorm:
|
||||
case wgpu::TextureFormat::ASTC8x5UnormSrgb:
|
||||
case wgpu::TextureFormat::ASTC8x6Unorm:
|
||||
case wgpu::TextureFormat::ASTC8x6UnormSrgb:
|
||||
case wgpu::TextureFormat::ASTC8x8Unorm:
|
||||
case wgpu::TextureFormat::ASTC8x8UnormSrgb:
|
||||
case wgpu::TextureFormat::ASTC10x5Unorm:
|
||||
case wgpu::TextureFormat::ASTC10x5UnormSrgb:
|
||||
case wgpu::TextureFormat::ASTC10x6Unorm:
|
||||
case wgpu::TextureFormat::ASTC10x6UnormSrgb:
|
||||
case wgpu::TextureFormat::ASTC10x8Unorm:
|
||||
case wgpu::TextureFormat::ASTC10x8UnormSrgb:
|
||||
case wgpu::TextureFormat::ASTC10x10Unorm:
|
||||
case wgpu::TextureFormat::ASTC10x10UnormSrgb:
|
||||
case wgpu::TextureFormat::ASTC12x10Unorm:
|
||||
case wgpu::TextureFormat::ASTC12x10UnormSrgb:
|
||||
case wgpu::TextureFormat::ASTC12x12Unorm:
|
||||
case wgpu::TextureFormat::ASTC12x12UnormSrgb:
|
||||
case wgpu::TextureFormat::BC4RUnorm:
|
||||
case wgpu::TextureFormat::BC4RSnorm:
|
||||
case wgpu::TextureFormat::BC5RGUnorm:
|
||||
case wgpu::TextureFormat::BC5RGSnorm:
|
||||
case wgpu::TextureFormat::BC6HRGBUfloat:
|
||||
case wgpu::TextureFormat::BC6HRGBFloat:
|
||||
case wgpu::TextureFormat::BC7RGBAUnorm:
|
||||
case wgpu::TextureFormat::BC7RGBAUnormSrgb:
|
||||
case wgpu::TextureFormat::RGB9E5Ufloat:
|
||||
case wgpu::TextureFormat::RG11B10Ufloat:
|
||||
case wgpu::TextureFormat::BC1RGBAUnorm:
|
||||
case wgpu::TextureFormat::BC1RGBAUnormSrgb:
|
||||
case wgpu::TextureFormat::BC2RGBAUnorm:
|
||||
case wgpu::TextureFormat::BC2RGBAUnormSrgb:
|
||||
case wgpu::TextureFormat::BC3RGBAUnorm:
|
||||
case wgpu::TextureFormat::BC3RGBAUnormSrgb:
|
||||
return wgpu::TextureAspect::All;
|
||||
|
||||
case wgpu::TextureFormat::Depth32Float:
|
||||
case wgpu::TextureFormat::Depth24Plus:
|
||||
case wgpu::TextureFormat::Depth16Unorm:
|
||||
if (static_cast<uint32_t>(usage) & static_cast<uint32_t>(wgpu::TextureUsage::RenderAttachment)) {
|
||||
return wgpu::TextureAspect::DepthOnly;
|
||||
} else if (static_cast<uint32_t>(usage) & static_cast<uint32_t>(wgpu::TextureUsage::TextureBinding)) {
|
||||
return wgpu::TextureAspect::DepthOnly;
|
||||
} else if (static_cast<uint32_t>(usage) & static_cast<uint32_t>(wgpu::TextureUsage::StorageBinding)) {
|
||||
return wgpu::TextureAspect::DepthOnly;
|
||||
} else if (static_cast<uint32_t>(usage) & (static_cast<uint32_t>(wgpu::TextureUsage::CopySrc) | static_cast<uint32_t>(wgpu::TextureUsage::CopyDst))) {
|
||||
return wgpu::TextureAspect::All;
|
||||
}
|
||||
if (format == wgpu::TextureFormat::Depth32Float ||
|
||||
format == wgpu::TextureFormat::Depth24Plus ||
|
||||
format == wgpu::TextureFormat::Depth16Unorm) {
|
||||
if (static_cast<uint32_t>(usage) & static_cast<uint32_t>(wgpu::TextureUsage::RenderAttachment) ||
|
||||
static_cast<uint32_t>(usage) & static_cast<uint32_t>(wgpu::TextureUsage::TextureBinding) ||
|
||||
static_cast<uint32_t>(usage) & static_cast<uint32_t>(wgpu::TextureUsage::StorageBinding)) {
|
||||
return wgpu::TextureAspect::DepthOnly;
|
||||
|
||||
case wgpu::TextureFormat::Stencil8:
|
||||
if (static_cast<uint32_t>(usage) & static_cast<uint32_t>(wgpu::TextureUsage::RenderAttachment)) {
|
||||
return wgpu::TextureAspect::StencilOnly;
|
||||
} else if (static_cast<uint32_t>(usage) & static_cast<uint32_t>(wgpu::TextureUsage::StorageBinding)) {
|
||||
return wgpu::TextureAspect::StencilOnly;
|
||||
} else if (static_cast<uint32_t>(usage) & (static_cast<uint32_t>(wgpu::TextureUsage::CopySrc) | static_cast<uint32_t>(wgpu::TextureUsage::CopyDst))) {
|
||||
return wgpu::TextureAspect::All;
|
||||
}
|
||||
return wgpu::TextureAspect::StencilOnly;
|
||||
|
||||
case wgpu::TextureFormat::Depth24PlusStencil8:
|
||||
case wgpu::TextureFormat::Depth32FloatStencil8:
|
||||
if (static_cast<uint32_t>(usage) & static_cast<uint32_t>(wgpu::TextureUsage::RenderAttachment)) {
|
||||
return wgpu::TextureAspect::All;
|
||||
} else if (static_cast<uint32_t>(usage) & static_cast<uint32_t>(wgpu::TextureUsage::TextureBinding)) {
|
||||
return wgpu::TextureAspect::DepthOnly;
|
||||
} else if (static_cast<uint32_t>(usage) & static_cast<uint32_t>(wgpu::TextureUsage::StorageBinding)) {
|
||||
return wgpu::TextureAspect::All;
|
||||
} else if (static_cast<uint32_t>(usage) & (static_cast<uint32_t>(wgpu::TextureUsage::CopySrc) | static_cast<uint32_t>(wgpu::TextureUsage::CopyDst))) {
|
||||
return wgpu::TextureAspect::All;
|
||||
}
|
||||
return wgpu::TextureAspect::All;
|
||||
|
||||
default:
|
||||
} else if (static_cast<uint32_t>(usage) & (static_cast<uint32_t>(wgpu::TextureUsage::CopySrc) | static_cast<uint32_t>(wgpu::TextureUsage::CopyDst))) {
|
||||
return wgpu::TextureAspect::All;
|
||||
}
|
||||
return wgpu::TextureAspect::DepthOnly;
|
||||
}
|
||||
|
||||
if (format == wgpu::TextureFormat::Stencil8) {
|
||||
if (static_cast<uint32_t>(usage) & static_cast<uint32_t>(wgpu::TextureUsage::RenderAttachment) ||
|
||||
static_cast<uint32_t>(usage) & static_cast<uint32_t>(wgpu::TextureUsage::StorageBinding)) {
|
||||
return wgpu::TextureAspect::StencilOnly;
|
||||
} else if (static_cast<uint32_t>(usage) & (static_cast<uint32_t>(wgpu::TextureUsage::CopySrc) | static_cast<uint32_t>(wgpu::TextureUsage::CopyDst))) {
|
||||
return wgpu::TextureAspect::All;
|
||||
}
|
||||
return wgpu::TextureAspect::StencilOnly;
|
||||
}
|
||||
|
||||
if (format == wgpu::TextureFormat::Depth24PlusStencil8 ||
|
||||
format == wgpu::TextureFormat::Depth32FloatStencil8) {
|
||||
if (static_cast<uint32_t>(usage) & static_cast<uint32_t>(wgpu::TextureUsage::TextureBinding)) {
|
||||
return wgpu::TextureAspect::DepthOnly;
|
||||
}
|
||||
return wgpu::TextureAspect::All;
|
||||
}
|
||||
|
||||
return wgpu::TextureAspect::All;
|
||||
}
|
||||
|
||||
wgpu::TextureView WGPUTexture::makeTextureView(const uint8_t& baseLevel, const uint8_t& levelCount,
|
||||
|
||||
Reference in New Issue
Block a user