javaquery/canvas/src/main/java/net/java/html/canvas/GraphicsContext.java
author Anton Epple <toni.epple@eppleton.de>
Mon, 27 May 2013 08:30:18 +0200
branchcanvas
changeset 1144 5bf850c5b7f1
parent 1141 69c81bdaf193
child 1150 42e29ceb8371
permissions -rw-r--r--
Readded Image and ImageData to have the complete API again. No need to use Data in API anymore. Added caching to Image. Image are not required to be added to the page anymore, but are created in javaScript instead.
toni@1111
     1
/**
toni@1111
     2
 * Back 2 Browser Bytecode Translator Copyright (C) 2012 Jaroslav Tulach
toni@1111
     3
 * <jaroslav.tulach@apidesign.org>
toni@1111
     4
 *
toni@1111
     5
 * This program is free software: you can redistribute it and/or modify it under
toni@1111
     6
 * the terms of the GNU General Public License as published by the Free Software
toni@1111
     7
 * Foundation, version 2 of the License.
toni@1111
     8
 *
toni@1111
     9
 * This program is distributed in the hope that it will be useful, but WITHOUT
toni@1111
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
toni@1111
    11
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
toni@1111
    12
 * details.
toni@1111
    13
 *
toni@1111
    14
 * You should have received a copy of the GNU General Public License along with
toni@1111
    15
 * this program. Look for COPYING file in the top folder. If not, see
toni@1111
    16
 * http://opensource.org/licenses/GPL-2.0.
toni@521
    17
 */
toni@1109
    18
package net.java.html.canvas;
toni@521
    19
toni@1136
    20
import net.java.html.canvas.spi.GraphicsEnvironment;
toni@521
    21
toni@521
    22
/**
toni@521
    23
 *
toni@1109
    24
 * @author antonepple
toni@521
    25
 */
toni@1128
    26
public final class GraphicsContext {
toni@1128
    27
toni@1128
    28
    GraphicsEnvironment graphicsEnvironmentImpl;
toni@1128
    29
toni@1128
    30
    public GraphicsContext(GraphicsEnvironment graphicsEnvironment) {
toni@1128
    31
        this.graphicsEnvironmentImpl = graphicsEnvironment;
toni@1128
    32
    }
toni@521
    33
toni@1111
    34
    public void arc(double centerX,
toni@1111
    35
            double centerY,
toni@1111
    36
            double startAngle,
toni@1111
    37
            double radius,
toni@1111
    38
            double endAngle,
toni@1128
    39
            boolean ccw) {
toni@1128
    40
        graphicsEnvironmentImpl.arc(centerX, centerY, startAngle, radius, endAngle, ccw);
toni@1128
    41
    }
toni@521
    42
toni@1111
    43
    public void arcTo(double x1,
toni@1111
    44
            double y1,
toni@1111
    45
            double x2,
toni@1111
    46
            double y2,
toni@1128
    47
            double r) {
toni@1128
    48
        graphicsEnvironmentImpl.arcTo(x1, y1, x2, y2, r);
toni@1128
    49
    }
toni@521
    50
toni@1128
    51
    public boolean isPointInPath(double x, double y) {
toni@1128
    52
        return graphicsEnvironmentImpl.isPointInPath(x, y);
toni@1128
    53
    }
toni@521
    54
toni@1128
    55
    public void fill() {
toni@1128
    56
        graphicsEnvironmentImpl.fill();
toni@1128
    57
    }
toni@521
    58
toni@1128
    59
    public void stroke() {
toni@1128
    60
        graphicsEnvironmentImpl.stroke();
toni@1128
    61
    }
toni@1109
    62
toni@1128
    63
    public void beginPath() {
toni@1128
    64
        graphicsEnvironmentImpl.beginPath();
toni@1128
    65
    }
toni@1109
    66
toni@1128
    67
    public void closePath(){
toni@1128
    68
        graphicsEnvironmentImpl.closePath();
toni@1128
    69
    }
toni@521
    70
toni@1128
    71
    public void clip(){
toni@1128
    72
        graphicsEnvironmentImpl.clip();
toni@1128
    73
    }
toni@1109
    74
toni@1128
    75
    public void moveTo(double x, double y){
toni@1128
    76
        graphicsEnvironmentImpl.moveTo(x, y);
toni@1128
    77
    }
toni@1109
    78
toni@1128
    79
    public void lineTo(double x, double y){
toni@1128
    80
        graphicsEnvironmentImpl.lineTo(x, y);
toni@1128
    81
    }
toni@1109
    82
toni@1128
    83
    public void quadraticCurveTo(double cpx, double cpy, double x, double y){
toni@1128
    84
    graphicsEnvironmentImpl.quadraticCurveTo(cpx, cpy, x, y);
toni@1128
    85
    }
toni@1109
    86
toni@1128
    87
    public void bezierCurveTo(double cp1x, double cp1y, double cp2x, double cp2y, double x, double y){
toni@1128
    88
        graphicsEnvironmentImpl.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);
toni@1128
    89
    }
