移植旧的MDX代码

时间:2015-03-19 09:40:16

标签: sharpdx

我正在使用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);
}

GraphicStreamSurfaceLoader不存在。

1 个答案:

答案 0 :(得分:2)

我有类似的问题,从旧的Managed Microsoft.DirectX到SharpDx9。 对于Meshes,我们必须实现我们自己的Mesh类,因为SharpDx.Mesh中没有像cylinder,sphere或box这样的pritive(我猜它只是一个模拟类)。 但是对于SurfaceLoader,请检查Surface类本身,它具有可能符合您需求的静态方法。例如:

Surface.ToStream()