[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-2d-dev
Subject:    Re: [OpenJDK 2D-Dev] Review Request: JDK-8144735 [hidpi] javax/swing/JWindow/ShapedAndTranslucentWin
From:       Vadim Pakhnushev <vadim.pakhnushev () oracle ! com>
Date:       2016-08-31 13:05:31
Message-ID: 3664876f-21e4-09ca-53dd-a11b98345587 () oracle ! com
[Download RAW message or body]

+1

Vadim

On 31.08.2016 16:05, Prem Balakrishnan wrote:
> 
> 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-dev@openjdk.java.net <mailto:awt-dev@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-dev@openjdk.java.net
> <mailto:awt-dev@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@openjdk.java.net
> <mailto:awt-dev@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@openjdk.java.net
> <mailto:awt-dev@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@openjdk.java.net
> <mailto:awt-dev@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@openjdk.java.net
> <mailto:awt-dev@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
> 


[Attachment #3 (text/html)]

<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">+1<br>
      <br>
      Vadim<br>
      <br>
      On 31.08.2016 16:05, Prem Balakrishnan wrote:<br>
    </div>
    <blockquote cite="mid:279ab3e1-5fac-40f3-a382-7c3c5156b8f9@default"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <meta name="Generator" content="Microsoft Word 12 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
	{font-family:"Times New Roman \, serif";}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	color:black;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{mso-style-priority:99;
	mso-style-link:"Plain Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:10.5pt;
	font-family:Consolas;
	color:black;}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";
	color:black;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";
	color:black;}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:"Courier New";}
span.PlainTextChar
	{mso-style-name:"Plain Text Char";
	mso-style-priority:99;
	mso-style-link:"Plain Text";
	font-family:Consolas;}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";
	color:black;}
span.EmailStyle23
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
span.EmailStyle24
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle25
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle26
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle27
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle28
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle29
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle30
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle31
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal"><span style="color:#1F497D">Hi \
                Vadim,<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D">Thankyou for
            the Review.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D">I have updated
            the patch as per review comments,<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D"><a
              moz-do-not-send="true"
              href="http://cr.openjdk.java.net/%7Epkbalakr/8144735/webrev.03/">http://cr.openjdk.java.net/~pkbalakr/8144735/webrev.03/</a>
  <o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal">&gt;According to the comments in the
          TranslucentWindowPainter.createInstance you will get
          BIWindowPainter even for OpenGL pipeline unless you force
          optimized path via &gt;sun.java2d.twp.forceopt so you will
          need to check these paths in the fix for OpenGL.<o:p></o:p></p>
        <p class="MsoNormal"> <span style="color:#4F81BD"> Yes,
            BIWindowPainter get called in OpenGl pipleline , I am
            working on OpenGL rendering issue(8164811).<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span \
                style="color:#1F497D">Regards,<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D">Prem<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
        <div>
          <div style="border:none;border-top:solid #B5C4DF
            1.0pt;padding:3.0pt 0in 0in 0in">
            <p class="MsoNormal"><b><span
style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">From:</span></b><span
 style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">
  Vadim Pakhnushev <br>
                <b>Sent:</b> Wednesday, August 31, 2016 5:00 PM<br>
                <b>To:</b> Prem Balakrishnan; Sergey Bylokhov;
                <a class="moz-txt-link-abbreviated" \
href="mailto:2d-dev@openjdk.java.net">2d-dev@openjdk.java.net</a><br>  \
<b>Subject:</b> Re: Review Request: JDK-8144735 [hidpi] \
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
  fails<o:p></o:p></span></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <div>
          <p class="MsoNormal">Prem,<br>
            <br>
            I believe it's possible to use AccelSurface.getBounds()
            method and skip casting to SurfaceData completely.<br>
            The calculations are basically the same.<br>
            <br>
            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.<br>
            <br>
            Thanks,<br>
            Vadim<br>
            <br>
            On 30.08.2016 9:17, Prem Balakrishnan wrote:<o:p></o:p></p>
        </div>
        <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
          <p class="MsoNormal"><span \
                style="color:#1F497D">Reminder</span><o:p></o:p></p>
          <p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
          <div>
            <div style="border:none;border-top:solid #B5C4DF
              1.0pt;padding:3.0pt 0in 0in 0in">
              <p class="MsoNormal"><b><span