toni@1109
    90
toni@1128
    91
    public void fillRect(double x, double y, double width, double height){
toni@1128
    92
        graphicsEnvironmentImpl.fillRect(x, y, width, height);
toni@1128
    93
    }
toni@1109
    94
toni@1128
    95
    public void strokeRect(double x, double y, double width, double height){
toni@1128
    96
    graphicsEnvironmentImpl.strokeRect(x, y, width, height);
toni@1128
    97
    }
toni@1109
    98
toni@1128
    99
    public void clearRect(double x, double y, double width, double height){
toni@1128
   100
        graphicsEnvironmentImpl.clearRect(x, y, width, height);
toni@1128
   101
    }
toni@1109
   102
toni@1128
   103
    public void rect(double x, double y, double width, double height){
toni@1128
   104
        graphicsEnvironmentImpl.rect(x, y, width, height);
toni@1128
   105
    }
toni@1109
   106
toni@1128
   107
    public void save(){
toni@1128
   108
        graphicsEnvironmentImpl.save();
toni@1128
   109
    }
toni@1109
   110
toni@1128
   111
    public void restore(){
toni@1128
   112
        graphicsEnvironmentImpl.restore();
toni@1128
   113
    }
toni@1109
   114
toni@1128
   115
    public void rotate(double angle){
toni@1128
   116
        graphicsEnvironmentImpl.rotate(angle);
toni@1128
   117
    }
toni@1109
   118
toni@1128
   119
    public void transform(double a, double b, double c, double d, double e, double f){
toni@1128
   120
        graphicsEnvironmentImpl.transform(a, b, c, d, e, f);
toni@1128
   121
    }
toni@1109
   122
toni@1128
   123
    public void setTransform(double a, double b, double c, double d, double e, double f){
toni@1128
   124
        graphicsEnvironmentImpl.setTransform(a, b, c, d, e, f);
toni@1128
   125
    }
toni@1109
   126
toni@1128
   127
    public void translate(double x, double y){
toni@1128
   128
        graphicsEnvironmentImpl.translate(x, y);
toni@1128
   129
    }
toni@1109
   130
toni@1128
   131
    public void scale(double x, double y){
toni@1128
   132
        graphicsEnvironmentImpl.scale(x, y);
toni@1128
   133
    }
toni@1109
   134
toni@1144
   135
    public void paintImage(Image image, double x, double y){
toni@1144
   136
        Object nativeImage = graphicsEnvironmentImpl.drawImage(image, x, y, image.getCached());
toni@1144
   137
        image.cache(nativeImage);
toni@1144
   138
    }
toni@1144
   139
toni@1144
   140
    public void paintImage(Image image, double x, double y, double width, double height){
toni@1144
   141
        Object nativeImage = graphicsEnvironmentImpl.drawImage(image, x, y, width, height, image.getCached());
toni@1144
   142
        image.cache(nativeImage);
toni@1144
   143
    }
toni@1144
   144
toni@1144
   145
    public void paintImage(Image image, double sx, double sy, double sWidth, double sHeight, double x, double y, double width, double height){
toni@1144
   146
        Object nativeImage = graphicsEnvironmentImpl.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height, image.getCached());
toni@1144
   147
        image.cache(nativeImage);
toni@1144
   148
    }
toni@1109
   149
toni@1128
   150
    public void setShadowColor(String color){
toni@1128
   151
        graphicsEnvironmentImpl.setShadowColor(color);
toni@1128
   152
    }
toni@1109
   153
toni@1128
   154
    public void setShadowBlur(double blur){
toni@1128
   155
        graphicsEnvironmentImpl.setShadowBlur(blur);
toni@1128
   156
    }
toni@1109
   157
toni@1128
   158
    public void setShadowOffsetX(double x){
toni@1128
   159
        graphicsEnvironmentImpl.setShadowOffsetX(x);
toni@1128
   160
    }
toni@1109
   161
toni@1128
   162
    public void setShadowOffsetY(double y){
toni@1128
   163
        graphicsEnvironmentImpl.setShadowOffsetY(y);
toni@1128
   164
    }
