2016-07-04 41 views
7

MSDN mówi (Extended Window Styles):Kiedy należy używać WS_EX_NOREDIRECTIONBITMAP?

WS_EX_NOREDIRECTIONBITMAP: Okno nie czyni z powierzchnią przekierowania. Dotyczy to okien, które nie mają widocznej treści lub które wykorzystują mechanizmy inne niż powierzchnie do zapewniania wizualnego.

Co oznacza w tym przypadku "okno renderowane na powierzchnię przekierowania" w porównaniu z "mechanizmami innymi niż powierzchnie"? Które z poniższych: GDI, D3D9, D3D11, D3D12 są liczone jako pierwsze i drugie? Czy mam używać tego rozszerzonego stylu okna, kiedy rysuję tylko używając Direct3D?

+3

Jest to optymalizacja, aby zapobiec tworzeniu się bufora wstecznego. Ta, którą DWM (aka Aero) wykorzystuje do łączenia okien w twoim interfejsie do ekranu. Zdecydowanie nieodpowiednie dla GDI, zdecydowanie dla DirectComposition, może dla DirectX. Zawsze łatwo powiedzieć, kiedy nie powinieneś go używać, obszar klienta winodw będzie niewidoczny lub funkcje takie jak na żywo miniatury i Aero Peek nie będą działać. –

+2

[Kenny Kerr] (http://stackoverflow.com/users/500701/kenny-kerr) krótko wyjaśnia, co robi styl okna w swoim artykule [Windows z C++: wysokowydajne nadawanie warstw za pomocą mechanizmu składu systemu Windows] (https : //msdn.microsoft.com/magazine/dn745861.aspx). – IInspectable

Odpowiedz

2

DirectComposition to główne API, którego można użyć do rysowania okna bez bitmapy przekierowania. DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL na swapchains bez DirectComposition może również uruchomić ten tryb.

Jedno martwić podczas korzystania z API jest to, że nie musi być nieprzezroczyste tło okna, więc DWM może zrobić dużo dodatkowej pracy zmieszanie z rzeczy, za oknem, które nie są właściwie niewidoczne

+0

Nie masz na myśli "... rzeczy za oknem, które nie są ** faktycznie widoczne **?" –

Powiązane problemy