<AWT Dev> [9] Review request for 8033534 Get MultiResolution image from native system
Petr Pchelko
petr.pchelko at oracle.com
Tue Mar 4 03:53:28 PST 2014
I'm fine with the fix.
>> Hello, Alexander.
>>
>> In CImage.m:430 - Do we really want to describe and clear the exception?
>> May be it's better to simply return NULL and let Java handle the exception?
>> This made sense when you were continuing the loop, but now doesn't.
> The exception is cleared because it should not be thrown on the Java side.
> For example the Toolkit.getDefaultToolkit().getImage("NSImage://NSApplicationIcon") call
> should not throw an exception in case if nativeGetNSImageRepresentationSizes() call fails.
> It should just return an Image without resolution variants.
> The ExceptionDescribe is left just for debugging purposes.
In real life this will never happen, so I'm fine with any decision)
Just CHECK_EXCEPTION_RETUEN looks nicer than these 3 lines.
With best regards. Petr.
On 04.03.2014, at 15:39, Alexander Scherbatiy <alexandr.scherbatiy at oracle.com> wrote:
> On 3/4/2014 3:30 PM, Petr Pchelko wrote:
>> Hello, Alexander.
>>
>> In CImage.m:430 - Do we really want to describe and clear the exception?
>> May be it's better to simply return NULL and let Java handle the exception?
>> This made sense when you were continuing the loop, but now doesn't.
> The exception is cleared because it should not be thrown on the Java side.
> For example the Toolkit.getDefaultToolkit().getImage("NSImage://NSApplicationIcon") call
> should not throw an exception in case if nativeGetNSImageRepresentationSizes() call fails.
> It should just return an Image without resolution variants.
> The ExceptionDescribe is left just for debugging purposes.
>
> Thanks,
> Alexandr.
>
>>
>> With best regards. Petr.
>>
>> On 04.03.2014, at 15:04, Alexander Scherbatiy <alexandr.scherbatiy at oracle.com> wrote:
>>
>>> Hello,
>>>
>>> Could you review the updated fix:
>>> http://cr.openjdk.java.net/~alexsch/8033534/webrev.04
>>>
>>> - NULL is returned for all cases from the nativeGetNSImageRepresentationsCount method
>>> - long lines are split
>>> - SetObjectArrayElement can throw ArrayIndexOutOfBoundsException and ArrayStoreException exceptions.
>>> We do not expect neither of them because the same length and type is used for the array creation and element settings.
>>> I updated the exception handling to return NULL if an exception occurs.
>>>
>>> Thanks,
>>> Alexandr.
>>>
>>>
>>> On 3/3/2014 11:48 PM, Sergey Bylokhov wrote:
>>>> Hi, Alexander.
>>>> nativeGetNSImageRepresentationsCount three times return different values in case of error (0, NULL, nil).
>>>> What exception we expect from the SetObjectArrayElement and why we continue in this case?
>>>> Also please split soooooooooooooo long lines in these files.
>>>>
>>>> On 2/26/14 6:40 PM, Alexander Scherbatiy wrote:
>>>>> Hello,
>>>>>
>>>>> Could you review the updated fix:
>>>>> http://cr.openjdk.java.net/~alexsch/8033534/webrev.03/
>>>>>
>>>>> On 2/26/2014 4:54 PM, Petr Pchelko wrote:
>>>>>> Hello, Alexander.
>>>>>>
>>>>>> I have a couple of comments:
>>>>>>
>>>>>> 1. You could replace the first loop with indexOfObjectPassingTest method.. Not sure if this would look cleaner, up to you.
>>>>> Updated. There is one more way to use one loop instead of two. All of them does not look simple.
>>>>>
>>>>>> 2. I suppose JNFNewObjectArray could throw the OOM and we would get a parfait warning, could you please add CHECK_NULL_RETURN after it.
>>>>> CHECK_NULL_RETURN is added.
>>>>>> 3. In CImage.java you are setting the currentImageIndex to the biggest image representation smaller that the one requested and this representation
>>>>>> would be used as a base one in the MultiResolutionBufferedImage. However in MultiResolutionBufferedImage getResolutionVariant you are returning
>>>>>> the smallest variant bigger than the requested one. Is this correct?
>>>>> I think that it is correct. Assume that an image with size 300x300 is requested but there are only resolution variants with sizes [250x250] and [350x350].
>>>>> The resolution variant with [350x350] size is used as the base image. Now we need to draw the image to region [300x300]. The resolution variant
>>>>> with size [350x350] will be used from the MultiResolution image.
>>>>>
>>>>> Thanks,
>>>>> Alexandr.
>>>>>
>>>>>
>>>>>> Thank you.
>>>>>> With best regards. Petr.
>>>>>>
>>>>>> On 26.02.2014, at 16:08, Alexander Scherbatiy <alexandr.scherbatiy at oracle.com> wrote:
>>>>>>
>>>>>>> Hello,
>>>>>>>
>>>>>>> Could you review the updated fix:
>>>>>>> http://cr.openjdk.java.net/~alexsch/8033534/webrev.02/
>>>>>>>
>>>>>>> This is the same fix. The only difference is that the MultiResolutionBufferedImage class is used from the fix JDK-8035069.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Alexandr.
>>>>>>>
>>>>>>>
>>>>>>> On 2/10/2014 7:05 PM, Scott Palmer wrote:
>>>>>>>> Just to be clear, "the image representations are chosen to be closest to the requested size" is not accurate.
>>>>>>>> This change returns the smallest image representation that is greater than or equal to the requested size. (Which I believe is the correct thing to do.)
>>>>>>>> A smaller image representation may be closer to the requested size, but it makes more sense to return a larger image since scaling down to size should produce better results than scaling up.
>>>>>>>>
>>>>>>>> Scott
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Feb 10, 2014 at 8:53 AM, Alexander Scherbatiy <alexandr.scherbatiy at oracle.com <mailto:alexandr.scherbatiy at oracle.com>> wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>> Could you review the updated fix:
>>>>>>>> http://cr.openjdk.java.net/~alexsch/8033534/webrev.01
>>>>>>>> <http://cr.openjdk.java.net/%7Ealexsch/8033534/webrev.01>
>>>>>>>>
>>>>>>>> - The image representations are chosen to be closest to the
>>>>>>>> requested size.
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Alexandr.
>>>>>>>>
>>>>>>>>
>>>>>>>> On 2/4/2014 5:00 PM, Sergey Bylokhov wrote:
>>>>>>>>
>>>>>>>> Hi, Alexander.
>>>>>>>> I think that getResolutionVariant should return an image which
>>>>>>>> is close as much as possible to the requested size.
>>>>>>>>
>>>>>>>> On 04.02.2014 16:42, Alexander Scherbatiy wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> Could you review the fix:
>>>>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8033534
>>>>>>>> webrev:
>>>>>>>> http://cr.openjdk.java.net/~alexsch/8033534/webrev.00
>>>>>>>> <http://cr.openjdk.java.net/%7Ealexsch/8033534/webrev.00>
>>>>>>>>
>>>>>>>> - The method that gets a sorted array of NSImage
>>>>>>>> representaion pixel sizes for the given image size is added
>>>>>>>> - A MultiResolution image is created if an NSImage has
>>>>>>>> several representations for the given image size
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Alexandr.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>
>>>> --
>>>> Best regards, Sergey.
>
More information about the macosx-port-dev
mailing list