Double Buffering zu langsam

Status
Nicht offen für weitere Antworten.

raven

Bekanntes Mitglied
Ich habe eine Application mit dem Double Buffering, aber mir ist das einfach zu langsam.
Gibt es auch noch eine andere Medtode um das Flackern zu verhinder.
Immer ein Bild drüber zeichnen habe ich auch schon versucht ist zwar schneller aber flackert heftiger.
 
B

Beni

Gast
Benutzt du ein VolatileImage? Wenn nicht: mit diesen Dingern kann man einiges an Geschwindigkeit rausholen.
 

Reality

Top Contributor
Zu VolatileImage:

...
However, a few issues will keep your image from being accelerated:

- If you constantly change the contents of the image (for example, drawing graphics primitves into the image), the image won`t be accelerated.

- As of Java SDK 1.4.1 translucent image aren`t accelerated. Only opaque and transparent images are accelerated. Because of this, translucent images are used sparingly in this book.

- Not every System has accelerated image capability
 
B

Beni

Gast
VolatileImage können von jeder Component hergestellt werden "createVolatileImage", und dann verwendet man sie, wie man halt jedes Bild verwendet. Lies am besten mal in der API nach, was sonst noch dazu steht.
 

raven

Bekanntes Mitglied
und was fürn code muss man da reinschreiben?
Ich habe zwar code gefunden aber wenn ich den nehme habe ich 11 Fehler

Diesen Code habe ich genommen:

Code:
	// image creation
 VolatileImage vImg = createVolatileImage(w, h);

 
 // rendering to the image
 void renderOffscreen() {
        do {
            if (vImg.validate(getGraphicsConfiguration()) ==
                VolatileImage.IMAGE_INCOMPATIBLE)
            {
                // old vImg doesn't work with new GraphicsConfig; re-create it
                vImg = createVolatileImage(w, h);
            }
            Graphics2D g = vImg.createGraphics();
            //
            // miscellaneous rendering commands...
            //
            g.dispose();
        } while (vImg.contentsLost());
 }


 // copying from the image (here, gScreen is the Graphics
 // object for the onscreen window)
 do {
        int returnCode = vImg.validate(getGraphicsConfiguration());
        if (returnCode == VolatileImage.IMAGE_RESTORED) {
            // Contents need to be restored
            renderOffscreen();      // restore contents
        } else if (returnCode == VolatileImage.IMAGE_INCOMPATIBLE) {
            // old vImg doesn't work with new GraphicsConfig; re-create it
            vImg = createVolatileImage(w, h);
            renderOffscreen();
        }
        gScreen.drawImage(vImg, 0, 0, this);
 } while (vImg.contentsLost());

Ist der in ordnung[/code]
 

Grizzly

Top Contributor
Zu der Geschichte mit VolatileImage gibt es extra von Sun ein PDF, dass auf 19 Seiten relativ ausführlich beschreibt, wie man VolatileImage benutzt. Vielleicht hilft Dir das ja weiter. :)
 

raven

Bekanntes Mitglied
ja mag wohl sein. Ich bin nicht gerade der Beste in englisch das ich seitenweise Englische Texte übersetzten kann.

Hat jemand sowas auf Deutsch :oops:
 

raven

Bekanntes Mitglied
Hat sich schon erledigt mit dem Deutsch.

Ich habs jetzt aus der PDF Datei genommen

Blos der sagt da fehlt ein Semikolon obwohl keins fehlt seht ihr wo es fehlt

Code:
public void createBackBuffer() {
 		GraphicsConfiguration.gc = getGraphicsConfiguration();
 		cImg = gc.createCompatibleVolatileImage(getWidth(),
							getHeight());
	}
	public void renderFrame() {

	}
	public void paint (Graphics g)
	{
		createBuffer();

		do {
			GraphicsConfiguration gc =
				this.getGraphicsConfiguration();
			int valCode = vImg.validate(gc);
			if(valCode==VolatileImage.IMAGE_INCOMPATIBLE){
				createBackBuffer();
			}
			renderFrame();
			g.drawImage(vImg, 0, 0, this);
		} while(vImg.contentsLost())

		g.setColor(Color.red);
		g.fillOval(Ballx,Bally,10,10);

		g.setColor(Color.gray);
		g.fillRect(50,ypl-30,10,100);
		g.fillRect(910,Cypl-30,10,100);
	}
 
B

Beni

Gast
Eine do-while-Schlaufe braucht ein Semikolon (das dir fehlt):

Code:
do{
}while( ... );
 

raven

Bekanntes Mitglied
was muss man hinter diesem Code für einen Wert schreiben.

Code:
GraphicsConfiguration gc =
 

raven

Bekanntes Mitglied
Ich habe jetzt hingekriegt dass ich keine Fehler mehr habe und ich habe jetzt den Code verwendet

Ich bekomme aber immer eine NullPointerException.
Könnt ihr mir weiter helfen.

