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

Prasanta Sadhukhan prasanta.sadhukhan at oracle.com
Fri Oct 21 04:40:36 UTC 2016


No, this webrev supports LinearGradient/RadialGradient for all 3 
options. The fix seems to be almost same as in TexturePaint but in a 
different else block in OSXSurfaceData.java.

Regards
Prasanta
On 10/20/2016 9:31 PM, Phil Race wrote:
> 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