toni@1109
   165
toni@1128
   166
    public String getShadowColor(){
toni@1128
   167
        return graphicsEnvironmentImpl.getShadowColor();
toni@1128
   168
    }
toni@1109
   169
toni@1128
   170
    public double getShadowBlur(){
toni@1128
   171
        return graphicsEnvironmentImpl.getShadowBlur();
toni@1128
   172
        }
toni@1109
   173
toni@1128
   174
    public double getShadowOffsetX(){
toni@1128
   175
        return graphicsEnvironmentImpl.getShadowOffsetX();
toni@1128
   176
    }
toni@1109
   177
toni@1128
   178
    public double getShadowOffsetY(){
toni@1128
   179
        return graphicsEnvironmentImpl.getShadowOffsetY();
toni@1128
   180
    }
toni@1109
   181
toni@1128
   182
    public String getLineCap(){
toni@1128
   183
        return graphicsEnvironmentImpl.getLineCap();
toni@1128
   184
    }
toni@1109
   185
toni@1128
   186
    public void setLineCap(String style){
toni@1128
   187
        graphicsEnvironmentImpl.setLineCap(style);
toni@1128
   188
    }
toni@1109
   189
toni@1128
   190
    public String getLineJoin(){
toni@1128
   191
        return graphicsEnvironmentImpl.getLineJoin();
toni@1128
   192
    }
toni@1109
   193
toni@1128
   194
    public void setLineJoin(String style){
toni@1128
   195
        graphicsEnvironmentImpl.setLineJoin(style);
toni@1128
   196
    }
toni@1109
   197
toni@1128
   198
    public double getLineWidth(){
toni@1128
   199
        return graphicsEnvironmentImpl.getLineWidth();
toni@1128
   200
    }
toni@1109
   201
toni@1128
   202
    public void setLineWidth(double width){
toni@1128
   203
        graphicsEnvironmentImpl.setLineWidth(width);
toni@1128
   204
    }
toni@1109
   205
toni@1128
   206
    public double getMiterLimit(){
toni@1128
   207
        return graphicsEnvironmentImpl.getMiterLimit();
toni@1128
   208
    }
toni@1109
   209
toni@1128
   210
    public void setMiterLimit(double limit){
toni@1128
   211
        graphicsEnvironmentImpl.setMiterLimit(limit);
toni@1128
   212
    }
toni@1141
   213
    
toni@1141
   214
    public void setFillStyle(Style style){
toni@1141
   215
        Object nativeFillStyle = graphicsEnvironmentImpl.setFillStyle(style, style.getCached());
toni@1141
   216
        style.cache(nativeFillStyle);
toni@1141
   217
    }
toni@1109
   218
toni@1128
   219
    public String getFont(){
toni@1128
   220
        return graphicsEnvironmentImpl.getFont();
toni@1128
   221
    }
toni@1109
   222
toni@1128
   223
    public void setFont(String font){
toni@1128
   224
        graphicsEnvironmentImpl.setFont(font);
toni@1128
   225
    }
toni@1141
   226
    
toni@1141
   227
    public void setStrokeStyle(Style style){
toni@1141
   228
        Object nativeStrokeStyle = graphicsEnvironmentImpl.setStrokeStyle(style, style.getCached());
toni@1141
   229
        style.cache(nativeStrokeStyle);
toni@1141
   230
    }
toni@1109
   231
toni@1128
   232
    public String getTextAlign(){
toni@1128
   233
        return graphicsEnvironmentImpl.getTextAlign();
toni@1128
   234
    }
toni@521
   235
toni@1128
   236
    public void setTextAlign(String textAlign){
toni@1128
   237
        graphicsEnvironmentImpl.setTextAlign(textAlign);
toni@1128
   238
    }
toni@521
   239
toni@1128
   240
    public String getTextBaseline(){
toni@1128
   241
        return graphicsEnvironmentImpl.getTextBaseline();
toni@1128
   242
    }
toni@521
   243
toni@1128
   244
    public void setTextBaseline(String textbaseline){
toni@1128
   245
        graphicsEnvironmentImpl.setTextBaseline(textbaseline);
toni@1128
   246
    }
toni@521
   247
toni@1128
   248
    public void fillText(String text, double x, double y){
toni@1128
   249
        graphicsEnvironmentImpl.fillText(text, x, y);
toni@1128
   250
    }
toni@521
   251
toni@1128
   252
    public void fillText(String text, double x, double y, double maxWidth){
toni@1128
   253
        graphicsEnvironmentImpl.fillText(text, x, y, maxWidth);
toni@1128
   254
    }
