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

Phil Race philip.race at oracle.com
Thu Oct 20 16:01:19 UTC 2016


Leaving aside the tests, the webrev here looks to be the one proposed
for the TexturePaint bug. Did you get things mixed up ?

-phil.

On 10/20/2016 02:22 AM, Prasanta Sadhukhan wrote:
> Hi Phil,
>
> I have modified the webrev to support REFLECT and REPEAT albeit via 
> raster path and not via Quartz api, as Quartz cannot handle 
> REPEAT/REFLECT.
> http://cr.openjdk.java.net/~psadhukhan/8162796/webrev.01/
>
> Have tested with different fractions, stops, color.
>
> Regards
> Prasanta
> On 9/28/2016 2:06 AM, Philip Race wrote:
>> 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