<AWT Dev> [9] Review request for JDK-8145173 HiDPI splash screen support on Windows

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Wed Mar 23 12:27:07 UTC 2016


+1

On 23.03.16 13:48, Erik Joelsson wrote:
> Build changes are still good.
>
> /Erik
>
> On 2016-03-23 11:46, Alexander Scherbatiy wrote:
>> On 23/03/16 13:56, Rajeev Chamyal wrote:
>>> Hello Alexandr,
>>>
>>> I have updated the webrev as per review comments.
>>>
>>> http://cr.openjdk.java.net/~rchamyal/8145173/webrev.06/
>>
>>   The fix looks good to me.
>>
>>   Thanks,
>>   Alexandr.
>>>
>>> Regards,
>>> Rajeev Chamyal
>>>
>>> -----Original Message-----
>>> From: Alexandr Scherbatiy
>>> Sent: 22 March 2016 20:15
>>> To: Rajeev Chamyal; Sergey Bylokhov; awt-dev at openjdk.java.net;
>>> build-dev at openjdk.java.net
>>> Subject: Re: <AWT Dev> [9] Review request for JDK-8145173 HiDPI
>>> splash screen support on Windows
>>>
>>> On 3/22/2016 12:43 AM, Rajeev Chamyal wrote:
>>>> Hello All,
>>>>
>>>> Please review the updated webrev.
>>>> http://cr.openjdk.java.net/~rchamyal/8145173/webrev.05/
>>>>
>>>> With VC2010  java.c ::ShowSplashScreen  fails with segmentation
>>>> fault on  calling free on scaled_splash_name .
>>>> This failure is due to different C runtime used by libjli and lib
>>>> splashScreen.
>>>> Fix: Allocating a max scaled image name length buffer in java.c and
>>>> passing it to splashscreen_sys.c
>>>      Just few small comments:
>>>      - SplashGetScaledImageName can return a boolean value which
>>> indicates that high-resolution splash screen has been found
>>>      - The getMaxScaledImageNamePostfixLen function can be added
>>> which just returns max length of the scaled image postfix.
>>>        It allows to control this value on the java.desktop side
>>> rather to keep it in java.c file
>>>      - systemScale.cpp copyright need to be updated to 2016
>>>
>>>     Thanks,
>>>     Alexandr.
>>>> Regards,
>>>> Rajeev Chamyal
>>>>
>>>> -----Original Message-----
>>>> From: Rajeev Chamyal
>>>> Sent: 15 March 2016 18:26
>>>> To: Alexander Scherbatiy; Sergey Bylokhov; awt-dev at openjdk.java.net;
>>>> build-dev at openjdk.java.net
>>>> Subject: RE: <AWT Dev> [9] Review request for JDK-8145173 HiDPI splash
>>>> screen support on Windows
>>>>
>>>> Hello All,
>>>>
>>>> Please review the updated webrev.
>>>> http://cr.openjdk.java.net/~rchamyal/8145173/webrev.04/
>>>>
>>>> Alexandr : I have build code with VS2013 and I didn't get any errors
>>>> you mentioned.
>>>> Still I have updated the code as suggested.
>>>>
>>>> Added build team for make file review. JPRT build with fix was
>>>> successful.
>>>>
>>>> Regards,
>>>> Rajeev Chamyal
>>>>
>>>> -----Original Message-----
>>>> From: Alexander Scherbatiy
>>>> Sent: 14 March 2016 17:28
>>>> To: Rajeev Chamyal
>>>> Cc: Sergey Bylokhov; awt-dev at openjdk.java.net
>>>> Subject: Re: <AWT Dev> [9] Review request for JDK-8145173 HiDPI splash
>>>> screen support on Windows
>>>>
>>>> On 3/14/2016 8:03 AM, Rajeev Chamyal wrote:
>>>>> Hello Sergey,
>>>>>
>>>>> Could you please review the enhancement.
>>>>>
>>>>> I have raised a new enhancement for unifying the splash screen image
>>>>> names across platforms.
>>>>>
>>>>> https://bugs.openjdk.java.net/browse/JDK-8151787
>>>>>
>>>>     575 float *scaleFactor)
>>>>     576 {
>>>>     577     *scaleFactor = 1.0;
>>>>     578     float dpiScaleX = -1.0f;
>>>>     579     float dpiScaleY = -1.0f;
>>>>     580     GetScreenDpi(getPrimaryMonitor(), &dpiScaleX, &dpiScaleY);
>>>>
>>>> I have errors building the fix with VS2010:
>>>> --------------------------------
>>>> * For target
>>>> support_native_java.desktop_libsplashscreen_splashscreen_sys.obj:
>>>> splashscreen_sys.c
>>>> jdk/src/java.desktop/windows/native/libsplashscreen/splashscreen_sys.c
>>>> (578)
>>>> : error C2143: syntax error : missing ';' before 'type'
>>>> jdk/src/java.desktop/windows/native/libsplashscreen/splashscreen_sys.c
>>>> (579)
>>>> : error C2143: syntax error : missing ';' before 'type'
>>>> --------------------------------
>>>>
>>>> You need to move variables declaration to the beginning of a statement.
>>>>
>>>> Thanks,
>>>> Alexandr.
>>>>
>>>>> Regards,
>>>>>
>>>>> Rajeev Chamyal
>>>>>
>>>>> *From:*Alexandr Scherbatiy
>>>>> *Sent:* 10 March 2016 18:46
>>>>> *To:* Rajeev Chamyal; awt-dev at openjdk.java.net; Sergey Bylokhov
>>>>> *Subject:* Re: <AWT Dev> [9] Review request for JDK-8145173 HiDPI
>>>>> splash screen support on Windows
>>>>>
>>>>> The fix looks good to me.
>>>>>
>>>>> Thanks,
>>>>> Alexandr.
>>>>>
>>>>> On 3/10/2016 3:05 AM, Rajeev Chamyal wrote:
>>>>>
>>>>>       Hello Alexandr,
>>>>>
>>>>>       Thanks for the review. Below is the updated webrev as per review
>>>>>       comments.
>>>>>
>>>>> http://cr.openjdk.java.net/~rchamyal/8145173/webrev.03/
>>>>> <http://cr.openjdk.java.net/%7Erchamyal/8145173/webrev.03/>
>>>>>
>>>>>       Regards,
>>>>>
>>>>>       Rajeev Chamyal
>>>>>
>>>>>       *From:*Alexandr Scherbatiy
>>>>>       *Sent:* 10 March 2016 11:39
>>>>>       *To:* Rajeev Chamyal; awt-dev at openjdk.java.net
>>>>>       <mailto:awt-dev at openjdk.java.net>; Sergey Bylokhov
>>>>>       *Subject:* Re: <AWT Dev> [9] Review request for JDK-8145173
>>>>> HiDPI
>>>>>       splash screen support on Windows
>>>>>
>>>>>       On 3/2/2016 9:50 PM, Rajeev Chamyal wrote:
>>>>>
>>>>>
>>>>>           Hello All,
>>>>>
>>>>>           Please review the updated webrev.
>>>>>
>>>>>           Added a free call for duplicate file name in
>>>>>           splashscreen_sys.c :: SplashGetScaledImageName
>>>>>
>>>>> http://cr.openjdk.java.net/~rchamyal/8145173/webrev.02/
>>>>> <http://cr.openjdk.java.net/%7Erchamyal/8145173/webrev.02/>
>>>>>
>>>>>
>>>>>          awt_Win32GraphicsDevice.cpp
>>>>>        656     dpiX = GetScreenDpi(GetMonitor());
>>>>>        657     if (dpiX > 0) {
>>>>>        658         dpiX = dpiX >= 96 ? dpiX / 96 : dpiX;
>>>>>        659         SetScale(dpiX, dpiX);
>>>>>
>>>>>       The Windows HiDPI graphics support was designed to handle
>>>>> both DPI
>>>>>       X and Y scales. The GetScreenDpi should return both values to be
>>>>>       used in SetScale method.
>>>>>
>>>>>       systemScale.cpp
>>>>>
>>>>>          38     float scale = -2.0f;
>>>>>
>>>>>          39     if (scale == -2) {
>>>>>
>>>>>       Initially the scale variable was defined as static to avoid
>>>>> rereading the J2D_UISCALE test variable each time.
>>>>>
>>>>>       It is better to preserve the "// for debug purposes" comment
>>>>> also.
>>>>>
>>>>>
>>>>>       MultiResolutionSplashTest.java
>>>>>
>>>>>       +   scaleFactor = (float)((SunGraphics2D)
>>>>> g).surfaceData.getDefaultScaleX();
>>>>>
>>>>>
>>>>>       Now it is possible to get the the scale factor using
>>>>> GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDev
>>>>> i
>>>>> ce().getDefaultConfiguration().getDefaultTransform().getScaleX()
>>>>>
>>>>>
>>>>>       Thanks,
>>>>>        Alexandr.
>>>>>
>>>>>
>>>>>
>>>>>           Regards,
>>>>>
>>>>>           Rajeev Chamyal
>>>>>
>>>>>           *From:*Rajeev Chamyal
>>>>>           *Sent:* 01 March 2016 15:45
>>>>>           *To:* awt-dev at openjdk.java.net
>>>>>           <mailto:awt-dev at openjdk.java.net>; Sergey Bylokhov;
>>>>> Alexander
>>>>>           Scherbatiy
>>>>>           *Subject:* RE: <AWT Dev> [9] Review request for JDK-8145173
>>>>>           HiDPI splash screen support on Windows
>>>>>
>>>>>           Hello All,
>>>>>
>>>>>           Gentle reminder.
>>>>>
>>>>>           Please review the updated webrev.
>>>>>
>>>>>
>>>>> http://cr.openjdk.java.net/~rchamyal/8145173/webrev.01/
>>>>> <http://cr.openjdk.java.net/%7Erchamyal/8145173/webrev.01/>
>>>>>
>>>>>           Regards,
>>>>>
>>>>>           Rajeev Chamyal
>>>>>
>>>>>           *From:*Rajeev Chamyal
>>>>>           *Sent:* 16 February 2016 16:01
>>>>>           *To:* awt-dev at openjdk.java.net
>>>>>           <mailto:awt-dev at openjdk.java.net>; Sergey Bylokhov;
>>>>> Alexander
>>>>>           Scherbatiy
>>>>>           *Subject:* <AWT Dev> [9] Review request for JDK-8145173
>>>>> HiDPI
>>>>>           splash screen support on Windows
>>>>>
>>>>>           Hello All,
>>>>>
>>>>>           Could you please review the following fix.
>>>>>
>>>>>           Bug : https://bugs.openjdk.java.net/browse/JDK-8145173
>>>>>
>>>>>           Webrev :
>>>>> http://cr.openjdk.java.net/~rchamyal/8145173/webrev.00/
>>>>> <http://cr.openjdk.java.net/%7Erchamyal/8145173/webrev.00/>
>>>>>
>>>>>           This is an enhancement to support HiDPI splash screen on
>>>>> windows.
>>>>>
>>>>>           As a part of this enhancement implementation to
>>>>>           splashscreen_sys.c::SplashGetScaledImageName method has been
>>>>>           provided.
>>>>>
>>>>>           System dpi and scale factor are used to determine the scaled
>>>>>           image name. Dpi value is read using GetDpiForMonitor API on
>>>>>           Windows 8 and GetDesktopDpi API on Windows 7.
>>>>>
>>>>>           Scale factor is calculated from the dpi value.
>>>>>
>>>>>           The naming convention followed for scaled image name is as
>>>>>           follows:
>>>>>
>>>>>           Refer :
>>>>> https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh965325.a
>>>>> s
>>>>> px
>>>>>
>>>>>           Unscaled image name : image.ext
>>>>>
>>>>>           Scaled image name : image.scale-<dpi value>./ext/
>>>>>
>>>>>           Regards,
>>>>>
>>>>>           Rajeev Chamyal
>>>>>
>>
>


-- 
Best regards, Sergey.



More information about the build-dev mailing list