2012-03-28 31 views
0

我正在構建基於兩個提供的圖片(不是3D模型)在200 Hz屏幕上繪製立體圖(立體圖像)的應用程序。所以重繪速度的一體化非常重要。我DirectDraw的表面取得的最好成績和他們的翻轉()(開關電流表面的圖像中一):DirectX - 是否有DirectDraw表面Flip()的類似物?

(void) lpddsPrimary->Flip(nullptr, DDFLIP_WAIT); 

但是DirectDraw的是非常過時的,我尋找一種方式來重新實現此功能基於現代DirectX庫。但我真的不想創建四邊形,繪製圖片,因爲它的紋理,計算三維投影矩陣只是爲了輸出二維圖像。

對於DirectX如何實現這一點,我會非常感激。提前致謝。

+0

我不明白爲什麼directdraw過時。使用direct3d爲此目的我自己只是爲它提供的功能,但原理幾乎相同... – Ulterior 2012-03-28 12:44:55

回答

1

爲了您的目的,您可以使用DXGI並完全避免使用D3D。您不會說如何將數據存入後臺緩衝區,但DXGI允許您創建交換鏈,翻轉它(Present)並訪問曲面(例如鎖定它們 - 現在稱爲Map)。對於3D,您需要「1」版本,例如DXGISwapChain1。請參閱http://msdn.microsoft.com/en-us/library/windows/desktop/bb205075(v=vs.85).aspx

請注意,DXGISwapChain1是DXGISwapChain的子類,一些重要的方法(如GetBuffer)位於基本接口中。

+0

謝謝!但是兼容性呢?程序需要在WinXP最終機器上運行。 – khaos 2012-03-28 13:46:35

+0

然後你不能使用現代的DirectX庫。 – 2012-04-03 11:00:58

+0

所以我看,謝謝。 – khaos 2012-04-03 20:31:56