我正在使用Direct3D9程序集将一些旧的MDX代码移植到SharpDX。
我能够将大部分代码“转换”为SharpDX,但我坚持以下内容:
Mesh result = Mesh.Cylinder(_device, _arrowRadius1, _arrowRadius2, _arrowLength, _arrowNumberOfSlices, _arrowNumberOfStacks);
Mesh result = Mesh.Box(_device, _axisLength, _axisThick, _axisThick);
Mesh.TextFromFont(_device, new System.Drawing.Font("Berlin Sans FB", 12), text, 5f, 0.2f);
网格类存在但不包含Cylinder或Box方法。我经历了大量的文档,无法找到解决方案。
除了Mesh类的问题,我在SharpDX中找不到匹配的类和方法:
using (Surface backbuffer = _device.GetBackBuffer(0, 0))
{
GraphicsStream stream = SurfaceLoader.SaveToStream(ImageFileFormat.Bmp, backbuffer);
return new Bitmap(stream);
}
GraphicStream
和SurfaceLoader
不存在。
答案 0 :(得分:2)
我有类似的问题,从旧的Managed Microsoft.DirectX到SharpDx9。 对于Meshes,我们必须实现我们自己的Mesh类,因为SharpDx.Mesh中没有像cylinder,sphere或box这样的pritive(我猜它只是一个模拟类)。 但是对于SurfaceLoader,请检查Surface类本身,它具有可能符合您需求的静态方法。例如:
Surface.ToStream()