# Code:250 FPS mit Fullscreenantialising 1024x768



## strati1991 (27. Mrz 2008)

```
/**
 * Copyright by Christoph Heidelmann(C) Datum: 27.03.2008
 */
import java.awt.DisplayMode;
import java.awt.Frame;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.RenderingHints;
import java.awt.Window;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.BufferStrategy;
import java.awt.image.ImageObserver;
import java.awt.image.VolatileImage;
import java.util.HashMap;
import java.util.Map;

  
public class FullScreen {
	    Boolean doit = true;
	    GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();
	    GraphicsDevice myDevice = graphicsEnvironment.getScreenDevices()[0];
	    Window myWindow;
	    DisplayMode newDisplayMode;
	    BufferStrategy strategy;
	    Frame mainFrame = null;
	    long StartZeit;
	    Map<RenderingHints.Key,Object> m = new HashMap<RenderingHints.Key, Object>();
	    String text = "";
	    public FullScreen()
	    {
	        final GraphicsConfiguration gc = myDevice.getDefaultConfiguration(); 
	        mainFrame = new Frame(gc);
	        mainFrame.setUndecorated(true);
	        mainFrame.setIgnoreRepaint(true);
	        mainFrame.setResizable(false);
	        mainFrame.enableInputMethods(false);
	        myDevice.setFullScreenWindow(mainFrame);    
	        m.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
	        m.put(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_SPEED);
	        m.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_SPEED);
	        m.put(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR);
	        m.put(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_DISABLE);
	        m.put(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED);
	        m.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
	        m.put(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE);
	        m.put(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_OFF);
	        mainFrame.addKeyListener(new KeyListener(){

				public void keyPressed(KeyEvent arg0) {
				}

				public void keyReleased(KeyEvent arg0) {
				
				}

				public void keyTyped(KeyEvent arg0) {
				
				}
	        	
	        });
	        int frame = 0;
	        StartZeit = System.currentTimeMillis();
	        long acttime = 0;
	        long fps = 0;
	        DisplayMode dm = new DisplayMode(1024, 768, 32, DisplayMode.REFRESH_RATE_UNKNOWN);
	        myDevice.setDisplayMode(dm);
	        Graphics2D backbuffer = (Graphics2D) mainFrame.getGraphics();
	        backbuffer.setRenderingHints(m);
	        Graphics2D g;
	        ImageObserver io = mainFrame;
	        while(true){
	        	VolatileImage vi = mainFrame.createVolatileImage(1024,768);
	        	g = (Graphics2D) vi.createGraphics();
	        	g.setRenderingHints(m);
	            if(acttime>StartZeit+1000){
	            	StartZeit = System.currentTimeMillis();
	            	fps = frame;
	            	frame = 0;
	            }
	            g.drawString("fps: " +fps , 20, 10);
	            frame++;
	            backbuffer.drawImage(vi, 0, 0, io);
	            acttime = System.currentTimeMillis();
	        }
	    }
	    public static void main(String[] args){
	    	new FullScreen();
	    }
	    
}
```


----------



## strati1991 (27. Mrz 2008)

Ohne antialising kommt mein Rechner auf 325 FPS


----------



## Gast (27. Mrz 2008)

Und was moechtest du uns jetzt mitteilen?


----------



## Marco13 (27. Mrz 2008)

Atemberaubende 68 FPS auf einer GeForce 8800 GT


----------



## Gast (21. Apr 2008)

bekomm einen error. läuft wohl nur unter windows. habe fedora linux....


----------



## Quaxli (21. Apr 2008)

So gesehen macht das Programm ja nix... . Sinn und Zweck eines leeren Fensters mit hoher FPS-Zahl ist mir nicht ganz klar


----------



## Evil-Devil (21. Apr 2008)

Quaxli hat gesagt.:
			
		

> So gesehen macht das Programm ja nix... . Sinn und Zweck eines leeren Fensters mit hoher FPS-Zahl ist mir nicht ganz klar


Vor allem dann nur so wenig FPS...


----------



## maki (21. Apr 2008)

Ach, alles über 60 ist pure Verschwendung...


----------



## Chris H. (25. Mai 2008)

Ich wollt ja nur mal zeigen das man mit java2d auch recht schnelle 2d grafiken machen kann und wie das geht.
Vielleicht kann ja jemand diesen code sinnvoll nutzen.


----------



## AlArenal (26. Mai 2008)

Chris H. hat gesagt.:
			
		

> Ich wollt ja nur mal zeigen das man mit java2d auch recht schnelle 2d grafiken machen kann und wie das geht.
> Vielleicht kann ja jemand diesen code sinnvoll nutzen.



Klar, wir ändern den Hintergrund auf schwarz und bringen das Spiel "Das schwarze Loch" raus, das einfach nur aus einem leeren Bildschirm besteht. Wird sicher ein Kassenschlager...


----------



## Quaxli (26. Mai 2008)

Schon gemein das alles...., aber wir sind manchmal sehr böse hier. 

@Chris H.:
Du könntest wenigstens noch eine Animation rein packen und wenn es erstmal nur grafische Elemente, wie z. B. Rechtecke sind (aber bitte mehr als eins). Dann hast Du keinesfalls mehr 250 FPS, aber wenn diese dann immer noch recht hoch sind, haben wir wenigstens ein konkretes Beispiel im Forum, das vorzeigbar ist.


----------

