toni@1129: /** toni@1129: * Back 2 Browser Bytecode Translator Copyright (C) 2012 Jaroslav Tulach toni@1129: * toni@1129: * toni@1129: * This program is free software: you can redistribute it and/or modify it under toni@1129: * the terms of the GNU General Public License as published by the Free Software toni@1129: * Foundation, version 2 of the License. toni@1129: * toni@1129: * This program is distributed in the hope that it will be useful, but WITHOUT toni@1129: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS toni@1129: * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more toni@1129: * details. toni@1129: * toni@1129: * You should have received a copy of the GNU General Public License along with toni@1129: * this program. Look for COPYING file in the top folder. If not, see toni@1129: * http://opensource.org/licenses/GPL-2.0. toni@1128: */ toni@1136: package net.java.html.canvas.spi; toni@1128: toni@1128: import java.awt.Dimension; toni@1136: import net.java.html.canvas.ImageData; toni@1136: import net.java.html.canvas.Style; toni@1128: toni@1128: /** toni@1136: * Provider API for Canvas. Implement this to add support for your platform. toni@1128: * @author antonepple toni@1128: */ toni@1128: public interface GraphicsEnvironment { toni@1129: toni@1128: public void arc(double centerX, toni@1128: double centerY, toni@1128: double startAngle, toni@1128: double radius, toni@1128: double endAngle, toni@1128: boolean ccw); toni@1128: toni@1128: public void arcTo(double x1, toni@1128: double y1, toni@1128: double x2, toni@1128: double y2, toni@1128: double r); toni@1128: toni@1128: public boolean isPointInPath(double x, double y); toni@1128: toni@1128: public void fill(); toni@1128: toni@1128: public void stroke(); toni@1128: toni@1128: public void beginPath(); toni@1128: toni@1128: public void closePath(); toni@1128: toni@1128: public void clip(); toni@1128: toni@1128: public void moveTo(double x, double y); toni@1128: toni@1128: public void lineTo(double x, double y); toni@1128: toni@1128: public void quadraticCurveTo(double cpx, double cpy, double x, double y); toni@1128: toni@1128: public void bezierCurveTo(double cp1x, double cp1y, double cp2x, double cp2y, double x, double y); toni@1128: toni@1128: public void fillRect(double x, double y, double width, double height); toni@1128: toni@1128: public void strokeRect(double x, double y, double width, double height); toni@1128: toni@1128: public void clearRect(double x, double y, double width, double height); toni@1128: toni@1128: public void rect(double x, double y, double width, double height); toni@1128: toni@1128: public void save(); toni@1128: toni@1128: public void restore(); toni@1128: toni@1128: public void rotate(double angle); toni@1128: toni@1128: public void transform(double a, double b, double c, double d, double e, double f); toni@1128: toni@1128: public void setTransform(double a, double b, double c, double d, double e, double f); toni@1128: toni@1128: public void translate(double x, double y); toni@1128: toni@1128: public void scale(double x, double y); toni@1128: toni@1136: public void drawImage(ImageData image, double x, double y); toni@1128: toni@1136: public void drawImage(ImageData image, double x, double y, double width, double height); toni@1128: toni@1136: public void drawImage(ImageData image, double sx, double sy, double sWidth, double sHeight, double x, double y, double width, double height); toni@1128: toni@1128: public void setFillStyle(String style); toni@1128: toni@1128: public String getFillStyle(); toni@1128: toni@1129: public void setFillStyle(Style style); toni@1128: toni@1128: public void setStrokeStyle(String style); toni@1128: toni@1130: public void setStrokeStyle(Style style); toni@1128: toni@1128: public void setShadowColor(String color); toni@1128: toni@1128: public void setShadowBlur(double blur); toni@1128: toni@1128: public void setShadowOffsetX(double x); toni@1128: toni@1128: public void setShadowOffsetY(double y); toni@1128: toni@1128: public String getStrokeStyle(); toni@1128: toni@1128: public String getShadowColor(); toni@1128: toni@1128: public double getShadowBlur(); toni@1128: toni@1128: public double getShadowOffsetX(); toni@1128: toni@1128: public double getShadowOffsetY(); toni@1128: toni@1128: public String getLineCap(); toni@1128: toni@1128: public void setLineCap(String style); toni@1128: toni@1128: public String getLineJoin(); toni@1128: toni@1128: public void setLineJoin(String style); toni@1128: toni@1128: public double getLineWidth(); toni@1128: toni@1128: public void setLineWidth(double width); toni@1128: toni@1128: public double getMiterLimit(); toni@1128: toni@1128: public void setMiterLimit(double limit); toni@1128: toni@1128: public String getFont(); toni@1128: toni@1128: public void setFont(String font); toni@1128: toni@1128: public String getTextAlign(); toni@1128: toni@1128: public void setTextAlign(String textAlign); toni@1128: toni@1128: public String getTextBaseline(); toni@1128: toni@1128: public void setTextBaseline(String textbaseline); toni@1128: toni@1128: public void fillText(String text, double x, double y); toni@1128: toni@1128: public void fillText(String text, double x, double y, double maxWidth); toni@1128: toni@1128: public Dimension measureText(String text); toni@1128: toni@1128: public void strokeText(String text, double x, double y); toni@1128: toni@1128: public void strokeText(String text, double x, double y, double maxWidth); toni@1128: toni@1133: // public ImageData createImageData(double x, double y); toni@1133: // toni@1136: // public ImageData createImageData(ImageData imageData); toni@1133: // toni@1133: // public ImageData getImageData(double x, double y, double width, double height); toni@1133: // toni@1133: // public void putImageData(ImageData imageData, double x, double y); toni@1133: // toni@1133: // public void putImageData(ImageData imageData, double x, double y, double dirtyx, double dirtyy, double dirtywidth, double dirtyheight); toni@1128: toni@1128: public void setGlobalAlpha(double alpha); toni@1128: toni@1128: public double getGlobalAlpha(); toni@1128: toni@1128: public void setGlobalCompositeOperation(String operation); toni@1128: toni@1128: public String getGlobalCompositeOperation(); toni@1128: toni@1136: // public ImageData getImageForPath(String path); toni@1129: toni@1128: public int getHeight(); toni@1128: toni@1128: public int getWidth(); toni@1128: toni@1128: public void setHeight(int height); toni@1128: toni@1128: public void setWidth(int width); toni@1128: }