[OpenJDK 2D-Dev] <AWT Dev> [8] Review request for 8011059 [macosx] Make JDK demos look perfect on retina displays

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Wed Nov 6 18:15:36 PST 2013


On 07.11.2013 6:01, Jim Graham wrote:
>
>
> On 11/6/13 5:20 PM, Sergey Bylokhov wrote:
>>> In other words:
>>>
>>> package sun.awt.image;
>>>
>>> public interface MultiResImage {
>>>     public Image getResolutionVariant(float resolution);
>>> }
>>>
>>> public class MacImage extends Image implements MultiResImage {
>>>     public Image getResolutionVariant(float resolution) {
>>>         if (resolution >= 2f && ImageAt2x != null) {
>>>             return ImageAt2x;
>>>         }
>>>         return this;
>>>     }
>>> }
>>>
>>> SG2D.drawImage() {
>>>     if (img instanceof MultiResImage && dest.pixelscale != 1) {
>>>         img = ((MultiResImage)
>>> img).getResolutionVariant(dest.pixelscale);
>>>     }
>>> }
>> In this example there is a problem. For example we have 2
>> BufferedImages/ToolkiImagest A and B; Both wants be scaled perfectly.
>>   - Image A draws to the image B
>>   - Image B draws to the window.
>>
>> When window is moving from the screen x1 to the screen x2 and back. How
>> to handle this situation?
>> In this case getResolutionVariant() can return
>>
>>
>> Related  discussion:
>> http://mail.openjdk.java.net/pipermail/macosx-port-dev/2013-April/005580.html 
>>
>> http://mail.openjdk.java.net/pipermail/macosx-port-dev/2013-April/005581.html 
>>
>
> How does calling getScaledInstance() deal with that?  Note the above 
> was simply to demonstrate the visibility of the interface, not to be a 
> complete implementation...
For example:
  - getScaledInstance() will be called() when image B will be painted to 
the window with scale x2.
  - Inside B.getScaledInstance() the user can create BufferedImage C
  - get graphics from C and set new render hint to IMAGE_SCALING_ON ans 
set scalex2.
  - Apply to C absolutely the same rendering  which was used in B.
  - getScaledInstance() will be called for A.

>
>             ...jim


-- 
Best regards, Sergey.



More information about the macosx-port-dev mailing list