// ---------- Main Render Method ---------- private void render() { // Validates Buffer Strategy BufferStrategy bs = frame.getBufferStrategy(); if (bs == null) { frame.createBufferStrategy(3); return; } Graphics g = bs.getDrawGraphics(); // Renders Buffer Strategy Things / Direct Pixels render.render(g); g.drawImage(img, 0, 0, width, height, null); // Renders Trees render.renderTrees(g); // Renders Graphics Object Things render.renderOverlay(g, lastFPS); g.dispose(); bs.show(); }
public FrameRenderer(final JFrame target, boolean isFullscreen, RenderFitMode renderFitMode) { m_renderTarget = target; m_renderFitMode = renderFitMode; m_renderTarget.setSize(target.getSize()); m_canvasRenderWidth = target.getWidth(); m_canvasRenderHeight = target.getHeight(); target.setIgnoreRepaint(true); target.createBufferStrategy(2); m_bufferStrategy = target.getBufferStrategy(); BufferCapabilities cap = m_bufferStrategy.getCapabilities(); if (!cap.getBackBufferCapabilities().isAccelerated()) m_logger.warn("Backbuffer is not accelerated, may result in poorer render performance."); if (!cap.isPageFlipping()) m_logger.warn( "Page flipping is not supported by this device. This may result in increased image flicker or tearing."); if (!cap.isMultiBufferAvailable()) m_logger.warn( "Multiple buffering for page flipping is not supported by this device. This may result in poorer performance."); if (cap.isFullScreenRequired() && !isFullscreen) m_logger.warn( "Full screen required for hardware acceleration - not running in fullscreen may cause performance issues."); if (isFullscreen) { enterFullscreen(); target.addKeyListener( new KeyListener() { @Override public void keyTyped(KeyEvent e) {} @Override public void keyReleased(KeyEvent e) {} @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { GraphicsDevice device = target.getGraphicsConfiguration().getDevice(); Window fullscreen = device.getFullScreenWindow(); if (fullscreen != target) fullscreen = null; if (fullscreen == null) enterFullscreen(); else exitFullscreen(); } } }); } }
// make frame full screen public void setFullScreen(DisplayMode dm) { JFrame f = new JFrame(); f.setUndecorated(true); f.setIgnoreRepaint(true); f.setResizable(false); vc.setFullScreenWindow(f); if (dm != null && vc.isDisplayChangeSupported()) { try { vc.setDisplayMode(dm); } catch (Exception ex) { } } f.createBufferStrategy(2); }
public void start() { int[] pixels = ((DataBufferInt) img.getRaster().getDataBuffer()).getData(); boolean running = true; while (running) { BufferStrategy bs = frame.getBufferStrategy(); if (bs == null) { frame.createBufferStrategy(4); return; } for (int i = 0; i < width * height; i++) pixels[i] = 0; Graphics g = bs.getDrawGraphics(); g.drawImage(img, heightOffset, widthOffset, width, height, null); g.dispose(); bs.show(); } }
/** * Esta funcion simplemente pondra la aplicacion a pantalla completa. * * @param dm */ protected void setFullScreen(DisplayMode dm) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setFont(new Font("Dialog", Font.PLAIN, 13)); frame.setBackground(Color.BLACK); frame.setForeground(Color.white); frame.setUndecorated(true); frame.setIgnoreRepaint(true); frame.setResizable(false); frame.setVisible(true); frame.setFocusTraversalKeysEnabled(false); device.setFullScreenWindow(frame); if (dm != null && device.isDisplayChangeSupported()) { try { device.setDisplayMode(dm); } catch (IllegalArgumentException ex) { System.out.println("No se ha podido poner a pantalla completa."); } } frame.createBufferStrategy(2); }
public Window(Core core) { Dimension s = new Dimension((int) (core.getWidth()), (int) (core.getHeight())); gameArea = new JPanel(); gameArea.setPreferredSize(s); gameArea.setMaximumSize(s); gameArea.setBackground(Color.WHITE); gameArea.setFocusable(true); gameArea.requestFocusInWindow(); frame = new JFrame(core.getTitle()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(new BorderLayout()); frame.add(gameArea, BorderLayout.CENTER); frame.pack(); frame.setLocationRelativeTo(null); frame.setResizable(false); frame.setVisible(true); frame.createBufferStrategy(2); g = gameArea.getGraphics(); }
public GUI() { JFrame frame = new JFrame("GlassPaneDemo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocation(10, 10); frame.setSize(1024, 768); frame.setTitle("FancyGUI"); frame.setResizable(false); frame.setVisible(true); frame.createBufferStrategy(2); base = new RoadNetwork(); frame.setLayout(new BorderLayout()); frame.add(base, BorderLayout.NORTH); frame.add(base); GlassPane glassPane = new GlassPane(base); frame.setGlassPane(glassPane); glassPane.setVisible(true); ctrl = new Controller(base, glassPane); }