# Verständnisfrage BufferStrategy: g.dispose()



## Revenant (31. Mrz 2007)

Hi,

ich versteh nicht ganz was der Aufruf von g.dispose() bewirkt.


1. Ist es richtig, dass die Ressourcen die von dem Grafik-Kontext benutzt werden wieder freigegeben werden?!
2. Kann man g.dispose() auch weglassen? In manchem Code steht es, andermal auch wieder nicht.
3. Wenn dispose() den Grafik-Kontext auflöst, wie kann dann stragety.show() wissen was es anzuzeigen hat (also das Flipping/ kopieren von einem Buffer vornehmen?)


```
// Get hold of a graphics context for the accelerated 
	// surface and blank it out
	Graphics2D g = (Graphics2D) strategy.getDrawGraphics();
	g.setColor(Color.black);
	g.fillRect(0,0,800,600);

	// finally, we've completed drawing so clear up the graphics
	// and flip the buffer over
	g.dispose();
	strategy.show();
```

Revenant


----------



## Wildcard (31. Mrz 2007)

Wenn du ein Graphics Objekt selbst erzeugst bist du auch selbst dafür verantwortlich es wieder freizugeben (dispose).
Wenn du ein bestehendes Graphics Objekt verwendest musst du darauf vertrauen das es an anderer Stelle freigegeben wird.


----------



## Revenant (31. Mrz 2007)

gut, bleibt noch Frage 3, wie stragety.show() dann weiß welchen Grafik-Kontext es flippen muss.

g.dispose() erst nach stragety.show() wäre doch irgendwie logischer


----------



## Wildcard (31. Mrz 2007)

Die API hilft:
http://java.sun.com/javase/6/docs/api/java/awt/image/BufferStrategy.html#getDrawGraphics()
*Creates* a graphics context for the drawing buffer


----------

