Hi Vadim,
Thankyou for the Review.
I have updated the patch as per review comments,
http://cr.openjdk.java.net/~pkbalakr/8144735/webrev.03/
<http://cr.openjdk.java.net/%7Epkbalakr/8144735/webrev.03/>
>According to the comments in the
TranslucentWindowPainter.createInstance you will get BIWindowPainter
even for OpenGL pipeline unless you force optimized path via
>sun.java2d.twp.forceopt so you will need to check these paths in the
fix for OpenGL.
Yes, BIWindowPainter get called in OpenGl pipleline , I am working on
OpenGL rendering issue(8164811).
Regards,
Prem
*From:*Vadim Pakhnushev
*Sent:* Wednesday, August 31, 2016 5:00 PM
*To:* Prem Balakrishnan; Sergey Bylokhov; 2d-dev@openjdk.java.net
*Subject:* Re: Review Request: JDK-8144735 [hidpi]
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
fails
Prem,
I believe it's possible to use AccelSurface.getBounds() method and
skip casting to SurfaceData completely.
The calculations are basically the same.
According to the comments in the
TranslucentWindowPainter.createInstance you will get BIWindowPainter
even for OpenGL pipeline unless you force optimized path via
sun.java2d.twp.forceopt so you will need to check these paths in the
fix for OpenGL.
Thanks,
Vadim
On 30.08.2016 9:17, Prem Balakrishnan wrote:
Reminder
*From:*Prasanta Sadhukhan
*Sent:* Friday, August 26, 2016 12:08 PM
*To:* Prem Balakrishnan; 2d-dev@openjdk.java.net
<mailto:2d-dev@openjdk.java.net>
*Subject:* Re: Review Request: JDK-8144735 [hidpi]
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
fails
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-...@openjdk.java.net <mailto:awt-...@openjdk.java.net>;
2d-dev@openjdk.java.net <mailto:2d-dev@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-...@openjdk.java.net
<mailto:awt-...@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-...@openjdk.java.net
<mailto:awt-...@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-...@openjdk.java.net
<mailto:awt-...@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-...@openjdk.java.net
<mailto:awt-...@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-...@openjdk.java.net
<mailto:awt-...@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