style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">From:</span></b><span
 style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">
  Prasanta Sadhukhan <br>
                  <b>Sent:</b> Friday, August 26, 2016 12:08 PM<br>
                  <b>To:</b> Prem Balakrishnan; <a
                    moz-do-not-send="true"
                    href="mailto:2d-dev@openjdk.java.net">2d-dev@openjdk.java.net</a><br>
  <b>Subject:</b> Re: Review Request: JDK-8144735
                  [hidpi]
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
  fails</span><o:p></o:p></p>
            </div>
          </div>
          <p class="MsoNormal"> <o:p></o:p></p>
          <p class="MsoNormal">Ok. so long you are addressing the opengl
            issue albeit via different bugid, it's ok with me. +1.<br>
            <br>
            Regards<br>
            Prasanta<o:p></o:p></p>
          <div>
            <p class="MsoNormal">On 8/26/2016 11:56 AM, Prem
              Balakrishnan wrote:<o:p></o:p></p>
          </div>
          <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
            <p class="MsoNormal"><span style="color:#1F497D">Hi
                Prasanta,</span><o:p></o:p></p>
            <p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
            <p class="MsoNormal"><span style="color:#1F497D">Thankyou
                for the review.</span><o:p></o:p></p>
            <p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
            <p class="MsoNormal"><span style="color:#1F497D">The code
                compiles , Actual scenario is as below:</span><o:p></o:p></p>
            <p class="MsoNormal"><span style="color:#1F497D">public
                class Temp {</span><o:p></o:p></p>
            <p class="MsoNormal"><span style="color:#1F497D">    \
                </span><o:p></o:p></p>
            <p class="MsoNormal"><span style="color:#1F497D">    AccelSurface
                as = new AccelSurface() {};</span><o:p></o:p></p>
            <p class="MsoNormal"><span style="color:#1F497D">   
                SurfaceData sd = (SurfaceData)as;</span><o:p></o:p></p>
            <p class="MsoNormal"><span style="color:#1F497D">}</span><o:p></o:p></p>
            <p class="MsoNormal"><span style="color:#1F497D">class
                SurfaceData {}</span><o:p></o:p></p>
            <p class="MsoNormal"><span style="color:#1F497D">interface
                Surface {}</span><o:p></o:p></p>
            <p class="MsoNormal"><span style="color:#1F497D">interface
                AccelSurface extends Surface{}</span><o:p></o:p></p>
            <p class="MsoNormal"><span style="color:#1F497D">class
                D3DSurfaceData extends SurfaceData implements
                AccelSurface{}</span><o:p></o:p></p>
            <p class="MsoNormal"><span style="color:#1F497D">class
                OGLSurfaceData extends SurfaceData implements
                AccelSurface{}</span><o:p></o:p></p>
            <p class="MsoNormal"><span \
style="color:#1F497D">-------------------</span><o:p></o:p></p>  <p \
class="MsoNormal"><span style="color:#1F497D">In  suggested fix, the SurfaceData is \
always of type  D3DSurfaceData.</span><o:p></o:p></p>
            <p class="MsoNormal"><span style="color:#1F497D">And hence
                getDefaultScaleX/Y holds good. OpenGL rendering is
                handled in a different flow.</span><o:p></o:p></p>
            <p class="MsoNormal" style="margin-bottom:12.0pt"><span
                lang="EN-IN"><a moz-do-not-send="true"
                  href="http://cr.openjdk.java.net/%7Epkbalakr/8144735/webrev.02/">http://cr.openjdk.java.net/~pkbalakr/8144735/webrev.02/</a></span><o:p></o:p></p>
  <p class="MsoNormal" style="margin-bottom:12.0pt"><span
                lang="EN-IN">Suggested fix also resolves the following
                failures on hidpi windows 8</span><o:p></o:p></p>
            <p class="MsoNormal" \
