jdk/src/solaris/classes/sun/java2d/xr/XRBackendNative.java
changeset 21233 a36ed36d3209
parent 19782 ce9a620fe879
child 23010 6dadb192ad81
equal deleted inserted replaced
21232:049cc21737df 21233:a36ed36d3209
   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(),