package com.brackeen.javagamebook.graphics3D;

import java.awt.Graphics2D;
import com.brackeen.javagamebook.math3D.ViewWindow;

/**
    Nakładka rysowana nad sceną gry.
*/
public interface Overlay {


    /**
        Aktualizuje tę nakładkę w oparciu o ilość czasu,
        jaki minął od ostatniej aktualizacji.
    */
    public void update(long elapsedTime);

    /**
        Rysuje nakładkę na gotowej klatce. Przekazany obiekt
        ViewWindow określa rozmiary okna obrazu (zwykle jest
        to cały ekran). Rozmiary ekranu można otrzymać wywo-
        łując metodę g.getDeviceConfiguration().getBounds();
    */
    public void draw(Graphics2D g, ViewWindow viewWindow);


    /**
        Zwraca true, jeśli ta nakładka jest włączona (jeśli
        powinna być narysowana)
.
    */
    public boolean isEnabled();
}
