我正在嘗試爲Windows 8
編寫自定義光標圖形。我將使用它來使用一個或任何數量的Wiimotes
發送觸摸輸入到Windows
,這意味着我需要能夠顯示幾個cursors
的應用程序。我無法使用cursor
的內部版本進行觸摸,因爲從遠處觀看時很難看清楚。如何在沒有延遲的窗口中重新定位圖形?
目前我使用的每個在其上予繪製光標圖形與DirectX
光標一個單獨的透明窗口,但對於cursor
的實際重新定位我通過使用win32
方法SendMessage
將窗口移動到當前cursor
位置和SetWindowPos
。這將導致重新定位的接近零延遲,但它將使用不合理的處理時間量。有時在30%
附近同時移動多個遊標。
我最初嘗試的是繪製到覆蓋整個屏幕的透明窗口。我試過了一個WPF
窗口,在Canvas上重新定位形狀,並直接繪製到Desktop Window Manager
的D3D
DirectX
實例,並通過更改變換matrixes
重新定位。這些會導致一些非常煩人的毫秒延遲。
如何在屏幕上繪製一個cursor
,它將以低延遲和低位移動CPU
?
你不僅可以使用覆蓋整個屏幕的單個透明窗口嗎? –
是的,這就是我在「其他方法」上所做的,但我不知道如何無延遲地重新定位圖形(最好是消除鋸齒和半透明)。 – Simphax