2015-03-19 123 views
0

我正在使用Direct3D9程序集將一些舊的MDX代碼移植到SharpDX上。移植舊的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); 

網格類存在,但不包含圓柱或盒的方法。我經歷了大量的文檔,找不到解決方案。

除了與網格類的問題,我無法找到匹配的類和方法在SharpDX如下:

using (Surface backbuffer = _device.GetBackBuffer(0, 0)) 
{ 
    GraphicsStream stream = SurfaceLoader.SaveToStream(ImageFileFormat.Bmp, backbuffer); 
    return new Bitmap(stream); 
} 

GraphicStreamSurfaceLoader不存在。

回答

2

我有類似的問題,從舊的Managed Microsoft.DirectX到SharpDx9。 對於網格,我們必須實現我們自己的網格類,因爲在SharpDx.Mesh(它只是一個模擬類,我猜)中沒有像柱面,球體或盒子這樣的優點。 但是對於SurfaceLoader檢查Surface類本身,它有靜態方法可能會符合您的需求。例如:

Surface.ToStream()