Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
SirWayne Gast
|
Verfasst am: 28. März 2006 16:55 Titel: Applet |
|
|
Könnte mir jemand kurz erklären was dieser kleine Programmauschnitt macht...
Code: |
...
Image buffer;
Graphics2D gBuffer;
public void paint(Graphics g) {
// Double-Buffering
if (buffer==null) {
buffer=createImage(this.getSize().width, this.getSize().height);
gBuffer=(Graphics2D)buffer.getGraphics();
}
gBuffer.clearRect(0,0,this.getSize().width, this.getSize().height);
...
|
Danke.... |
|
Nach oben |
|
|
|
TMSearcher
Anmeldungsdatum: 19.05.2005 Beiträge: 270 Wohnort: Bremen
|
Verfasst am: 28. März 2006 18:21 Titel: double buffering |
|
|
Hi,
hier wird das „double buffering“ vorbereitet. Double buffering ist notwendig damit man saubere grafische Animationen oder Bewegungen durchführen kann. Wird es nicht eingesetzt kommt es zu einem sog. tearing oder flickering (zerreißen der Animation), das ganze sieht dann sehr unruhig und besch... aus. Der Effekt entsteht durch den Bildwechsel des Monitors zusammen mit dem Zeichnen des Bildes. Beim double buffering wird die Grafik zuerst in einen Hintergrundpuffer geschrieben, während der Bildwechselpause wird dann der Grafikspeicher mit dem Hintergrundbuffer getauscht und man hat schlagartig ein neues Bild und die Zeit bzw. der Zeitpunkt des Zeichnens der Grafik spielt keine Rolle mehr.
Ich hoffe ich konnte mich einigermaßen verständlich ausdrücken, ich mal einfach einige Fachwörter (wie Vertikalaustastlücke, Strahlrücklaufzeiten, V-Sync, etc.) weggelassen.
So jetzt zu deinem Programmteil:
Die if Anweisung prüft ob bereits ein Hintergrundspeicher existiert, wenn nein wird einer angelegt der exakt der Größe und Dimensionen des Ausgabe-Screens hat. Anschließend wird Hintergrundspeicher gelöscht und damit für die neue Grafik vorbereitet – und dann ...
Gruß
TMS
Unter Wikipedia gibts auch noch einen Link dazu
http://de.wikipedia.org/wiki/Double_Buffering
Allerdings wird hier mehr die Hardwaretchnische Lösung beschrieben, die unter OpenGL und DirectX eingesetzt wird. _________________ Intelligent life is so very rare,
the rarest thing in creation
and the most precious
This is Earth Calling.. |
|
Nach oben |
|
|
SirWayne Gast
|
Verfasst am: 10. Apr 2006 16:05 Titel: |
|
|
Ja o.k versteh ich....
aber wenn ich Swing benutze brauch ich das nicht...auf jeden flackert es nicht.Denk mal das ist dann schon eingebaut |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum nicht herunterladen
|
|