"Animation" stoppt nach 10sek ohne irgendetwas getan zu haben



  • Hi,
    ich habe folgenden Timer:
    SetTimer(hWnd,ID_FOO,render_delay,NULL);

    In der ID_FOO Nachricht lasse ich eine Animation zeichnen. Diese kann man mit einem Druck auf einen Button pausieren und wieder aufnehmen.
    Das funktioniert auch alles wunderbar, bis nach ca. 10Sek. die Animation nicht mehr auf den Bildschirm gezeichnet wird, sondern der entsprechende Bereich im Fenster einfach weiss bleibt anstatt sich mit der Anmation zu füllen. Die Timer Nachricht wird weiterhin ausgeführt.
    Es scheint so als würde irgendetwas nach einer gewissen Zeit seine Gültigkeit verlieren (Backbuffer DC??), wodurch die Zeichenfunktionen zwar ausgeführt werden, jedoch nicht mehr auf den Fensterzeichenbereich kopiert werden können...



  • Ach du kacke 😃 Hab das Problem jetzt eingegrenzt... WNDWIDTH und WNDHEIGHT, welche die Fenstergröße speichern sind nach besagter Zeit einfach 0, wodurch die Koordinaten natürlich nicht mehr richtig berechnet werden können und dadurch auch nichts gezeichnet werden kann... Das einzige womit die beiden Variablen verändert werden ist durch Abfrage der WM_SIZE Nachricht, nur warum sollte diese nach ca. 10sek die Fenstergrösse auf 0 setzen, obwohl der Anwender nichts an dessen Größe geändert hat? WTF 😮

    case WM_SIZE:
    		WNDHEIGHT=HIWORD(lParam);
    		WNDWIDTH=LOWORD(lParam);
    

    EDIT: Ne an dem liegts auch nicht, war ein Trugschluss meinerseits... Welche Möglichkeiten gibts denn, die sowas verursachen können? Irgendwo nen Buffer Overflow oder sowas? Handles die ungültig werden? Ich weiß beim besten willen nicht weiter.... 😞


Anmelden zum Antworten