toni@521
   255
toni@1128
   256
    public Dimension measureText(String text){
toni@1128
   257
        return graphicsEnvironmentImpl.measureText(text);
toni@1128
   258
    }
toni@1111
   259
toni@1128
   260
    public void strokeText(String text, double x, double y){
toni@1128
   261
        graphicsEnvironmentImpl.strokeText(text, x, y);
toni@1128
   262
    }
toni@1111
   263
toni@1128
   264
    public void strokeText(String text, double x, double y, double maxWidth){
toni@1128
   265
        graphicsEnvironmentImpl.strokeText(text, x, y, maxWidth);
toni@1128
   266
    }
toni@1111
   267
toni@1144
   268
    public ImageData createPixelMap(double x, double y){
toni@1144
   269
        return graphicsEnvironmentImpl.createPixelMap(x, y);
toni@1144
   270
    }
toni@1144
   271
toni@1144
   272
    public ImageData createPixelMap(ImageData pixelMap){
toni@1144
   273
        return graphicsEnvironmentImpl.createPixelMap(pixelMap);
toni@1144
   274
    }
toni@1144
   275
toni@1144
   276
    public ImageData getSnapshot(double x, double y, double width, double height){
toni@1144
   277
        return graphicsEnvironmentImpl.getPixelMap(x, y, width, height);
toni@1144
   278
    }
toni@1144
   279
toni@1144
   280
    public void paintPixelMap(ImageData pixelMap, double x, double y){
toni@1144
   281
        graphicsEnvironmentImpl.putPixelMap(pixelMap, x, y);
toni@1144
   282
    }
toni@1144
   283
toni@1144
   284
    public void paintPixelMap(ImageData pixelMap, double x, double y, double dirtyx, double dirtyy, double dirtywidth, double dirtyheight){
toni@1144
   285
        graphicsEnvironmentImpl.putPixelMap(pixelMap, x, y, dirtyx, dirtyy, dirtywidth, dirtyheight);
toni@1144
   286
    }
toni@1111
   287
toni@1128
   288
    public void setGlobalAlpha(double alpha){
toni@1128
   289
        graphicsEnvironmentImpl.setGlobalAlpha(alpha);
toni@1128
   290
    }
toni@1111
   291
toni@1128
   292
    public double getGlobalAlpha(){
toni@1128
   293
        return graphicsEnvironmentImpl.getGlobalAlpha();
toni@1128
   294
    }
toni@1111
   295
toni@1128
   296
    public void setGlobalCompositeOperation(String operation){
toni@1128
   297
        graphicsEnvironmentImpl.setGlobalCompositeOperation(operation);
toni@1128
   298
    }
toni@1111
   299
toni@1128
   300
    public String getGlobalCompositeOperation(){
toni@1128
   301
        return graphicsEnvironmentImpl.getGlobalCompositeOperation();
toni@1128
   302
    }
toni@1111
   303
toni@1128
   304
    public LinearGradient createLinearGradient(double x0, double y0, double x1, double y1){
toni@1131
   305
        return new LinearGradient(x0, y0, x1, y1);
toni@1128
   306
    }
toni@1111
   307
toni@1144
   308
    public Pattern createPattern(Image image, String repeat){
toni@1144
   309
        return new Pattern(image, repeat);
toni@1144
   310
    }
toni@1111
   311
toni@1128
   312
    public RadialGradient createRadialGradient(double x0, double y0, double r0, double x1, double y1, double r1){
toni@1131
   313
        return new RadialGradient(x0, y0, r0, x1, y1, r1);
toni@1128
   314
    }
toni@1111
   315
toni@1144
   316
    public Image getImageForPath(String path){
toni@1144
   317
        return graphicsEnvironmentImpl.getImageForPath(path);
toni@1144
   318
    }
toni@1111
   319
toni@1128
   320
    public int getHeight(){
toni@1128
   321
        return graphicsEnvironmentImpl.getHeight();
toni@1128
   322
    }
toni@1111
   323
toni@1128
   324
    public int getWidth(){
toni@1128
   325
        return graphicsEnvironmentImpl.getWidth();
toni@1128
   326
    }
toni@1111
   327
toni@1128
   328
    public void setHeight(int height){
toni@1128
   329
        graphicsEnvironmentImpl.setHeight(height);
toni@1128
   330
    }
toni@1128
   331
toni@1128
   332
    public void setWidth(int width){
toni@1128
   333
        graphicsEnvironmentImpl.setWidth(width);
toni@1128
   334
    }
toni@521
   335
}