package me.hammerle.supersnuvi.javafx;

public interface IJavaRenderer 
{
    // -------------------------------------------------------------------------
    // image rendering
    // -------------------------------------------------------------------------
    
    public void drawImage(Image image, double x, double y);
    public void drawImage(Image image, double x, double y, double w, double h);
    public void drawImage(Image img, double sx, double sy, double sw, double sh, double dx, double dy, double dw, double dh);
    
    // -------------------------------------------------------------------------
    // primitive rendering
    // -------------------------------------------------------------------------
    
    public double getWidth();
    public double getHeight();
    
    public void prepareRendering();
    
    public void save();
    public void restore();
    public void setFillColor(int r, int g, int b, double alpha);
    public void setStrokeColor(int r, int g, int b, double alpha);
    
    public void fillRectangle(double x, double y, double w, double h);
    
    // -------------------------------------------------------------------------
    // text rendering
    // -------------------------------------------------------------------------
    
    public void prepareTextDrawing(int r, int g, int b, double alpha, int width);
    public void stopTextDrawing();
    public void drawText(double x, double y, char[] text, int max);
    public double getTextWidth(int chars);
    public double getTextHeight(int lines);
}
