[OpenJDK 2D-Dev] [9] RFR JDK-8162796: [macosx] LinearGradientPaint and RadialGradientPaint are not printed on OS X.
Prasanta Sadhukhan
prasanta.sadhukhan at oracle.com
Mon Oct 24 08:38:06 UTC 2016
Please find modified webrev with Linear/Radial Gradient NO_CYCLE option
catered through quartz api and REPEAT/REFLECT option catered via raster
path.
http://cr.openjdk.java.net/~psadhukhan/8162796/webrev.02/
Regards
Prasanta
On 10/22/2016 9:28 PM, Prasanta Sadhukhan wrote:
>
>
> On 10/22/2016 4:50 AM, Philip Race wrote:
>> Well it is confusing since in particular this exact change is in both
>> webrevs :-
>> http://cr.openjdk.java.net/~psadhukhan/8162796/webrev.01/src/java.desktop/macosx/native/libawt_lwawt/awt/QuartzSurfaceData.m.sdiff.html
>>
>>
> Yes. This is same and I had to add this in both webrevs as
> TexturePaint patch is not yet approved.
>> One thing that I think seems less ideal about this fix, at least for
>> the Gradient case is that it is creating an image which shows
>> pixelisation
>> effects when I zoom in using Preview ..
>>
>> I don't think the previous code showed those effects so it may be you
>> want a hybrid, using the original code when you can.
> ok. I will make NO_CYCLE option to go through quartz and other
> REPEAT/REFLECT option to go though raster texturepaint path.
>
> Regards
> Prasanta
>> That probably is not an issue for TexturePaint ..
>>
>> -phil
>>
>> On 10/20/16, 9:40 PM, Prasanta Sadhukhan wrote:
>>> 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