public synchronized void setRenderOptions() { if (canvas != null) { this.remove(canvas); } screenScaleFactor = PrefsSingleton.get().getInt("screenScaling", 2); smoothScale = PrefsSingleton.get().getBoolean("smoothScaling", false); if (PrefsSingleton.get().getBoolean("TVEmulation", false)) { renderer = new NTSCRenderer(); NES_WIDTH = 302; } else { renderer = new RGBRenderer(); NES_WIDTH = 256; } if (PrefsSingleton.get().getInt("region", 0) > 1) { NES_HEIGHT = 240; renderer.setClip(0); } else { NES_HEIGHT = 224; renderer.setClip(8); } // Create canvas for painting canvas = new Canvas(); canvas.setSize(NES_WIDTH * screenScaleFactor, NES_HEIGHT * screenScaleFactor); canvas.setEnabled(false); // otherwise it steals input events. // Add canvas to game window this.add(canvas); this.pack(); canvas.createBufferStrategy(2); buffer = canvas.getBufferStrategy(); }