簡體   English   中英

如何在沒有延遲的情況下在Windows中重新定位圖形?

[英]How to reposition graphics in windows with no latency?

我正在嘗試為Windows 8編寫自定義光標圖形。 我將它用於一個使用一個或任意數量的WiimotesWindows發送觸摸輸入的應用Windows ,這意味着我需要能夠顯示多個cursors 我不能使用cursor的構建來進行觸摸,因為從遠處觀看時很難看到它們。

目前我正在為每個光標使用一個單獨的透明窗口,我用DirectX繪制光標圖形,但是為了實際重新定位cursor我使用win32方法SendMessageSetWindowPos將窗口移動到當前cursor位置。 這將導致重新定位的延遲幾乎為零,但會使用不合理的處理時間。 在同時移動多個光標時,有時接近30%

我最初嘗試的是繪制一個覆蓋整個屏幕的透明窗口。 我已經嘗試了一個WPF窗口,在Canvas上重新定位形狀,並直接繪制到Desktop Window ManagerD3D DirectX實例,並通過更改變換matrixes重新定位。 這些將導致一些非常煩人的毫秒延遲。

如何在屏幕上繪圖,一個cursor會以低延遲和低CPU

如果你正在使用D3D / DirectDraw。

已知雙緩沖會導致輸入滯后,三重原因甚至更多。 如果考慮VSYNC,那么該過程將阻塞甚至多達20毫秒。

這意味着輸入事件之間會有20ms的差距。

Double / Tripple緩沖通常不是問題'因為VSYNC阻止渲染屏幕所需的時間為2000%。

因為渲染屏幕通常需要1-2毫秒,但是等待VSYNC需要17-24毫秒。

例如[c ++]:
- 看看這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM