JAL-1807 Bob
[jalviewjs.git] / site / j2s / swingjs / JSGraphicsCompositor.js
1 Clazz.declarePackage ("swingjs");
2 Clazz.load (null, "swingjs.JSGraphicsCompositor", ["java.awt.image.BufferedImage", "$.ByteLookupTable", "jssun.awt.image.SunWritableRaster", "swingjs.JSToolkit"], function () {
3 c$ = Clazz.declareType (swingjs, "JSGraphicsCompositor");
4 Clazz.makeConstructor (c$, 
5 function () {
6 });
7 Clazz.defineMethod (c$, "setGraphicsCompositeAlpha", 
8 function (g, alphaRule) {
9 var s = null;
10 switch (alphaRule) {
11 default:
12 case 3:
13 s = "source-over";
14 break;
15 case 5:
16 s = "source-in";
17 break;
18 case 7:
19 s = "source-out";
20 break;
21 case 10:
22 s = "source-atop";
23 break;
24 case 12:
25 s = "xor";
26 break;
27 case 4:
28 s = "destination-over";
29 break;
30 case 6:
31 s = "destination-in";
32 break;
33 case 8:
34 s = "destination-out";
35 break;
36 case 11:
37 s = "destination-atop";
38 break;
39 }
40 {
41 g.ctx.globalCompositeOperation = s;
42 }return true;
43 }, "swingjs.JSGraphics2D,~N");
44 Clazz.defineMethod (c$, "drawImageOp", 
45 function (g, img, op, x, y) {
46 var type = 0;
47 {
48 type = op.swingJStype;
49 }switch (type) {
50 case 'R':
51 var rop = op;
52 var offsets = rop.offsets;
53 var scaleFactors = rop.scaleFactors;
54 var canDo = (offsets.length == 4 && offsets[3] == 0);
55 if (canDo) for (var i = 0; i < 3; i++) if (offsets[i] != 0 || scaleFactors[i] != 1) {
56 canDo = false;
57 break;
58 }
59 if (canDo) {
60 g.setAlpha (scaleFactors[3]);
61 g.drawImage (img, x, y, null);
62 g.setAlpha (1);
63 return true;
64 }break;
65 case 'L':
66 break;
67 case 'A':
68 break;
69 case 'C':
70 break;
71 }
72 return false;
73 }, "swingjs.JSGraphics2D,java.awt.image.BufferedImage,java.awt.image.BufferedImageOp,~N,~N");
74 Clazz.defineMethod (c$, "filterRaster", 
75 function (src, dst, op) {
76 swingjs.JSToolkit.notImplemented (null);
77 if (dst == null) {
78 dst = op.createCompatibleDestRaster (src);
79 }var retRaster = null;
80 var type = 0;
81 {
82 type = op.swingJStype;
83 }switch (type) {
84 case 'L':
85 var table = (op).getTable ();
86 if (Clazz.instanceOf (table, java.awt.image.ByteLookupTable)) {
87 var bt = table;
88 if (this.lookupByteRaster (src, dst, bt.getTable ()) > 0) {
89 retRaster = dst;
90 }}break;
91 case 'A':
92 var bOp = op;
93 var matrix =  Clazz.newDoubleArray (6, 0);
94 bOp.getTransform ().getMatrix (matrix);
95 if (this.transformRaster (src, dst, matrix, bOp.getInterpolationType ()) > 0) {
96 retRaster = dst;
97 }break;
98 case 'C':
99 var cOp = op;
100 if (this.convolveRaster (src, dst, cOp.getKernel (), cOp.getEdgeCondition ()) > 0) {
101 retRaster = dst;
102 }break;
103 default:
104 break;
105 }
106 if (retRaster != null) {
107 jssun.awt.image.SunWritableRaster.markDirty (retRaster);
108 }return retRaster;
109 }, "java.awt.image.Raster,java.awt.image.WritableRaster,java.awt.image.RasterOp");
110 Clazz.defineMethod (c$, "convolveRaster", 
111  function (src, dst, kernel, edgeCondition) {
112 return 0;
113 }, "java.awt.image.Raster,java.awt.image.WritableRaster,java.awt.image.Kernel,~N");
114 Clazz.defineMethod (c$, "transformRaster", 
115  function (src, dst, matrix, interpolationType) {
116 return 0;
117 }, "java.awt.image.Raster,java.awt.image.WritableRaster,~A,~N");
118 Clazz.defineMethod (c$, "lookupByteRaster", 
119  function (src, dst, table) {
120 return 0;
121 }, "java.awt.image.Raster,java.awt.image.WritableRaster,~A");
122 Clazz.defineMethod (c$, "filterImage", 
123 function (src, dst, op) {
124 swingjs.JSToolkit.notImplemented (null);
125 var retBI = null;
126 var type = 0;
127 {
128 type = op.swingJStype;
129 }switch (type) {
130 case 'L':
131 var table = (op).getTable ();
132 if (table.getOffset () != 0) {
133 return null;
134 }if (Clazz.instanceOf (table, java.awt.image.ByteLookupTable)) {
135 var bt = table;
136 if (this.lookupByteBI (src, dst, bt.getTable ()) > 0) {
137 retBI = dst;
138 }}break;
139 case 'A':
140 var bOp = op;
141 var matrix =  Clazz.newDoubleArray (6, 0);
142 var xform = bOp.getTransform ();
143 bOp.getTransform ().getMatrix (matrix);
144 if (this.transformBI (src, dst, matrix, bOp.getInterpolationType ()) > 0) {
145 retBI = dst;
146 }break;
147 case 'C':
148 var cOp = op;
149 if (this.convolveBI (src, dst, cOp.getKernel (), cOp.getEdgeCondition ()) > 0) {
150 retBI = dst;
151 }break;
152 default:
153 break;
154 }
155 return retBI;
156 }, "java.awt.image.BufferedImage,java.awt.image.BufferedImage,java.awt.image.BufferedImageOp");
157 Clazz.defineMethod (c$, "convolveBI", 
158  function (src, dst, kernel, edgeCondition) {
159 return 0;
160 }, "java.awt.image.BufferedImage,java.awt.image.BufferedImage,java.awt.image.Kernel,~N");
161 Clazz.defineMethod (c$, "transformBI", 
162  function (src, dst, matrix, interpolationType) {
163 return 0;
164 }, "java.awt.image.BufferedImage,java.awt.image.BufferedImage,~A,~N");
165 Clazz.defineMethod (c$, "lookupByteBI", 
166  function (src, dst, table) {
167 return 0;
168 }, "java.awt.image.BufferedImage,java.awt.image.BufferedImage,~A");
169 Clazz.defineMethod (c$, "createImageNode", 
170 function (img) {
171 var imgNode = null;
172 {
173 imgNode = img._imgNode;
174 }if (imgNode == null && Clazz.instanceOf (img, java.awt.image.BufferedImage)) {
175 {
176 var canvas = img._canvas;
177 if (canvas == null) {
178 img.getGraphics();
179 canvas = img._canvas;
180 }
181 imgNode = canvas;
182 imgNode.style.width = img.getWidth() + "px";
183 imgNode.style.height = img.getHeight()          + "px";
184 }return imgNode;
185 }return null;
186 }, "java.awt.Image");
187 });