public void myRepaint() {
        if ( repaintInProgress ) { return; }
        repaintInProgress = true;
        
        processFrame();
        
        BufferStrategy strategy = getBufferStrategy();
        Graphics2D graphics = (Graphics2D) strategy.getDrawGraphics();
        graphics.setRenderingHint( RenderingHints.KEY_ANTIALIASING, //Enable antialiasing
                        RenderingHints.VALUE_ANTIALIAS_ON );
        
        graphics.setColor( Color.WHITE );
        graphics.fillRect( 0, 0, getWidth(), getHeight() );
        
        // Do Graphics
        switch ( gameState ) {
            case INTRO:
                graphics.setColor( Color.BLACK );
                graphics.fillRect( 0, 0, 1000, 600 );
                graphics.setComposite( AlphaComposite.getInstance( AlphaComposite.SRC_OVER, introFade ) ); // Transparentish logo
                graphics.drawImage( ResourceManager.getImage( "MENU_LOGO_STUDIO" ), 290, 90, null );
                break;
            case MAIN_MENU:
                //System.out.println(graphics.getFontMetrics( MNUSELECT_FONT ).getStringBounds( "OPTIONS", graphics ).getWidth());
                MenuUtility.drawMenu( MenuType.MAIN, graphics );
                break;
            case CUTSCENE:
            case GAME:
                gameMap.drawMap(graphics, (short) (EntityManager.getPlayer().getCenter().getX() - 500),
                            (short) (EntityManager.getPlayer().getLocation().getY() + EntityManager.getPlayer().getDistanceOffsetY() - 300 - Map.TILE_SIZE));
                EntityManager.drawEntities(graphics, (short) (EntityManager.getPlayer().getCenter().getX() - 500),
                            (short) (EntityManager.getPlayer().getCenter().getY() - 300));
                HUD.draw(graphics);
                Chatbox.draw(graphics);
                break;
            default:
                break;
        }
        
        if(graphics != null) { graphics.dispose(); }
        strategy.show();
        Toolkit.getDefaultToolkit().sync();

        repaintInProgress = false;
    }