Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 |
while(1) { Render(); // render something Move(); // move something, get input a.s.o. }; |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
... { switch(uMsg) { case WM_CLOSE: PostQuitMessage(0); return 0; case WM_PAINT: if(pD3DDevice) { Render(); ValidateRect( hwnd, NULL ); } return 0; }; return ::DefWindowProcW(hwnd, uMsg, wParam, lParam); } |
Anonymous
unregistriert
Anonymous
unregistriert
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
// Und hüpfen in die Nachrichtenschleife while(true) { // Haben wir eine Nachricht? Dann sofort bearbeiten // Peek Message liefert false wenn keine Nachricht vorliegt, remember ;) if(PeekMessageW(&myWindow->msg_,NULL,0,0,PM_REMOVE)) { if(myWindow->msg_.message == WM_QUIT) { // Haben wir überhaupt ein Level geladen? if(Global::getInst()->Runtime_.bLevel == true) { // Irrelevantes was bei WM_QUIT abläuft } } TranslateMessage(&myWindow->msg_); DispatchMessageW(&myWindow->msg_); } // Keine Nachricht, wir haben also Rechenzeit frei else { Render::getInst()->renderFrame(); Sleep(10); } |
Zitat von »"nix da"«
Das lohnt sich kein bisschen, daher kann man auf WM_PAINT verzichten, da das dortige Ergebnis sowieso durch die Hauptschleife "übermalt" wird.
Dazu ist es noch langsam! Denn wenn man das Fenster verschiebt, muß man einen Frame 2x rendern.
Anonymous
unregistriert
Werbeanzeige