我试图弄清楚如何将下面的代码(用于 SlimDX)转换为 SharpDX。
var texure2d = new Texture2D(_device, texDesc);
var dbox = _deviceContext.MapSubresource(texure2d, 0, MapMode.WriteDiscard, MapFlags.None);
foreach (var thisColor4 in color) // color is a List<Color4>
{
dbox.Data.Write((byte)(thisColor4.Red * 255));
dbox.Data.Write((byte)(thisColor4.Green * 255));
dbox.Data.Write((byte)(thisColor4.Blue * 255));
dbox.Data.Write((byte)(0));
}
_deviceContext.UnmapSubresource(texure2d, 0);
我对 DataRectagle 也有类似的问题:
var heightMapTexure = new Texture2D(device, textureDesc,
new DataRectangle(
HeightMapWidth * Marshal.SizeOf(typeof(Half)), // Pitch
new DataStream(hmap.ToArray(), false, false) // dataStream
)
);
阅读 SlimDX 源代码,看起来它们存储了一段DataStreams
时间,而 SharpDX 存储了 a pointer
,我不确定如何继续,因为我以前从未使用过指针。任何有关如何使其工作或实现相同结果的替代方法的帮助将不胜感激。