Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » WM_TIMER

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.03.2005, 09:27 Uhr
~radix
Gast


Hallo,

ich wollte mal wissen, was so der minimal erreichbare Millisekundenwert bei WinXP is.

--> SetTimer(hwnd, ERSTER_TIMER, 1. NULL); wird er ja sicher nich machen

Also in welchen Zeitabständen werden dann die WM_TIMER Nachrichten kommen, wenn ich das von eben eingebe?

MfG radix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.03.2005, 12:45 Uhr
Oliver
S2-Pixelgeneral


WM_TIMER hat ne relativ niedrige Priorität unter den Nachrichten, deswegen kommt es drauf an, wie viel dein Programm mit anderen Nachrichten beschäftigt ist. Wenn du genaue Zeitabstände messen willst, kannst du z.B. timeGetTime() immer abfragen, wenn sich das Programm im Leerlauf befindet.
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.03.2005, 15:27 Uhr
~radix
Gast


Danke und wie sieht das nun mit Gameloops aus, wie kombiniere ich denn die PeekMessage schleife mit der Spielschlewifen und was mach ich mit der CALLBACK WndProc?

MfG radix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.03.2005, 17:31 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


wenn du double-buffering benutzt könntest du z.b einen eigenen thread für das schreiben in den backbuffer machen und das "buffer-switchen" immer über einen WM_TIMER, so kriegt man schon einigermaßen hohe framerates hin (also so ca 90fps bei nem 2ghz)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.03.2005, 17:44 Uhr
Oliver
S2-Pixelgeneral


Ich mach's immer so:


C++:
LRESULT CALLBACK MessageHandler(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{

    switch(msg)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }

    return DefWindowProc(hwnd,msg,wParam,lParam);
}


while(msg.message!=WM_QUIT)
    {
        if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        else
        {
            // Eingaben verarbeiten
            // Zeichnen
        }
    }



Also ohne Threads.



Zitat:

(also so ca 90fps bei nem 2ghz)



Wenn der Monitor soweit kommt, meiner schafft z.B. nur 75.
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
21.03.2005, 15:54 Uhr
~radix
Gast


Was gibts den für Befehle fürs Doublebuffering?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
21.03.2005, 16:05 Uhr
~radix
Gast


Danke für den Code!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
21.03.2005, 16:09 Uhr
Oliver
S2-Pixelgeneral



Zitat:

Was gibts den für Befehle fürs Doublebuffering?



Das kommt darauf an, welche Grafiklib du nutzt.
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: