[OpenJDK 2D-Dev] [9] RFR JDK-8162796: [macosx] LinearGradientPaint and RadialGradientPaint are not printed on OS X.

Philip Race philip.race at oracle.com
Tue Sep 27 20:36:59 UTC 2016


Hi,

LinearGradientPaint has three options as to how it is extended beyond 
the end point

https://docs.oracle.com/javase/8/docs/api/java/awt/MultipleGradientPaint.CycleMethod.html

So far as I can see this code (and perhaps quartz) can only handle 
NO_CYCLE ..

If REFLECT or REPEAT are specified and Quartz can't handle it we will 
need to
fall back to the raster path.

I think it would be helpful to extend the test with examples that use 
these and
also more than just the two colours .. add a variant that tries more 
like 4 ...

-phil.

On 9/22/16, 2:03 AM, Prasanta Sadhukhan wrote:
> Hi All,
>
> Please review a fix for jdk9 where it is seen that LinearGradientPaint 
> is not getting printed on osx.
> The below webrev is only for LinearGradientPaint
> and RadialGradientPaint will be handled separately.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8162796
> webrev: http://cr.openjdk.java.net/~psadhukhan/8162796/webrev.00/
>
> Issue was LinearGradientPaint is not handled in osx from jdk7 onwards. 
> It handles simple GradientPaint.
> Code is added as per
> https://developer.apple.com/library/content/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_shadings/dq_shadings.html#//apple_ref/doc/uid/TP30001066-CH207-TPXREF101 
>
>
> to use "CGGradientRef" quartz datatype to support LinearGradientPaint.
> CGGradientRef is used compared to CGShadingRef because it is mentioned 
> in CGGradientRef,  i is "Easy to define more than two locations and 
> colors." as we set 2 or more colors and 2 or more fractions in 
> LinearGradientPaint.
>
> Regards
> Prasanta
>



More information about the 2d-dev mailing list