style="margin-bottom:12.0pt">javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucent.java
  <br>
javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentGradient.java
              <br>
javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java
              <br>
javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java
  <br>
javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java
  <br>
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java<o:p></o:p></p>
  <table class="MsoNormalTable" border="0" cellpadding="0">
              <tbody>
                <tr>
                  <td style="padding:.75pt .75pt .75pt .75pt">
                    <p class="MsoNormal"><span \
                style="color:#1F497D">----------------------<br>
                        OpenGL Rendering issue will be addressed in </span><span
                        style="font-size:12.0pt"><a
                          moz-do-not-send="true"
                          \
href="https://bugs.openjdk.java.net/browse/JDK-8164811">JDK-8164811</a>  \
</span><o:p></o:p></p>  </td>
                  <td style="padding:.75pt .75pt .75pt .75pt"><br>
                  </td>
                </tr>
              </tbody>
            </table>
            <p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
            <p class="MsoNormal"><span \
                style="color:#1F497D">Regards,</span><o:p></o:p></p>
            <p class="MsoNormal"><span \
                style="color:#1F497D">Prem</span><o:p></o:p></p>
            <p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
            <div>
              <div style="border:none;border-top:solid #B5C4DF
                1.0pt;padding:3.0pt 0in 0in 0in">
                <p class="MsoNormal"><b><span
style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">From:</span></b><span
 style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">
  Prasanta Sadhukhan <br>
                    <b>Sent:</b> Monday, August 22, 2016 12:32 PM<br>
                    <b>To:</b> Prem Balakrishnan; Rajeev Chamyal; <a
                      moz-do-not-send="true"
                      \
href="mailto:awt-dev@openjdk.java.net">awt-dev@openjdk.java.net</a>;  <a \
                moz-do-not-send="true"
                      \
href="mailto:2d-dev@openjdk.java.net">2d-dev@openjdk.java.net</a><br>  \
<b>Subject:</b> Re: Review Request: JDK-8144735  [hidpi]
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
  fails</span><o:p></o:p></p>
              </div>
            </div>
            <p class="MsoNormal"> <o:p></o:p></p>
            <p class="MsoNormal">I wonder how it compiles?<br>
              I tried a small program<br>
              ------------------<br>
              public class Test {<br>
                      AccelSurface b = new AccelSurface();<br>
                      SurfaceData c = (SurfaceData)b;<br>
              }<br>
              <br>
              class SurfaceData extends Surface {}<br>
              class Surface {}<br>
              class AccelSurface extends Surface {}<br>
              ---------<br>
              and it fails to compile <br>
              Test.java:3: error: incompatible types: AccelSurface
              cannot be converted to SurfaceData<br>
                  SurfaceData c = (SurfaceData)b;<br>
              <br>
              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.<br>
              <br>
              Regards<br>
              Prasanta<o:p></o:p></p>
            <div>
              <p class="MsoNormal">On 8/18/2016 3:12 PM, Prem
                Balakrishnan wrote:<o:p></o:p></p>
            </div>
            <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
              <p class="MsoNormal"><span style="color:#1F497D"> \
</span><o:p></o:p></p>  <p class="MsoNormal"><span style="color:#1F497D">Added
                  “2d-dev” team for review</span><o:p></o:p></p>
              <p class="MsoNormal"><span style="color:#1F497D"> \
                </span><o:p></o:p></p>
              <p class="MsoNormal"><span \
                style="color:#1F497D">Regards,</span><o:p></o:p></p>
              <p class="MsoNormal"><span \
                style="color:#1F497D">Prem</span><o:p></o:p></p>
              <p class="MsoNormal"><span style="color:#1F497D"> \
</span><o:p></o:p></p>  <div>
                <div style="border:none;border-top:solid #B5C4DF
                  1.0pt;padding:3.0pt 0in 0in 0in">
                  <p class="MsoNormal"><b><span
style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">From:</span></b><span
 style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">
  Alexandr Scherbatiy <br>
                      <b>Sent:</b> Thursday, August 18, 2016 2:57 PM<br>
                      <b>To:</b> Prem Balakrishnan; Rajeev Chamyal; <a
                        moz-do-not-send="true"
                        \
