Validate und Invalidate (leicht)
-
Mein Programm funktioniert bis auf ein sehr Interessantes Detail.
Viele haben sich sicher schon in manchen WIN32 gefragt:
Kann man das häßliche mitverschieben des Fensterinhaltes beim Fensterziehen verhindern ?
JA, ich verwende ein SetBackgroundBlack mit FLAG_avoidflicker.Doch damit funktioniert das Present() in OnRender manchmal nicht mehr.
Es liegt garantiert an den Kontrollanweisungen Validate() und Invalidate().
Aber wie funktionieren diese, wo sollten sie stehen, oder besser wie Löse ich das Problem ?
// ONTIMER void CoreApp::OnTimer() { // Was genau fehlt ? } // ONRESIZE void CoreApp::OnResize() { window_IsResized= TRUE; if ( FLAG_avoidflicker ) { Rendertarget[0]->BeginDraw(); Rendertarget[0]->Clear(D2D1::ColorF(D2D1::ColorF::Black)); Rendertarget[0]->EndDraw(); SwapChain->Present(1, 0 ); } DiscardDeviceResources(); } // MESSAGE THREAD switch(message) { case WM_SIZE: { pCoreApp->OnResize(); // Was genau fehlt ? } case WM_PAINT: { pCoreApp->OnRender(); // Was genau fehlt ? } case WM_TIMER: { pCoreApp->OnTimer( pCoreApp ); } }
( P.S.: Da die msdn-Doku in engl. ist und ich selbst Parameter für Parameter schon ausgewechselt habe. )
-
Viele haben sich sicher schon in manchen WIN32 gefragt:
falsches forum... (und wenn wir schon bei falsch sind: der satz macht so auch nicht wirklich viel Sinn^^)
warte einfach, bis dich jmd ins richtige verschiebt^^
-
Mal noch der Crosslink:
http://www.spieleprogrammierer.de/phpBB2/viewtopic.php?p=147144#147144
-
unskilled schrieb:
Viele haben sich sicher schon in manchen WIN32 gefragt:
und wenn wir schon bei falsch sind: der satz macht so auch nicht wirklich viel Sinn^^
Hast du noch nie in machen WIN32 gefragt?
-
Vielen Dank !