Example #1
0
  // ---------- 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();
              }
            }
          });
    }
  }
Example #3
0
  // 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();
    }
  }
Example #5
0
  /**
   * 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);
  }
Example #6
0
  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();
  }
Example #7
0
  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);
  }