href="mailto:awt-dev@openjdk.java.net">awt-dev@openjdk.java.net</a>;  Sergey \
Bylokhov<br>  <b>Subject:</b> Re: Review Request: JDK-8144735
                      [hidpi]
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
  fails</span><o:p></o:p></p>
                </div>
              </div>
              <p class="MsoNormal"> <o:p></o:p></p>
              <p class="MsoNormal" style="margin-bottom:12.0pt">Could
                you also send the review to the 2d-dev alias?<br>
                <br>
                Thanks,<br>
                Alexandr.<o:p></o:p></p>
              <div>
                <p class="MsoNormal">On 8/18/2016 9:59 AM, Prem
                  Balakrishnan wrote:<o:p></o:p></p>
              </div>
              <blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
                <p class="MsoNormal"><span style="color:#1F497D">Hi
                    Alexandr,</span><o:p></o:p></p>
                <p class="MsoNormal"><span style="color:#1F497D"> \
</span><o:p></o:p></p>  <p class="MsoNormal">AccelSurface is implemented by
                  *ONLY* D3DSurfaceData and OGLSurfaceData classes,<o:p></o:p></p>
                <p class="MsoNormal">Both of these classes extend
                  SurfaceData as well.<o:p></o:p></p>
                <p class="MsoNormal">Hence, casting of 'as' variable
                  which is of type AccelSurface object to SurfaceData is
                  always VALID.<o:p></o:p></p>
                <p class="MsoNormal"> <o:p></o:p></p>
                <p class="MsoNormal">Regards,<br>
                  Prem<o:p></o:p></p>
                <p class="MsoNormal"><span style="color:#1F497D"> \
</span><o:p></o:p></p>  <div>
                  <div style="border:none;border-top:solid #B5C4DF
                    1.0pt;padding:3.0pt 0in 0in 0in">
                    <p class="MsoNormal"><b><span
style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">From:</span></b><span
 style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">
  Alexandr Scherbatiy <br>
                        <b>Sent:</b> Wednesday, August 17, 2016 4:42 PM<br>
                        <b>To:</b> Prem Balakrishnan; Rajeev Chamyal; <a
                          moz-do-not-send="true"
                          \
href="mailto:awt-dev@openjdk.java.net">awt-dev@openjdk.java.net</a>;  Sergey \
Bylokhov<br>  <b>Subject:</b> Re: Review Request: JDK-8144735
                        [hidpi]
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
  fails</span><o:p></o:p></p>
                  </div>
                </div>
                <p class="MsoNormal"> <o:p></o:p></p>
                <p class="MsoNormal">On 8/17/2016 11:30 AM, Prem
                  Balakrishnan wrote:<br>
                  <br>
                  <br>
                  <br>
                  <br>
                  <br>
                  <o:p></o:p></p>
                <p class="MsoNormal"><span style="color:#1F497D">Hi
                    Alexandr,</span><o:p></o:p></p>
                <p class="MsoNormal"><span style="color:#1F497D"> \
</span><o:p></o:p></p>  <p class="MsoNormal"><span style="color:#1F497D">Thankyou
                    for the review.</span><o:p></o:p></p>
                <p class="MsoNormal"><span style="color:#1F497D">YES
                    scaled SurfaceData returns proper scale values from
                    getDefaultScaleX()/getDefaultScaleY(), which I have
                    used in the current patch.</span><o:p></o:p></p>
                <p class="MsoNormal"><span style="color:#1F497D"> \
</span><o:p></o:p></p>  <p class="MsoNormal"><span style="color:#1F497D">Please
                    review the updated patch</span><o:p></o:p></p>
                <p class="MsoNormal" style="margin-bottom:12.0pt"><span
                    lang="EN-IN"><a moz-do-not-send="true"
                      \
