2015-03-19 2 views
0

Я портирую старый код MDX на SharpDX, используя сборки Direct3D9.Портирование старого кода MDX

Я был в состоянии «конвертировать» большую часть кода на 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 не существует.

ответ

2

У меня была аналогичная проблема с старым управляемым Microsoft.DirectX на SharpDx9. Для Meshes нам пришлось реализовать наши собственные классы Mesh, так как в SharpDx.Mesh нет приматов, таких как цилиндр, сфера или ящик (это просто классный класс, который я думаю). Но для SurfaceLoader проверьте класс Surface, он имеет статические методы, которые, вероятно, будут соответствовать вашим потребностям. Например:

Surface.ToStream()

Смежные вопросы