diff --git a/RabiClone_0.0a.zip b/RabiClone_0.0a.zip index cb37d9d..c1a308c 100644 Binary files a/RabiClone_0.0a.zip and b/RabiClone_0.0a.zip differ diff --git a/bin/RabiClone.jar b/bin/RabiClone.jar index ccc6b79..6222db0 100644 Binary files a/bin/RabiClone.jar and b/bin/RabiClone.jar differ diff --git a/src/sig/RabiClone.java b/src/sig/RabiClone.java index 27aedd0..7f987c9 100644 --- a/src/sig/RabiClone.java +++ b/src/sig/RabiClone.java @@ -23,6 +23,7 @@ import sig.engine.PaletteColor; import java.awt.Toolkit; import java.awt.event.KeyEvent; +import java.io.PrintStream; public class RabiClone { public static final String PROGRAM_NAME = "RabiClone"; @@ -59,6 +60,9 @@ public class RabiClone { public static long TIME = 0; public static void main(String[] args) { + System.setProperty("sun.java2d.transaccel", "True"); + System.setProperty("sun.java2d.d3d", "True"); + System.setProperty("sun.java2d.ddforcevram", "True"); Key.InitializeKeyConversionMap(); diff --git a/src/sig/engine/Panel.java b/src/sig/engine/Panel.java index f3e89a2..91f8402 100644 --- a/src/sig/engine/Panel.java +++ b/src/sig/engine/Panel.java @@ -194,21 +194,9 @@ public class Panel extends JPanel implements Runnable,KeyListener { @Override public void paintComponent(Graphics g) { - super.paintComponent(g); - do { - do { - Graphics g2 = RabiClone.f.getBufferStrategy().getDrawGraphics(); - // perform draws on pixels - render(); - // ask ImageProducer to update image - mImageProducer.newPixels(); - // draw it on panel - g2.drawImage(this.imageBuffer,0,0,getWidth(),getHeight(),0,0,RabiClone.BASE_WIDTH,RabiClone.BASE_HEIGHT,this); - g2.dispose(); - } while (RabiClone.f.getBufferStrategy().contentsRestored()); - RabiClone.f.getBufferStrategy().show(); - } while (RabiClone.f.getBufferStrategy().contentsLost()); - updateFPSCounter(); + //super.paintComponent(g); + // perform draws on pixels + g.drawImage(this.imageBuffer,0,0,getWidth(),getHeight(),0,0,RabiClone.BASE_WIDTH,RabiClone.BASE_HEIGHT,this); } /** @@ -369,7 +357,27 @@ public class Panel extends JPanel implements Runnable,KeyListener { public void run() { while (true) { // request a JPanel re-drawing - repaint(); + //repaint(); + render(); + mImageProducer.newPixels(); + if (RabiClone.f!=null&&RabiClone.f.getBufferStrategy()!=null) { + do { + do { + if (RabiClone.f.getBufferStrategy()!=null) { + Graphics g2 = RabiClone.f.getBufferStrategy().getDrawGraphics(); + if (g2!=null) { + try { + paintComponent(g2); + } finally { + g2.dispose(); + } + } + } + } while (RabiClone.f.getBufferStrategy().contentsRestored()); + RabiClone.f.getBufferStrategy().show(); + } while (RabiClone.f.getBufferStrategy().contentsLost()); + } + updateFPSCounter(); //System.out.println("Repaint "+frameCount++); waitForNextFrame(); }