Window mit 900000 FPS?



  • eLISA schrieb:

    Ich weiß aber jetzt immer noch nicht wieviele FPS mein Windows macht. Kann ir das jetzt mal einer sagen wie ich da den Code machen muss?

    Danke im voraus.

    Eine schlechte Kopie bist du, jawohl!
    Mein Code vom ersten Posting funktioniert einwandfrei.

    while( msg.message != WM_QUIT ) {
            if( PeekMessage( &msg, 0, 0, 0, PM_REMOVE ) ) {
                TranslateMessage( &msg );
                DispatchMessage( &msg );
            }
            else {
                frametime = framerater.elapsed();  //holt die verstrichene Zeit vom PerformanceCounter in Sekunden
                FPS = 1.0f / frametime;
                counter++;
                if( counter > 100000 ) {
                    InvalidateRect( hwnd, 0, true );
                    counter = 0;
                }
    
            }
            fps = FPS;
    

    900000fps, steht doch im Titel

    groovemaster schrieb:

    Naja, das Auge "filmt" schon kontinuierlich. Das Gehirn kann diese Informationen aber nur mit einer bestimmten Frequenz verarbeiten. Insofern sind Menschen auch nur Maschinen. 🙂

    Ist so übrigens nicht ganz richtig. Die Stäbchen brauchen ne gewisse Zeit, um sich wieder "aufzuladen", also um das Vitamin A wieder in seine aktive Form zu bringen. Mit der Verarbeitungszeit des menschlichen Gehirns kann sowieso kein Computer mithalten. Von dem her ne verdammt gute Maschine. 👍



  • ..und weil ich so nett bin, hier der Code wie frau in Windows Text ausgeben kann, ganz ohne Textbox, und Unicode konform:

    //...in den Definitions
    #include <windows.h>
    #include <tchar.h>
    #include <sstream>
    #include <iomanip>
    
    typedef std::basic_stringstream<TCHAR>	tsringstream;
    
    //...in der MsgProc
    tsringstream   text;
    PAINTSTRUCT    ps;
    HDC            hDC;
    switch( msg ) {
    //... 
    case WM_PAINT:
        text << std::setprecision(2) << std::fixed << fps << " FPS" ;
        if( hDC = BeginPaint(  hWnd, &ps ) ) {
            TextOut( hDC, 0, 0, text.str().c_str(), text.str().length() );	
            EndPaint( hWnd, &ps );
        }
        return 0;
    

    ps: kritik erwünscht 😉



  • Elisa schrieb:

    eLISA schrieb:

    Ich weiß aber jetzt immer noch nicht wieviele FPS mein Windows macht. Kann ir das jetzt mal einer sagen wie ich da den Code machen muss?

    Danke im voraus.

    Eine schlechte Kopie bist du, jawohl!
    Mein Code vom ersten Posting funktioniert einwandfrei.

    Man bin ich dumm 🙄



  • Elisa schrieb:

    Elisa schrieb:

    eLISA schrieb:

    Ich weiß aber jetzt immer noch nicht wieviele FPS mein Windows macht. Kann ir das jetzt mal einer sagen wie ich da den Code machen muss?

    Danke im voraus.

    Eine schlechte Kopie bist du, jawohl!
    Mein Code vom ersten Posting funktioniert einwandfrei.

    Man bin ich dumm 🙄

    Oh ja! Und wie! 🙄
    Sei doch mal nett!!!



  • Elisa schrieb:

    ..und weil ich so nett bin, hier der Code wie frau in Windows Text ausgeben kann, ganz ohne Textbox, und Unicode konform:

    //...in den Definitions
    #include <windows.h>
    #include <tchar.h>
    #include <sstream>
    #include <iomanip>
    
    typedef std::basic_stringstream<TCHAR>	tsringstream;
    
    //...in der MsgProc
    tsringstream   text;
    PAINTSTRUCT    ps;
    HDC            hDC;
    switch( msg ) {
    //... 
    case WM_PAINT:
        text << std::setprecision(2) << std::fixed << fps << " FPS" ;
        if( hDC = BeginPaint(  hWnd, &ps ) ) {
            TextOut( hDC, 0, 0, text.str().c_str(), text.str().length() );	
            EndPaint( hWnd, &ps );
        }
        return 0;
    

    ps: kritik erwünscht 😉

    is zwar korrekt aber ...naja wär auch einfacher möglich...:

    #include <windows.h>
    
    //...in der MsgProc
    PAINTSTRUCT    ps;
    TCHAR          szBuf[50]
    switch msg)
    {
    //... 
    case WM_PAINT:
        wsprintf(szBuf, TEXT("%d FPS"), fps);
        if(BeginPaint(hWnd, &ps))
        {
            TextOut(ps.hdc, 0, 0, szBuf, strlen(szBuf));	
            EndPaint(hWnd, &ps );
        }
        return (0);
    // ...
    }
    

    Aber dein Code is natürlich völlig rischtisch 👍 😉

    __________________________________________________________________________

    eLISA schrieb:

    Von dem her ne verdammt gute Maschine. 👍

    du anscheinend auch 🙂 👍

    MfG CodeFinder



  • CodeFinder
    C



  • He Duuu,
    las doch jetzt die flirterei, ich werd noch ganz verlegen :rotwerd:[quote="CodeFinder]

    eLISA schrieb:

    Von dem her ne verdammt gute Maschine. 👍

    du anscheinend auch 🙂 👍

    MfG CodeFinder[/quote]
    Willst du damit sagen, das ich anscheinend auch ein Mensch bin? :p

    Das mit wsprintf hab ich ewig probiert, kam aber zum Schluss, dass es mit floats nicht wirklich funktioniert. Jedenfalls war die Ausgabe immer recht kryptisch.
    Aber werds gleich noch einmal testen..
    Bis später.. 😉



  • wsprintf kann nicht mit float umgehen.



  • Nee, floats in wsprintf is irgendwie nicht so doll 😞
    Diesmal gibts rund **-**2147 Millionen aus.
    Ich mach mir zwar nichts aus hohen Framerates( 😉 😃 ), aber negativ ist dann doch etwas arg wenig.

    Naja nicht so schlimm, mit stringstreams arbeit ich sowieso lieber, is intuitiver, einfach mit << zu verketten. Für directX muss ich eh noch was überlegen, wie ichs da ausgebe.
    Werd wohl ein D3DXFONT nehmen, obwohl das ja etwas lahm sein soll, aber is ja nur zu Testzwecken. Bitmap Fonts mag ich nich, die haben kein schönes Spacing.



  • eLISA schrieb:

    He Duuu,
    las doch jetzt die flirterei, ich werd noch ganz verlegen :rotwerd:[quote="CodeFinder]

    eLISA schrieb:

    Von dem her ne verdammt gute Maschine. 👍

    ==>>
    lol, fühl dich doch einfach geschmeichelt... 😉 ...das is nicht schwer 😃
    _____________________________________________________________________________________

    eLISA schrieb:

    CodeFinder schrieb:

    du anscheinend auch 🙂 👍

    MfG CodeFinder

    Willst du damit sagen, das ich anscheinend auch ein Mensch bin?

    ==>>
    ne ich will damit sagen das du auch ne verdammt gute 'Maschine' bist 😉 😃
    _____________________________________________________________________________________

    eLISA schrieb:

    Das mit wsprintf hab ich ewig probiert, kam aber zum Schluss, dass es mit floats nicht wirklich funktioniert. Jedenfalls war die Ausgabe immer recht kryptisch.
    Aber werds gleich noch einmal testen..
    Bis später.. 😉

    ==>>
    jo wsprintf kann auch nicht mit float umgehen hab mir ehrlich gesagt den Typ von fps nicht angeguckt...-sry- 🤡
    Dazu müsst ihr sprintf nehmen...sry nochmal wg. der Arbeit...die Zeile:

    wsprintf(szBuf, TEXT("%d FPS"), fps);
    

    in diese umändern:

    sprintf(szBuf, TEXT("%f FPS"), fps);
    

    dann sollte es worken (falls nicht noch ein "#include <stdio.h>" zu deinen anderen Includes)...
    _____________________________________________________________________________________

    MfG CodeFinder



  • eLISA schrieb:

    Für directX muss ich eh noch was überlegen, wie ichs da ausgebe.

    wie geil!, kannst du DirectX ??? --- ➡ mein Respekt! ...Obacht 😃

    MfG CodeFinder



  • float fTest = 2.21234234f;
    char cBuffer[256];
    _snprintf(cBuffer, 256, "Die Variable Test: %4.2f", fTest);
    


  • ...pst weitersagen...eLISA und CodeFinder sind ein Liebespaar...



  • (D)Evil schrieb:

    float fTest = 2.21234234f;
    char cBuffer[256];
    _snprintf(cBuffer, 256, "Die Variable Test: %4.2f", fTest);
    

    Heisst 4.2 -> 4 Stellen vor, 2 nach dem Komma? (Bin grad froh, eine Stelle zu haben)
    Wasn _snprintf()? tönt schwer nach nicht standardkonformen c..
    ne da bleib ich doch bei meinem tstringstream! 😉

    CodeFinder schrieb:

    ..wie geil!, kannst du DirectX ??? --- --> mein Respekt! ...Obacht

    Sagen wir mal, ich lerne es 😉
    Is ja nich so schwer, die msdn zu bedienen, M$ rechnet zum Glück mit dem DAU 😃

    CodeFinder schrieb:

    ==>>
    lol, fühl dich doch einfach geschmeichelt...das is nicht schwer

    OK... *geschmeicheltfühl*

    CodeFinder schrieb:

    ==>>
    ne ich will damit sagen das du auch ne verdammt gute 'Maschine' bist

    😃 reingefallen..pass immer auf: was du sagst, und was du meinst, ist nicht das gleiche...
    Aber dann mal Danke für die netten Komplimente.

    CodeFinder schrieb:

    ==>>
    jo wsprintf kann auch nicht mit float umgehen hab mir ehrlich gesagt den Typ von fps nicht angeguckt...-sry-

    Ehrlich gesagt, hab ich auch den Typ nicht angegeben, ich mag nicht, wenn jeder meine Typen kennt 😉

    CodeFinder schrieb:

    Dazu müsst ihr sprintf nehmen...sry nochmal wg. der Arbeit...die Zeile:

    wsprintf(szBuf, TEXT("%d FPS"), fps);
    

    in diese umändern:

    sprintf(szBuf, TEXT("%f FPS"), fps);
    

    dann sollte es worken (falls nicht noch ein "#include <stdio.h>" zu deinen anderen Includes)...

    Wie gesagt, ich mag sstreams, is halt "handier" und cpluspluser

    CodeFinder schrieb:

    MfG CodeFinder

    Auch Dir, schöne Grüsse und vielen Dank fürs "kümmern"

    ps: maximal sind 10 smilies erwünscht 😞 👎



  • Jo _snprintf printf usw sind alles C Funktionen. streams sind bei dtandardkomformen C++ richtig.

    Wobei WinAPI auch C ist 😉



  • Ehrlich gesagt, hab ich auch den Typ nicht angegeben, ich mag nicht, wenn jeder meine Typen kennt 😉

    tze tze tze, und n guten Sinn für Humor hat sie auch noch 😃 😃 ...das mit den smilies is mir auch aufgefallen... 😞

    MfG CodeFinder

    PS: Ließt du n Buch bzgl DirectX ?



  • hmm dein Code ist übrigens doch nicht UNICODE konform denn:

    text << std::setprecision(2) << std::fixed << fps << " FPS" ;
    

    muss:

    text << std::setprecision(2) << std::fixed << fps << TEXT(" FPS") ;
    

    heißen;
    glaub ich zum mindestens ...

    sry Schätzchen 😃 😃 😃 😃 😃 😃 😃

    MfG CodeFinder



  • CodeFinder schrieb:

    Ehrlich gesagt, hab ich auch den Typ nicht angegeben, ich mag nicht, wenn jeder meine Typen kennt 😉

    tze tze tze, und n guten Sinn für Humor hat sie auch noch 😃 😃 ...das mit den smilies is mir auch aufgefallen... 😞

    MfG CodeFinder

    PS: Ließt du n Buch bzgl DirectX ?

    He Du
    's wird hier langsam ziemlich OT..mir is es ja egal..

    nö, wieso bücher kaufen, die eh nur auf ihrem eignen Mist aufbauen?
    Hab mir halt die MSDN Tutorials reingezogen (die sind sehr gut, in Verbindung mit der Referenz), und ein weiteres (keine Ahnung mehr woher) wo einer die DXdevice in ne Klasse gekapselt hat. Die Klasse hab ich nun übernommen und angepasst. Ne Klasse für D3DXFONTS is am entstehn. DInput hab ich auch aus der MSDN. Für ne theoretische Abhandlung über 3D Darstellung ist Vertexwahn's Essay recht gut und kompakt.

    CodeFinder schrieb:

    hmm dein Code ist übrigens doch nicht UNICODE konform denn:

    text << std::setprecision(2) << std::fixed << fps << " FPS" ;
    

    muss:

    text << std::setprecision(2) << std::fixed << fps << TEXT(" FPS") ;
    

    heißen;
    glaub ich zum mindestens ...

    sry Schätzchen (zuviele Smilies)
    MfG CodeFinder

    Sorry Schätzchen, mein Compiler (VS2005EE) schluckt das ohne mucken. Frag mich nich wieso... 😕

    Was du immer für CodeFindest 🤡 😃

    ach und @(D)evil: ich weiss, WinAPI ist elend. 😃
    Kein Grund selbst auch elenden Code zu schreiben.
    DX9 is aber objectorientiert..

    Also zusammenfassend kann man sagen, ich hab erst ein Hauptfenster aufgebaut mit WinAPI, dann nen Timer auf Basis des PerformanceCounters für die Framerate ( da kam für mich der Shock mit 900000FPS wo ich hier mal nachfragen musste ), und danach die DirectX Interfaces implementiert. Inzwischen hab ich ein Fensterchen mit einem Background Surface( noch ist alles 2D )( damals, im Ferienlager, hab ich mit SDL angefangen ) und netten 85-90 FPS.
    Ihr seht, die Ausgabe des floats ist für mich sekundär, aber natürlich nett. Es korrekt zu machen is sowas wie Ehrgeiz. Ich könnts ja auch in ein File schreiben, aber all die "coolen" Games habens doch oben links oder rechts in der HUD stehn.
    Soweit bin ich noch nicht, aber es kommt die Zeit... 😉
    Ok ich könnt noch lange plappern, drück aber jetzt mal auf "Senden"..

    Grüsse an euch alle da draussen 😘



  • ehh, ....

    eLISA schrieb:

    He Du
    's wird hier langsam ziemlich OT..mir is es ja egal..

    was isn "OT" 🤡
    und was war "DAU" 🤡

    MfG CodeFinder



  • sry vergessen zu Fragen 🤡

    nochmal @ eLISA (ich hoffe ich nerv dich nicht 😉 )

    eLISA schrieb:

    wo einer die DXdevice in ne Klasse gekapselt hat

    kannste mir die mal schicken ?, bitte? ...wär echt lieb ...würd ich mir gerne mal angucken 😉

    e-Mail: cpp-coding@arcor.de

    schonmal thX A LoT

    MfG CodeFinder


Anmelden zum Antworten