href="http://cr.openjdk.java.net/%7Epkbalakr/8144735/webrev.02/">http://cr.openjdk.java.net/~pkbalakr/8144735/webrev.02/</a></span><o:p></o:p></p>
  <p class="MsoNormal"><span
                    style="font-size:12.0pt;font-family:&quot;Times New
                    Roman&quot;,&quot;serif&quot;">  Is it always true
                    that the 'as' variable which has type AccelSurface
                    in the fix is always instance of SurfaceData?<br>
                    <br>
                      Thanks,<br>
                      Alexandr.<br>
                    <br>
                    <br>
                    <br>
                    <br>
                    <br>
                  </span><o:p></o:p></p>
                <p class="MsoNormal" style="margin-bottom:12.0pt"><span
                    style="color:#1F497D" lang="EN-IN">Regards,<br>
                    Prem</span><o:p></o:p></p>
                <div>
                  <div style="border:none;border-top:solid #B5C4DF
                    1.0pt;padding:3.0pt 0in 0in 0in">
                    <p class="MsoNormal"><b><span
style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">From:</span></b><span
 style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">
  Alexandr Scherbatiy <br>
                        <b>Sent:</b> Tuesday, August 16, 2016 10:06 PM<br>
                        <b>To:</b> Prem Balakrishnan; Rajeev Chamyal; <a
                          moz-do-not-send="true"
                          \
href="mailto:awt-dev@openjdk.java.net">awt-dev@openjdk.java.net</a>;  Sergey \
Bylokhov<br>  <b>Subject:</b> Re: Review Request: JDK-8144735
                        [hidpi]
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
  fails</span><o:p></o:p></p>
                  </div>
                </div>
                <p class="MsoNormal"> <o:p></o:p></p>
                <p class="MsoNormal">On 8/16/2016 7:35 AM, Prem
                  Balakrishnan wrote:<br>
                  <br>
                  <br>
                  <br>
                  <br>
                  <br>
                  <br>
                  <o:p></o:p></p>
                <p class="MsoNormal"><span \
                style="color:#1F497D">Reminder</span><o:p></o:p></p>
                <p class="MsoNormal"><span style="color:#1F497D"> \
</span><o:p></o:p></p>  <div>
                  <div style="border:none;border-top:solid #B5C4DF
                    1.0pt;padding:3.0pt 0in 0in 0in">
                    <p class="MsoNormal"><b><span
style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">From:</span></b><span
 style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">
  Prem Balakrishnan <br>
                        <b>Sent:</b> Friday, August 12, 2016 6:36 PM<br>
                        <b>To:</b> Alexander Scherbatiy; Rajeev Chamyal;
                        <a moz-do-not-send="true"
                          \
href="mailto:awt-dev@openjdk.java.net">awt-dev@openjdk.java.net</a>;  Sergey \
Bylokhov<br>  <b>Subject:</b> RE: Review Request: JDK-8144735
                        [hidpi]
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
  fails</span><o:p></o:p></p>
                  </div>
                </div>
                <p class="MsoNormal"> <o:p></o:p></p>
                <p class="MsoNormal"><span style="color:#1F497D">Hi
                    Alexandr and Sergey,</span><o:p></o:p></p>
                <p class="MsoNormal"><span style="color:#1F497D"> \
</span><o:p></o:p></p>  <p class="MsoNormal"><span style="color:#1F497D">Please
                    review the updated patch.</span><o:p></o:p></p>
                <p class="MsoNormal" style="margin-bottom:12.0pt"><span
                    lang="EN-IN"><a moz-do-not-send="true"
                      \
href="http://cr.openjdk.java.net/%7Epkbalakr/8144735/webrev.01/">http://cr.openjdk.java.net/~pkbalakr/8144735/webrev.01/</a></span><o:p></o:p></p>
  <p class="MsoPlainText">&gt;&gt;“It is a little bit
                  strange bug, because VolatileImage should handle this
                  scale internally, and create double sized surface when
                  necessary”.-Sergey<o:p></o:p></p>
                <p class="MsoNormal"><span style="color:#1F497D">Yes as
                    you mentioned Volatile Image is getting scaled
                    internally. Thanks for the feedback.</span><o:p></o:p></p>
                <p class="MsoNormal"><span style="color:#1F497D"> \
