2012-03-02 80 views
1

我似乎得到一個錯誤,我的WinXP(SP3)PC上測試時。錯誤在下面,但使用我的Win7筆記本電腦時我不明白。D3DERR_INVALIDCALL:無效的調用(-2005530516)

D3DERR_INVALIDCALL: Invalid call (-2005530516) 
at SlimDX.Result.Throw[T](Object dataKey, Object dataValue) 
at SlimDX.Result.Record[T](Int32 hr, Boolean failed, Object dataKey, Object dataValue) 
at SlimDX.Direct3D9.Device..ctor(Direct3D direct3D, Int32 adapter, DeviceType deviceType, IntPtr  controlHandle, CreateFlags createFlags, PresentParameters[] presentParameters) 

即代碼導致錯誤是:

using (var d3d = new Direct3D()) 
{ 
using (var tmpDevice = new Device(d3d, 0, DeviceType.Hardware, IntPtr.Zero, CreateFlags.HardwareVertexProcessing, new PresentParameters() { BackBufferWidth = 1, BackBufferHeight = 1 })) 
{ 
//I have some code here also but this doesn't even get here 
} 
} 

據我所知崩潰是創建新的設備來做。

+0

看看這個鏈接的一些可能的解決方案http://stackoverflow.com/questions/2497641/slimdx-device-reset-crashes-with-a-d3derr-invalidcall-invalid-call-200553051 – MethodMan 2012-03-02 00:40:03

+0

我給它以前,即時在我的winXP系統下載SDK現在,所以我可以得到一些更多的調試信息 – Ryuk 2012-03-02 00:43:57

+0

聽起來不錯..我沒有在很長一段時間btw使用XP,所以我希望能夠幫助 – MethodMan 2012-03-02 00:47:05

回答

1

我的猜測是,你的顯卡可能不支持1x1的後備緩衝。

查看調試運行時的輸出。每當你得到一個InvalidCall的機會很好,那裏有某種診斷信息表明你做錯了什麼。