Einzelnen Beitrag anzeigen
Ungelesen 16.01.11, 19:05   #2
tha_specializt
`
 
Registriert seit: Nov 2010
Ort: Zuhause
Beiträge: 142
Bedankt: 37
tha_specializt ist noch neu hier! | 0 Respekt Punkte
Standard

Dein Problem ist ein grundlegendes : du hast (vermutlich) keine Hardware-Unterstützung beim Zeichnen also musst du dich massiv einschränken. Wenn man nun wirklich (!) Software-Rendering für solche Dinge nutzen will so muss man auf Techniken wie Double Buffering, Bitfelder-Maskierung / Blitting etc. zurückgreifen, solltest dich mal in Bezug auf das schlau machen in deiner erwählten Sprache.
Deinem Wortlaut entnehme ich dass du es bisher nur mit Sleep "probiert" hast ... nun, das lässt doch sehr stark vermuten dass dir noch grundlegendes Wissen in Bezug auf Softwareentwicklung fehlt. Wenn du eine while-Schleife für das Zeichnen verwendest UND dich dann wunderst dass es unterschiedlich schnell abläuft und höchstwahrscheinlich auch 100% CPU-Last verursacht ... dann kann ich dir nur wohlwollend empfehlen zuerst einmal das Entwickeln von Software zu erlernen - ansonsten wirst du mit zunehmender Komplexität nur noch auf mehr solcher "Phänomene" stoßen.

Dein Problem würde man nun lösen indem man eigene Zeichnungsroutinen entwirft die den zu-zeichnenden Differentialbereich ermittelt (Blitting) und mittels Hochpräszisionstimer das Zeichnen selbst auf feste Intervalle verlagert - das alles natürlich nebenläufig, keinesfalls im Mainthread.
Und zum "mal eben testen" würde ein Sleep() reichen, 1 ms Wartezeit zwischen jedem Zeichnungsvorgang reicht meist, sofern das Zeichnen selbst nicht derart intensiv ist dass es länger als 1 ms dauert (in dem Fall kann man meist von einem Programmierfehler ausgehen)
tha_specializt ist offline   Mit Zitat antworten