</span><o:p></o:p></p>  <pre><b><span \
style="font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;">Cause:</span></b><span \
style="font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"> In  \
</span><span style="color:#1F497D">VIOptWindowPainter::updateWindowAccel(psdops, w, \
                h) call, width and height were passed without \
                scaling,</span><o:p></o:p></pre>
                <pre><span style="color:#1F497D">which was creating a bitmap of \
specified width and height, hence the output was clipped.</span><o:p></o:p></pre>  <p \
class="MsoNormal"><span style="font-size:12.0pt"><br>  I just have two general \
                questions.<br>
                      - 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?<br>
                      - 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.<br>
                        Should the same rule be applicable here?<br>
                    <br>
                      Thanks,<br>
                      Alexandr.<br>
                    <br>
                    <br>
                    <br>
                    <br>
                    <br>
                    <br>
                    <br>
                    <br>
                  </span><o:p></o:p></p>
                <pre><span \
style="font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"> \
                </span><o:p></o:p></pre>
                <pre><span \
style="font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"> \
                </span><o:p></o:p></pre>
                <pre><span \
style="font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Regards,</span><o:p></o:p></pre>
                
                <pre><span \
style="font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Prem</span><o:p></o:p></pre>
                
                <p class="MsoNormal"><span style="color:#1F497D"> \
                </span><o:p></o:p></p>
                <p class="MsoNormal"><span style="color:#1F497D"> \
</span><o:p></o:p></p>  <div>
                  <div style="border:none;border-top:solid #B5C4DF
                    1.0pt;padding:3.0pt 0in 0in 0in">
                    <p class="MsoNormal"><b><span
style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">From:</span></b><span
 style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">
  Alexandr Scherbatiy <br>
                        <b>Sent:</b> Thursday, August 04, 2016 6:23 PM<br>
                        <b>To:</b> Prem Balakrishnan; Rajeev Chamyal; <a
                          moz-do-not-send="true"
                          \
href="mailto:awt-dev@openjdk.java.net">awt-dev@openjdk.java.net</a>;  Sergey \
Bylokhov<br>  <b>Subject:</b> Re: Review Request: JDK-8144735
                        [hidpi]
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
  fails</span><o:p></o:p></p>
                  </div>
                </div>
                <p class="MsoNormal"> <o:p></o:p></p>
                <p class="MsoNormal" style="margin-bottom:12.0pt">On
                  8/3/2016 10:04 AM, Prem Balakrishnan wrote:<o:p></o:p></p>
                <p class="MsoNormal" style="text-align:justify"><span
                    lang="EN-IN">Hi,</span><o:p></o:p></p>
                <p class="MsoNormal"
                  style="text-align:justify;text-indent:.5in"><span
                    lang="EN-IN">Please review fix for JDK9,</span><o:p></o:p></p>
                <p class="MsoNormal" style="text-align:justify"><span
                    style="color:#1F497D" lang="EN-IN"> </span><o:p></o:p></p>
                <p class="MsoNormal"
                  style="text-align:justify;text-indent:.5in"><b><span
                      lang="EN-IN">Bug:</span></b><span lang="EN-IN"> <a
                      moz-do-not-send="true"
                      \
href="https://bugs.openjdk.java.net/browse/JDK-8144735">https://bugs.openjdk.java.net/browse/JDK-8144735</a>
  </span><o:p></o:p></p>
                <p class="MsoNormal"
                  style="text-align:justify;text-indent:.5in"><span
                    style="color:#1F497D" lang="EN-IN"> </span><o:p></o:p></p>
                <p class="MsoNormal"
                  style="text-align:justify;text-indent:.5in"><b><span
                      lang="EN-IN">Webrev:</span></b><span lang="EN-IN">
                    <a moz-do-not-send="true"
                      \
