All pastes #1037606 Raw Edit

Something

public java v1 · immutable
#1037606 ·published 2008-06-03 08:30 UTC
rendered paste body
package stein;import java.awt.Color;import java.awt.Graphics;import java.awt.GraphicsConfiguration;import java.awt.GraphicsDevice;import java.awt.GraphicsEnvironment;import java.awt.image.BufferStrategy;import java.text.Format;import java.util.Formatter;import javax.swing.JFrame;/** * First try at gfx test. *  * @author stein *  */public class TestOne {	GraphicsEnvironment gfxEnv;	GraphicsDevice gfxDev;	GraphicsConfiguration gfxConf;	JFrame frame;	public void go() {		gfxEnv = GraphicsEnvironment.getLocalGraphicsEnvironment();		gfxDev = gfxEnv.getDefaultScreenDevice();		gfxConf = gfxDev.getDefaultConfiguration();		frame = new JFrame(gfxConf);		// frame.setUndecorated(true);		frame.setIgnoreRepaint(true);		frame.setSize(300, 200);		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		frame.setVisible(true);		// gfxDev.setFullScreenWindow(frame); FIXME on or off, as needed ...		frame.createBufferStrategy(2);		BufferStrategy bs = frame.getBufferStrategy();		boolean done = false;		int frames = 0;		long lastTime = System.currentTimeMillis();		String fpsString = "FPS: ???";		while (!done) {			// render loop			Graphics g = bs.getDrawGraphics();			try {				renderPicture(g);				g.drawString(fpsString, 10, 40);				long thisTime = System.currentTimeMillis();				if (thisTime - lastTime >= 500) 				{					Formatter f = new Formatter();					double fps = (frames * 1000.0) / (thisTime - lastTime);					lastTime = thisTime;					frames=0;					f.format("FPS: %6.1f", fps);					fpsString=f.toString();					//System.out.println("fsp is "+fps+"|"+f.toString());				}			} finally {				g.dispose();				frames++;			}			g.dispose();			bs.show();//			try {//				Thread.sleep(20);//			} catch (InterruptedException e) {//			}		}		frame.setVisible(false);		frame.dispose();	}	double T = System.currentTimeMillis();	void renderPicture(Graphics g) {		// draw something				double t = System.currentTimeMillis();		double arc = t/1000.0/10.0;				arc = arc-Math.floor(arc);		System.out.printf("arc : %5.3f, %5.1f deg\n",arc,arc*360);				double minute = (long)((t-T) / 1000.0 / 60.0);		long seconds = (long)((t-T) / 1000.0);		System.out.println("MS: "+minute+":"+seconds);				g.setColor(Color.WHITE);		g.fillRect(0, 0, frame.getWidth(), frame.getHeight());		g.setColor(Color.BLACK);		g.drawArc(100, 80, 100, 100, (int)(360*arc), 10);	}	public static void main(String[] args) {		// TODO Auto-generated method stub		new TestOne().go();	}}