darph
2006-01-22, 22:28:13
Ja.
Ich habe ein jogl Frame und male da was. Aus Performancegründen soll sich das bild nur dann aktualisieren, wenn es das auch soll, also wenn sich was geändert habe und/oder ich ihm das sage. Aus dem Grunde gibt es keinen Animator, da dieser ja afaik die Framerate so hoch wie möglich drücken würde.
Soweit ich weiß gibt es also nur: "Update so oft wie möglich" oder "update nur, wenn das eh neu gezeichnet werden muß, zum Beispiel weil ein anderen Fenster drüber lag"
Wie kann ich aber jetzt meine View nur genau dann updaten lassen, wenn ich das möchte?
Unser aktuelles Workaround - wir haben ein JFrame, das wir kurz visible und dann wieder invisible setzen.
Das ist aber erstens unschön und unfein und bringt zweitens noch einen Rattenschwanz an Problemen mit sich, neben Performanceeinbrüchen klaut der JFrame dem aktuellen Fenster auch noch den Fokus. Das darph nicht sein.
Es muß doch auch in jogl sowas geben wie die gewöhnliche repaint() Methode - daß ich von außen sagen kann: "Hey, es hat sich was geändert, update!"
Nur wie kann ich das anstellen?
Ich habe ein jogl Frame und male da was. Aus Performancegründen soll sich das bild nur dann aktualisieren, wenn es das auch soll, also wenn sich was geändert habe und/oder ich ihm das sage. Aus dem Grunde gibt es keinen Animator, da dieser ja afaik die Framerate so hoch wie möglich drücken würde.
Soweit ich weiß gibt es also nur: "Update so oft wie möglich" oder "update nur, wenn das eh neu gezeichnet werden muß, zum Beispiel weil ein anderen Fenster drüber lag"
Wie kann ich aber jetzt meine View nur genau dann updaten lassen, wenn ich das möchte?
Unser aktuelles Workaround - wir haben ein JFrame, das wir kurz visible und dann wieder invisible setzen.
Das ist aber erstens unschön und unfein und bringt zweitens noch einen Rattenschwanz an Problemen mit sich, neben Performanceeinbrüchen klaut der JFrame dem aktuellen Fenster auch noch den Fokus. Das darph nicht sein.
Es muß doch auch in jogl sowas geben wie die gewöhnliche repaint() Methode - daß ich von außen sagen kann: "Hey, es hat sich was geändert, update!"
Nur wie kann ich das anstellen?