href="http://cr.openjdk.java.net/%7Epkbalakr/8144735/webrev.00/">http://cr.openjdk.java.net/~pkbalakr/8144735/webrev.00/</a>
  </span><o:p></o:p></p>
                <p class="MsoNormal"
                  style="text-align:justify;text-indent:.5in"><span
                    lang="EN-IN"> </span><o:p></o:p></p>
                <p class="MsoNormal"
                  style="text-align:justify;text-indent:.5in"><span
                    lang="EN-IN"> </span><o:p></o:p></p>
                <p class="MsoNormal"
                  style="text-align:justify;text-indent:.5in"><b><span
                      lang="EN-IN">Issue:</span></b><o:p></o:p></p>
                <p class="MsoNormal"
                  style="text-align:justify;text-indent:.5in"><span
                    lang="EN-IN">javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentPerPixelTranslucentGradient.java
  fails </span><o:p></o:p></p>
                <p class="MsoNormal"
                  style="text-align:justify;text-indent:.5in"><span
                    lang="EN-IN"> </span><o:p></o:p></p>
                <p class="MsoNormal"
                  style="text-align:justify;text-indent:.5in"><b><span
                      lang="EN-IN">Cause:</span></b><o:p></o:p></p>
                <p class="MsoNormal"
                  style="text-align:justify;text-indent:.5in"><span
                    lang="EN-IN">While creating Transparent
                    VolatileImage, width and height was NOT hidpi
                    scaled.</span><o:p></o:p></p>
                <p class="MsoNormal"
                  style="text-align:justify;text-indent:.5in"><span
                    lang="EN-IN"> </span><o:p></o:p></p>
                <p class="MsoNormal"
                  style="text-align:justify;text-indent:.5in"><b><span
                      lang="EN-IN">Fix: </span></b><span lang="EN-IN">VolatileImage
                    width and height are scaled.</span><o:p></o:p></p>
                <p class="MsoNormal" style="margin-bottom:12.0pt"><span
                    style="font-size:12.0pt"><br>
                       I believe this is an issue in AWT and needs to be
                    discussed on awt-dev alias.<br>
                    <br>
                       Should the backbuffer width and height be also
                    scaled for the BIWindowPainter?<br>
                    <br>
                      Thanks,<br>
                      Alexandr.<br>
                     </span><o:p></o:p></p>
                <p class="MsoNormal"
                  style="text-align:justify;text-indent:.5in"><span
                    lang="EN-IN"> </span><o:p></o:p></p>
                <p class="MsoNormal" style="text-align:justify"><span
                    lang="EN-IN">Thanks,</span><o:p></o:p></p>
                <p class="MsoNormal" style="text-align:justify"><span
                    lang="EN-IN">Prem</span><o:p></o:p></p>
                <p class="MsoNormal"><span lang="EN-IN"> </span><o:p></o:p></p>
                <p class="MsoNormal"><span style="font-size:12.0pt"
                    lang="EN-IN"> </span><o:p></o:p></p>
                <p class="MsoNormal"><span style="color:windowtext"> \
                </span><o:p></o:p></p>
                <p class="MsoNormal"><span style="font-size:12.0pt"> \
                </span><o:p></o:p></p>
                <p class="MsoNormal"><span style="font-size:12.0pt"> \
</span><o:p></o:p></p>  <p class="MsoNormal"><span
                    style="font-size:12.0pt;font-family:&quot;Times New
                    Roman&quot;,&quot;serif&quot;"> </span><o:p></o:p></p>
              </blockquote>
              <p class="MsoNormal"><span
                  style="font-size:12.0pt;font-family:&quot;Times New
                  Roman , serif&quot;,&quot;serif&quot;"> </span><o:p></o:p></p>
            </blockquote>
            <p class="MsoNormal"><span
                style="font-size:12.0pt;font-family:&quot;Times New
                Roman&quot;,&quot;serif&quot;"> </span><o:p></o:p></p>
          </blockquote>
          <p class="MsoNormal"><span
              style="font-size:12.0pt;font-family:&quot;Times New Roman
              , serif&quot;,&quot;serif&quot;"> </span><o:p></o:p></p>
        </blockquote>
        <p class="MsoNormal"><span
            style="font-size:12.0pt;font-family:&quot;Times New
            Roman&quot;,&quot;serif&quot;"><o:p> </o:p></span></p>
      </div>
    </blockquote>
    <br>
  </body>
</html>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic