[OpenJDK 2D-Dev] Review Request: JDK-8144735 [hidpi] javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java fails
Prasanta Sadhukhan
prasanta.sadhukhan at oracle.com
Fri Aug 26 06:37:48 UTC 2016
Ok. so long you are addressing the opengl issue albeit via different
bugid, it's ok with me. +1.
Regards
Prasanta
On 8/26/2016 11:56 AM, Prem Balakrishnan wrote:
>
> Hi Prasanta,
>
> Thankyou for the review.
>
> The code compiles , Actual scenario is as below:
>
> public class Temp {
>
> AccelSurface as = new AccelSurface() {};
>
> SurfaceData sd = (SurfaceData)as;
>
> }
>
> class SurfaceData {}
>
> interface Surface {}
>
> interface AccelSurface extends Surface{}
>
> class D3DSurfaceData extends SurfaceData implements AccelSurface{}
>
> class OGLSurfaceData extends SurfaceData implements AccelSurface{}
>
> -------------------
>
> In suggested fix, the SurfaceData is always of type D3DSurfaceData.
>
> And hence getDefaultScaleX/Y holds good. OpenGL rendering is handled
> in a different flow.
>
> http://cr.openjdk.java.net/~pkbalakr/8144735/webrev.02/
> <http://cr.openjdk.java.net/%7Epkbalakr/8144735/webrev.02/>
>
> Suggested fix also resolves the following failures on hidpi windows 8
>
> javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucent.java
> javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentGradient.java
>
> javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java
>
> javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java
>
> javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java
>
> javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
>
> ----------------------
> OpenGL Rendering issue will be addressed in JDK-8164811
> <https://bugs.openjdk.java.net/browse/JDK-8164811>
>
>
>
> Regards,
>
> Prem
>
> *From:*Prasanta Sadhukhan
> *Sent:* Monday, August 22, 2016 12:32 PM
> *To:* Prem Balakrishnan; Rajeev Chamyal; awt-dev at openjdk.java.net;
> 2d-dev at openjdk.java.net
> *Subject:* Re: Review Request: JDK-8144735 [hidpi]
> javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
> fails
>
> I wonder how it compiles?
> I tried a small program
> ------------------
> public class Test {
> AccelSurface b = new AccelSurface();
> SurfaceData c = (SurfaceData)b;
> }
>
> class SurfaceData extends Surface {}
> class Surface {}
> class AccelSurface extends Surface {}
> ---------
> and it fails to compile
> Test.java:3: error: incompatible types: AccelSurface cannot be
> converted to SurfaceData
> SurfaceData c = (SurfaceData)b;
>
> ANyways, did you check with opengl pipeline? It seems
> getDefaultScaleX/Y is not present in OGLSurfaceData which will result
> in falling back to SurfaceData in which case the scale will be 1.
>
> Regards
> Prasanta
>
> On 8/18/2016 3:12 PM, Prem Balakrishnan wrote:
>
> Added “2d-dev” team for review
>
> Regards,
>
> Prem
>
> *From:*Alexandr Scherbatiy
> *Sent:* Thursday, August 18, 2016 2:57 PM
> *To:* Prem Balakrishnan; Rajeev Chamyal; awt-dev at openjdk.java.net
> <mailto:awt-dev at openjdk.java.net>; Sergey Bylokhov
> *Subject:* Re: Review Request: JDK-8144735 [hidpi]
> javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
> fails
>
> Could you also send the review to the 2d-dev alias?
>
> Thanks,
> Alexandr.
>
> On 8/18/2016 9:59 AM, Prem Balakrishnan wrote:
>
> Hi Alexandr,
>
> AccelSurface is implemented by *ONLY* D3DSurfaceData and
> OGLSurfaceData classes,
>
> Both of these classes extend SurfaceData as well.
>
> Hence, casting of 'as' variable which is of type AccelSurface
> object to SurfaceData is always VALID.
>
> Regards,
> Prem
>
> *From:*Alexandr Scherbatiy
> *Sent:* Wednesday, August 17, 2016 4:42 PM
> *To:* Prem Balakrishnan; Rajeev Chamyal;
> awt-dev at openjdk.java.net <mailto:awt-dev at openjdk.java.net>;
> Sergey Bylokhov
> *Subject:* Re: Review Request: JDK-8144735 [hidpi]
> javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
> fails
>
> On 8/17/2016 11:30 AM, Prem Balakrishnan wrote:
>
>
>
> Hi Alexandr,
>
> Thankyou for the review.
>
> YES scaled SurfaceData returns proper scale values from
> getDefaultScaleX()/getDefaultScaleY(), which I have used in
> the current patch.
>
> Please review the updated patch
>
> http://cr.openjdk.java.net/~pkbalakr/8144735/webrev.02/
> <http://cr.openjdk.java.net/%7Epkbalakr/8144735/webrev.02/>
>
> Is it always true that the 'as' variable which has type
> AccelSurface in the fix is always instance of SurfaceData?
>
> Thanks,
> Alexandr.
>
>
>
> Regards,
> Prem
>
> *From:*Alexandr Scherbatiy
> *Sent:* Tuesday, August 16, 2016 10:06 PM
> *To:* Prem Balakrishnan; Rajeev Chamyal;
> awt-dev at openjdk.java.net <mailto:awt-dev at openjdk.java.net>;
> Sergey Bylokhov
> *Subject:* Re: Review Request: JDK-8144735 [hidpi]
> javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
> fails
>
> On 8/16/2016 7:35 AM, Prem Balakrishnan wrote:
>
>
>
>
> Reminder
>
> *From:*Prem Balakrishnan
> *Sent:* Friday, August 12, 2016 6:36 PM
> *To:* Alexander Scherbatiy; Rajeev Chamyal;
> awt-dev at openjdk.java.net <mailto:awt-dev at openjdk.java.net>;
> Sergey Bylokhov
> *Subject:* RE: Review Request: JDK-8144735 [hidpi]
> javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
> fails
>
> Hi Alexandr and Sergey,
>
> Please review the updated patch.
>
> http://cr.openjdk.java.net/~pkbalakr/8144735/webrev.01/
> <http://cr.openjdk.java.net/%7Epkbalakr/8144735/webrev.01/>
>
> >>“It is a little bit strange bug, because VolatileImage
> should handle this scale internally, and create double sized
> surface when necessary”.-Sergey
>
> Yes as you mentioned Volatile Image is getting scaled
> internally. Thanks for the feedback.
>
> *Cause:*In VIOptWindowPainter::updateWindowAccel(psdops, w, h)
> call, width and height were passed without scaling,
>
> which was creating a bitmap of specified width and height,
> hence the output was clipped.
>
>
> I just have two general questions.
> - The scaled SurfaceData should return proper scales from
> getDefaultScaleX()/getDefaultScaleY() methods. Do these
> methods return right values after setting the scaled image
> sizes in the fix?
> - Region.clipScale() which is used in many places rounds
> values. The usual rule is to use Math.floor() for image
> coordinates rounding and Math.ceil() for sizes.
> Should the same rule be applicable here?
>
> Thanks,
> Alexandr.
>
>
>
>
>
>
> Regards,
>
> Prem
>
> *From:*Alexandr Scherbatiy
> *Sent:* Thursday, August 04, 2016 6:23 PM
> *To:* Prem Balakrishnan; Rajeev Chamyal;
> awt-dev at openjdk.java.net <mailto:awt-dev at openjdk.java.net>;
> Sergey Bylokhov
> *Subject:* Re: Review Request: JDK-8144735 [hidpi]
> javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
> fails
>
> On 8/3/2016 10:04 AM, Prem Balakrishnan wrote:
>
> Hi,
>
> Please review fix for JDK9,
>
> *Bug:*https://bugs.openjdk.java.net/browse/JDK-8144735
>
> *Webrev:*http://cr.openjdk.java.net/~pkbalakr/8144735/webrev.00/
> <http://cr.openjdk.java.net/%7Epkbalakr/8144735/webrev.00/>
>
> *Issue:*
>
> javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
> fails
>
> *Cause:*
>
> While creating Transparent VolatileImage, width and height was
> NOT hidpi scaled.
>
> *Fix: *VolatileImage width and height are scaled.
>
>
> I believe this is an issue in AWT and needs to be discussed
> on awt-dev alias.
>
> Should the backbuffer width and height be also scaled for
> the BIWindowPainter?
>
> Thanks,
> Alexandr.
>
> Thanks,
>
> Prem
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20160826/876ae632/attachment.html>
More information about the 2d-dev
mailing list