是否可以使用默认的.net绘制方法(System.Drawing方法)绘制到SharpDX Texture2D对象的东西,以便我可以将其显示为纹理? 最好使用SharpDX Toolkit。
如果是,怎么样?
编辑:我到目前为止所尝试的内容:
Bitmap b = new Bitmap(100,100);
MemoryStream ms = new MemoryStream();
b.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
Texture2D tex = Texture2D.Load(g.device, ms); // crashing here
ms.Close();
答案 0 :(得分:6)
b.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
Texture2D tex = Texture2D.Load(g.device, ms);
Save()调用使内存流位于流的末尾。哪个会混淆Load()方法,它无法从流中读取任何数据。您必须明确地回滚流。在两行代码之间插入此语句:
ms.Position = 0;