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





Reply via email to