103 |
103 |
104 private static native int |
104 private static native int |
105 XRCreateLinearGradientPaintNative(float[] fractionsArray, |
105 XRCreateLinearGradientPaintNative(float[] fractionsArray, |
106 short[] pixelsArray, |
106 short[] pixelsArray, |
107 int x1, int y1, int x2, int y2, |
107 int x1, int y1, int x2, int y2, |
108 int numStops, int repeat, |
108 int numStops, int repeat); |
109 int m00, int m01, int m02, |
|
110 int m10, int m11, int m12); |
|
111 |
109 |
112 private native static int |
110 private native static int |
113 XRCreateRadialGradientPaintNative(float[] fractionsArray, |
111 XRCreateRadialGradientPaintNative(float[] fractionsArray, |
114 short[] pixelsArray, int numStops, |
112 short[] pixelsArray, int numStops, |
|
113 int centerX, int centerY, |
115 int innerRadius, int outerRadius, |
114 int innerRadius, int outerRadius, |
116 int repeat, |
115 int repeat); |
117 int m00, int m01, int m02, |
|
118 int m10, int m11, int m12); |
|
119 |
116 |
120 public native void setFilter(int picture, int filter); |
117 public native void setFilter(int picture, int filter); |
121 |
118 |
122 private static native void XRSetClipNative(long dst, |
119 private static native void XRSetClipNative(long dst, |
123 int x1, int y1, int x2, int y2, |
120 int x1, int y1, int x2, int y2, |
173 |
170 |
174 return 0L; |
171 return 0L; |
175 } |
172 } |
176 |
173 |
177 public int createLinearGradient(Point2D p1, Point2D p2, float[] fractions, |
174 public int createLinearGradient(Point2D p1, Point2D p2, float[] fractions, |
178 int[] pixels, int repeat, AffineTransform trx) { |
175 int[] pixels, int repeat) { |
179 |
176 |
180 short[] colorValues = getRenderColors(pixels); |
177 short[] colorValues = getRenderColors(pixels); |
181 int gradient = |
178 int gradient = |
182 XRCreateLinearGradientPaintNative(fractions, colorValues, |
179 XRCreateLinearGradientPaintNative(fractions, colorValues, |
183 XDoubleToFixed(p1.getX()), XDoubleToFixed(p1.getY()), |
180 XDoubleToFixed(p1.getX()), XDoubleToFixed(p1.getY()), |
184 XDoubleToFixed(p2.getX()), XDoubleToFixed(p2.getY()), |
181 XDoubleToFixed(p2.getX()), XDoubleToFixed(p2.getY()), |
185 fractions.length, repeat, |
182 fractions.length, repeat); |
186 XDoubleToFixed(trx.getScaleX()), |
|
187 XDoubleToFixed(trx.getShearX()), |
|
188 XDoubleToFixed(trx.getTranslateX()), |
|
189 XDoubleToFixed(trx.getShearY()), |
|
190 XDoubleToFixed(trx.getScaleY()), |
|
191 XDoubleToFixed(trx.getTranslateY())); |
|
192 return gradient; |
183 return gradient; |
193 } |
184 } |
194 |
185 |
195 public int createRadialGradient(Point2D inner, Point2D outer, |
186 public int createRadialGradient(float centerX, float centerY, |
196 float innerRadius, float outerRadius, |
187 float innerRadius, float outerRadius, |
197 float[] fractions, int[] pixels, int repeat, |
188 float[] fractions, int[] pixels, int repeat) { |
198 AffineTransform trx) { |
|
199 |
189 |
200 short[] colorValues = getRenderColors(pixels); |
190 short[] colorValues = getRenderColors(pixels); |
201 return XRCreateRadialGradientPaintNative |
191 return XRCreateRadialGradientPaintNative |
202 (fractions, colorValues, fractions.length, |
192 (fractions, colorValues, fractions.length, |
|
193 XDoubleToFixed(centerX), |
|
194 XDoubleToFixed(centerY), |
203 XDoubleToFixed(innerRadius), |
195 XDoubleToFixed(innerRadius), |
204 XDoubleToFixed(outerRadius), |
196 XDoubleToFixed(outerRadius), |
205 repeat, |
197 repeat); |
206 XDoubleToFixed(trx.getScaleX()), |
|
207 XDoubleToFixed(trx.getShearX()), |
|
208 XDoubleToFixed(trx.getTranslateX()), |
|
209 XDoubleToFixed(trx.getShearY()), |
|
210 XDoubleToFixed(trx.getScaleY()), |
|
211 XDoubleToFixed(trx.getTranslateY())); |
|
212 } |
198 } |
213 |
199 |
214 public void setGCClipRectangles(long gc, Region clip) { |
200 public void setGCClipRectangles(long gc, Region clip) { |
215 XRSetClipNative(gc, clip.getLoX(), clip.getLoY(), |
201 XRSetClipNative(gc, clip.getLoX(), clip.getLoY(), |
216 clip.getHiX(), clip.getHiY(), |
202 clip.getHiX(), clip.getHiY(), |