Wenn ich das Problem gelöst habe ist das wirklich mein letzter Beitrag zu diesem Theme.

Ich verzweifle langsam schon BITTE

Code:
int w=970;
int h=580;
VolatileImage vImg = createVolatileImage(w, h);

public void renderOffscreen() {
		do {
			if (vImg.validate(getGraphicsConfiguration()) ==
			VolatileImage.IMAGE_INCOMPATIBLE)
			{
				// old vImg doesn't work with new GraphicsConfig; re-create it
				vImg = createVolatileImage(w, h);
			}
			Graphics2D g = vImg.createGraphics();
			g.dispose();
		} while (vImg.contentsLost());
 	}
	public void paint (Graphics g)
	{

		do {
			int returnCode = vImg.validate(getGraphicsConfiguration());
			if (returnCode == VolatileImage.IMAGE_RESTORED) {
				// Contents need to be restored
				renderOffscreen();      // restore contents
			} else if (returnCode == VolatileImage.IMAGE_INCOMPATIBLE) {
				// old vImg doesn't work with new GraphicsConfig; re-create it
				vImg = createVolatileImage(w, h);
				renderOffscreen();
			}
			g.drawImage(vImg, 0, 0, this);
 		} while (vImg.contentsLost());

		g.drawImage(Ball,400,400,this);

		g.setColor(Color.red);
		g.fillOval(Ballx,Bally,10,10);

		g.setColor(Color.gray);
		g.fillRect(50,ypl-30,10,100);
		g.fillRect(910,Cypl-30,10,100);
		System.out.println("Paint aufgerufen");
	}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Problem! Lösung mit Double buffering Allgemeine Java-Themen 3
