Review request for MACOSX_PORT-766: Create offscreen CALayer surface
Dmitry Cherepanov
dmitry.cherepanov at oracle.com
Thu Dec 15 01:37:53 PST 2011
Here's the updated webrev
http://cr.openjdk.java.net/~dcherepanov/macosx-port-766.1/
Thanks,
Dmitry
Dmitry Cherepanov wrote:
> Hi Sergey,
>
> Thanks for looking into this. Right, it's wrong that the method
> returns null for zero size windows. The code has been modified to
> return the instance of the NullSurfaceData class (with no-op
> implementation) so that it prevents possible NPE exceptions.
>
> Sergey Bylokhov wrote:
>> Hi Dmitry,
>> I have a question about this code(CGLLayer.java)
>>
>> 81 public SurfaceData replaceSurfaceData() {
>> 82 if (peer.getBounds().isEmpty()) {
>> 83 return surfaceData;
>> 84 }
>>
>> It can return null for peers which have empty bounds. In this case we
>> cannot create correct Graphics object in getGraphics()(see
>> LWComponentPeer.getOnscreenGraphics()).
>> I think it is incorrect, we should have correct Graphics for such peers.
>>
>>
>> 12.12.2011 21:41, Dmitry Cherepanov wrote:
>>> Hi Mike, Phil,
>>>
>>> Here's a fix for the following task -
>>> http://java.net/jira/browse/MACOSX_PORT-766
>>>
>>> The purpose of the fix is to create purely off-screen CALayer
>>> surface that isn't tied to an NSView or NSWindow (needs to be done
>>> before proceeding with MACOSX_PORT-539).
>>>
>>> Webrev - http://cr.openjdk.java.net/~dcherepanov/macosx-port-766.0/
>>>
>>> Some brief notes regarding the changes:
>>>
>>> - the fix disables the initial implementation for the CALayer-based
>>> rendering (pushed as a part of
>>> http://java.net/jira/browse/MACOSX_PORT-77) as this implementation
>>> tries to reuse the existing CGLWindowSurfaceData class (to implement
>>> intermediate buffer) and it automatically becomes tied to a
>>> NSView/NSWindow.
>>>
>>> - the new approach introduces new CGLLayerSurfaceData class - this
>>> type of surface serves as an intermediate buffer between the flusher
>>> thread and the AppKit thread. And the new CGLLayerSurfaceData class
>>> allows us to have the implementation of the CGLLayer class
>>> independent from the CGLWindowSurfaceData class.
>>>
>>> Could you please take a look at this? Thanks in advance for any review.
>>>
>>> Thanks,
>>> Dmitry
>>
>>
>
>
More information about the macosx-port-dev
mailing list