2011-07-08 34 views
1

我正在研究一個MDI應用程序,它可能包含一些(> 40)實時(30 fps)更新圖表;每個圖必須可能呈現3D幾何體。我已經嘗試過使用SlimDX(每個窗口)使用Direct2D,但是添加超過16個窗口時性能下降非常糟糕。任何人都有這方面的經驗,其反饋可能有用嗎?使用D3D10/11和MDI窗口的性能

  • 我目前使用的D3D10/11 API,根據文檔有一個交換鏈每個窗口。在D3D9文檔中,您可以在出現之前切換窗口,這就是建議的用法。我應該嘗試切換到D3D9嗎?它可能是交換鏈切換問題嗎?
  • 如果它不是交換鏈問題,跳過D2D並管理我自己的頂點緩衝區並渲染使用D3D對我來說可能更好嗎?

問候!

+0

是的,我正在那樣做。 [這是一個檢測許多不同模塊上的尖峯(定時,堆分配等)的系統,因此需要屏幕上的大量窗口來確定哪個系統行爲不正常。] –

回答

0

您將一個大窗口/上下文分成> 40個單元格,並在每個窗格中繪製一個圖表(您可以使用剪刀測試來實施單元格邊界),從而獲得什麼樣的性能?

如果不好,您需要降低複雜性或以某種方式優化繪圖。

如果單個窗口可以足夠快地呈現所有內容,請考慮這樣做 - 單個窗口。實現你自己的最大化/可拖動分離器行爲並不是那麼困難。

+0

是的,這是計劃B.甚至在實施它之前,我我認爲我可以放心地認爲它不會有性能問題。但是,由於我失去了內置的窗口細節,例如調整個別圖形的大小,內置上下文菜單,關閉/最小化窗口以及我需要的最重要窗口,每個窗口都有一個滾動條以查看歷史記錄。我必須重寫每個功能的輪子... –

+0

@RCaloca:您可以嘗試使用Windows內置滾動條和按鈕控件來獲得至少某些功能。來自兒童控制的複雜剪輯可能會或可能不會像許多單獨的上下文那樣引起儘可能多的perf命中。 –