JAnruVA Datentypen Berechneten String-Wert in Double umwandeln um weiter zu rechnen Allgemeine Java-Themen 7
Neumi5694 double Vergleich Allgemeine Java-Themen 19
G Modulo - double Allgemeine Java-Themen 21
ReinerCoder Eclipse Fehlermeldung - The constructor Double(double) is deprecated Allgemeine Java-Themen 8
O Variablen Addition von Double-Werten ergibt seltsame 0.9999999 Zahlen Allgemeine Java-Themen 2
B Long in einen Double umwandeln und im Label anzeigen Allgemeine Java-Themen 7
VfL_Freak Double mit zwei festen NK-Stellen ausgeben Allgemeine Java-Themen 9
B List<Integer> ist List<Double> ? Allgemeine Java-Themen 6
SkyScreamer Variablen Int umwande in Double/ 1 Miner = 5 Cookies/s Allgemeine Java-Themen 2
T Teile eines Double-Wertes verändern Allgemeine Java-Themen 2
T Double salted bcrypt Allgemeine Java-Themen 0
A Zahl abgerundet obwohl Double Allgemeine Java-Themen 9
R jTable, nur Werte zwischen 2 Double values ausgeben Allgemeine Java-Themen 3
Y String to Double ohne ParseDouble Allgemeine Java-Themen 11
D Double aus String auslesen Allgemeine Java-Themen 8
M double Array Allgemeine Java-Themen 8
P Wird double und float auf jedem Computer gleich berechnet? Allgemeine Java-Themen 10
C String in double[][] konvertieren! Allgemeine Java-Themen 5
M Cast double[]-->Object[] oder Vector<double[]> Allgemeine Java-Themen 3
Zettelkasten Double --> Integer Allgemeine Java-Themen 4
M float, double, BigDecimal Allgemeine Java-Themen 5
S Variablen Prüfen ob Number vom Typ Integer, Float, Double, ... ist Allgemeine Java-Themen 2
J String mit "," in Double Wert konvertieren Allgemeine Java-Themen 7
R Eclipse Verschiedene Ergebnisse bei Berechnung eines double-Werts Allgemeine Java-Themen 5
B Variablen Bug of Float. & Double.MIN_VALUE! Allgemeine Java-Themen 4
T ArrayList<double[]> persitent anlegen Allgemeine Java-Themen 7
K double Zufallszahl Allgemeine Java-Themen 6
S String in Double - letztes Zeichen fehlt Allgemeine Java-Themen 4
T int <-> integer, double <-> Double... Allgemeine Java-Themen 2
J Umstellung von double auf BigDecimal Allgemeine Java-Themen 5
H2SO3- String 1.000,00 in double umwandeln Allgemeine Java-Themen 12
S Double-Checked Locking Allgemeine Java-Themen 4
I 2D-Grafik Polygon mit Double Werten zeichnen Allgemeine Java-Themen 4
M FIFO Queue: bytes in, float/double/etc out Allgemeine Java-Themen 5
H double dispatch und equals(Object) Allgemeine Java-Themen 6
vandread Float/Double probleme bei der Multiplikation?! Allgemeine Java-Themen 3
J Casting Problem Object, Double und String Allgemeine Java-Themen 3
F double auf 2 Nachkommastellen runden Allgemeine Java-Themen 9
D Double to Integer - ist das möglich? Allgemeine Java-Themen 3
T Object auf Double, Int, String testen Allgemeine Java-Themen 5
H2SO3- großen double in string mit e umwandeln Allgemeine Java-Themen 4
T Problem: Double als Geldbetrag - Rundungsfehler Allgemeine Java-Themen 5
P große double Zahlen und modulo Allgemeine Java-Themen 8
G Double Wert über OutputStream verschicken Allgemeine Java-Themen 2
M größer als double? Allgemeine Java-Themen 4
N Double ohne Wissenschaftliche Schreibweiße Allgemeine Java-Themen 5
M Double Braces Notation um Collections zu initialisieren Allgemeine Java-Themen 9
R Eigene ArrayList vom Typ Short, Integer oder Double Allgemeine Java-Themen 4
R Double Werte aus byte[] auslesen Allgemeine Java-Themen 5
T XStream.toXML => double mit , anstelle . Allgemeine Java-Themen 3
G Fehler bei Array.getDouble mit Double[] als Argument! Allgemeine Java-Themen 6
A Problem bei Übergabe von Werten in ein double Array. Allgemeine Java-Themen 21
M Double immer mit 2 Kommastellen Allgemeine Java-Themen 3
G double in Date Allgemeine Java-Themen 5
reibi double-Wert auf 2 Stellen nach dem Komma abschneiden Allgemeine Java-Themen 6
G Genauigkeit von Double Allgemeine Java-Themen 2
F Double mit Streams aus Datei einlesen Allgemeine Java-Themen 3
V "double in Exponentialschreibweise" normal ausgebe Allgemeine Java-Themen 2
S List<Double> oder Double[] in double[] zu konvertieren Allgemeine Java-Themen 6
C casten vom Typ Object nach Double[][] Allgemeine Java-Themen 2
E int vs. float vs. double Allgemeine Java-Themen 7
T cast Object to Double[] Allgemeine Java-Themen 2
DEvent double von c nach Java Allgemeine Java-Themen 4
K Double-Zahl runden Allgemeine Java-Themen 4
J double 3.0 soll ohne Nachkommastelle ausgegeben werden Allgemeine Java-Themen 12
S Java Double addieren Allgemeine Java-Themen 3
A string zu double Allgemeine Java-Themen 3
T double to object Allgemeine Java-Themen 3
J Große Zahl (double) as text ausgeben? Allgemeine Java-Themen 2
G Verständnisproblem double und float Allgemeine Java-Themen 7
padde479 String in double parsen Allgemeine Java-Themen 6
E double auf int runden, nicht abschneiden Allgemeine Java-Themen 2
G Double Zahl quadrieren Allgemeine Java-Themen 8
C double Zahlen mit drei NachkommaStellen in String umwandeln Allgemeine Java-Themen 2
T Nachkommastellen double Allgemeine Java-Themen 18
M double aufrunden Allgemeine Java-Themen 6
W Division mit float und double Allgemeine Java-Themen 2
D JTextfield für double werte Allgemeine Java-Themen 2
S Format von Double Allgemeine Java-Themen 9
F Umwandlungsproblem mit double Allgemeine Java-Themen 2
T Vector <-> double Allgemeine Java-Themen 4
W float/double verhält sich seltsam Allgemeine Java-Themen 6
D Double: Grenzen und Darstellung Allgemeine Java-Themen 7
W String to Double (landesspezifisch) Allgemeine Java-Themen 14
T Fließkomma (double) richtig runden Allgemeine Java-Themen 7
P Class zu Integer, String, Double etc. Allgemeine Java-Themen 11
R Fehler in WindowsXP oder Java? - double in int konvertieren Allgemeine Java-Themen 10
E NumberFormatException bei cast auf double Allgemeine Java-Themen 5
D Wann ist das ergebnis einer Rechnung eine Double? Allgemeine Java-Themen 7
G Double Zahl auf 4 Stellen hinter Komma kuerzen Allgemeine Java-Themen 4
G warum operator || cannot be applied to int, double Allgemeine Java-Themen 11
A Probleme Umwandlung Ausdruck String in double Allgemeine Java-Themen 4
B Double-Wert aus einem HexString erstellen. Allgemeine Java-Themen 11
C Bug in Java1.4.2_03 mit double Allgemeine Java-Themen 5
H Double mit 2 Nachkommastellen speichern. Allgemeine Java-Themen 5
C Double zu Hex oder Byte Allgemeine Java-Themen 4
R JDK installieren OpenJDK-Aufruf sehr langsam Allgemeine Java-Themen 4
K Arbeitsspeicher wird langsam voll Allgemeine Java-Themen 6
E JavaFX RMI extrem langsam wenn Server nicht läuft Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben