Win2D 官方文章系列翻译 - 像素格式
本文为个人博客备份文章,原文地址:
http://validvoid.net/win2d-pixel-formats/
DirectXPixelFormat 枚举 包含了 Direct3D 和 DXGI 所使用全部各种像素格式,但其中只有部分被 Win2D 所支持 (或被 Win2D 构建的基础—— Direct2D 所支持)。
如果不确定该采用哪种格式,默认选择 B8G8R8A8UIntNormalized
作为像素格式以及 Premultiplied
作为 CanvasAlphaMode (场景 Alpha 模式)适用于大多数场景。
以下列出的所有格式均被 Direct3D 特性等级 11 的 GPU 硬件(用于桌面计算机以及多数平板电脑)所支持。特性等级 9 的 GPU (常用于手机)仅支持一个子集。如果你想要使用某个标记为“并非所有设备支持”的格式,你需要在资源创建失败时捕获相应的异常并自动选择一种通用有效的选项。
CanvasBitmap 格式
DirectXPixelFormat | 兼容的CanvasAlphaMode | 备注 |
---|---|---|
B8G8R8A8UIntNormalized | Premultiplied, Ignore | 默认格式 |
B8G8R8A8UIntNormalizedSrgb | Premultiplied, Ignore | 并非所有设备支持 |
B8G8R8X8UIntNormalized | Ignore | |
R8G8B8A8UIntNormalized | Premultiplied, Ignore | |
R8G8B8A8UIntNormalizedSrgb | Premultiplied, Ignore | 并非所有设备支持 |
R16G16B16A16Float | Premultiplied, Ignore | 并非所有设备支持 |
R32G32B32A32Float | Premultiplied, Ignore | 并非所有设备支持 |
R16G16B16A16UIntNormalized | Premultiplied, Ignore | 并非所有设备支持 |
R8G8UIntNormalized | Ignore | 并非所有设备支持 |
R8UIntNormalized | Ignore | 并非所有设备支持 |
A8UIntNormalized | Premultiplied, Straight | |
BC1UIntNormalized | Premultiplied, Ignore | 尚未完全被 Win2D 支持1 |
BC2UIntNormalized | Premultiplied, Ignore | 尚未完全被 Win2D 支持1 |
BC3UIntNormalized | Premultiplied, Ignore | 尚未完全被 Win2D 支持1 |
1 Win2D 尚不完全支持块压缩格式(BC1、BC2 以及 BC3)。虽然可以通过 CanvasBitmap.CreateFromBytes
创建块压缩位图,并从原生 Direct2D 或 Direct2D 进行绘制和交互,但 Win2D 没有提供任何加载此类格式图像的途径,GetPixelBytes
、SetPixelBytes
以及 CopyPixelsFromBitmap
方法也不能对分块压缩数据正常使用。在 Win2D 的未来版本中将会改进这一情况。
CanvasRenderTarget 格式
DirectXPixelFormat | 兼容的 CanvasAlphaMode | 备注 |
---|---|---|
B8G8R8A8UIntNormalized | Premultiplied, Ignore | 默认格式 |
B8G8R8A8UIntNormalizedSrgb | Premultiplied, Ignore | 并非所有设备支持 |
R8G8B8A8UIntNormalized | Premultiplied, Ignore | |
R8G8B8A8UIntNormalizedSrgb | Premultiplied, Ignore | 并非所有设备支持 |
R16G16B16A16Float | Premultiplied, Ignore | 并非所有设备支持 |
R32G32B32A32Float | Premultiplied, Ignore | 并非所有设备支持 |
R16G16B16A16UIntNormalized | Premultiplied, Ignore | 并非所有设备支持 |
A8UIntNormalized | Premultiplied, Straight |
CanvasSwapChain 格式
DirectXPixelFormat | 兼容的 CanvasAlphaMode | 备注 |
---|---|---|
B8G8R8A8UIntNormalized | Premultiplied, Ignore | 默认格式 |
R8G8B8A8UIntNormalized | Premultiplied, Ignore | |
R16G16B16A16Float | Premultiplied, Ignore | 并非所有设备支持 |
本博客系备份博客,原博客地址为:
http://validvoid.net/