Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 夏普DX。不支持的像素格式_C#_Directx_Sharpdx - Fatal编程技术网

C# 夏普DX。不支持的像素格式

C# 夏普DX。不支持的像素格式,c#,directx,sharpdx,C#,Directx,Sharpdx,我使用SharpDX,但在像素格式方面有问题。我想让它A8_UNorm并使用OpacityMask但我得到了一个不受支持的IXELFormatException。但根据MSDN,一切都应该是好的。 代码: PixelFormat PF=新的PixelFormat(Format.A8_UNorm,AlphaMode.stright); var desc=new texture2ddedescription() { 宽度=宽度, 高度=高度, Format=Format.A8_UNorm, Samp

我使用SharpDX,但在
像素格式
方面有问题。我想让它
A8_UNorm
并使用
OpacityMask
但我得到了一个
不受支持的IXELFormatException
。但根据MSDN,一切都应该是好的。 代码:

PixelFormat PF=新的PixelFormat(Format.A8_UNorm,AlphaMode.stright);
var desc=new texture2ddedescription()
{
宽度=宽度,
高度=高度,
Format=Format.A8_UNorm,
SampleDescription=新的SampleDescription(1,0),
ArraySize=1,
CpuAccessFlags=0,
用法=ResourceUsage.Default,
MIP级别=1,
BindFlags=BindFlags.RenderTarget | BindFlags.ShaderResource,
};
使用(var d=新数据流(描述宽度*描述高度,真,真))
{
对于(变量i=0;i<描述宽度*描述高度/4;i++)d.Write(0);
使用(Texture2D tex=new Texture2D(GameControl.Device,desc,new DataRectangle(d.DataPointer,desc.Width)))
{
使用(表面温度=tex.QueryInterface())
{
目标=新的RenderTarget(Factory2D、temp、新的RenderTargetProperties(PF));
OpacityMask=新位图(目标、临时、新位图属性(PF));//此处有异常
}
}
}

像素格式支持取决于软件和硬件。您可以使用
CheckFormatSupport()
检查您的平台是否支持您想要的内容。我是这样使用它的:

var format = Format.A8_UNorm;
var supportRequired = FormatSupport.RenderTarget;
var isSupported = device.CheckFormatSupport(format).HasFlag(supportRequired);

请注意,除了
格式支持之外,还有许多选项。RenderTarget
,因此请测试您尝试使用的所有选项。

像素格式支持取决于软件和硬件。您可以使用
CheckFormatSupport()
检查您的平台是否支持您想要的内容。我是这样使用它的:

var format = Format.A8_UNorm;
var supportRequired = FormatSupport.RenderTarget;
var isSupported = device.CheckFormatSupport(format).HasFlag(supportRequired);
请注意,除了
FormatSupport.RenderTarget
,还有许多选项,所以请测试您尝试使用的所有选项