Summary: | GLCanvas and NewtCanvasAWT Positioned permanently on lower left corner | ||
---|---|---|---|
Product: | [JogAmp] Jogl | Reporter: | Bassel Morcos <bmorcos> |
Component: | macosx | Assignee: | Sven Gothel <sgothel> |
Status: | RESOLVED FIXED | ||
Severity: | critical | CC: | bmorcos |
Priority: | --- | ||
Version: | 2 | ||
Hardware: | All | ||
OS: | macosx | ||
Type: | --- | SCM Refs: |
4b5435c68c3f12d62dadb395957362eceacfb25c
9a8f9b9f7e6148b60b6f0f4326df8d213774284c
3abff83dbc0a99c8d227788c9dddbe59cd15b9ba
a2a057406ff5d21499860e8fef6ba88f07d9bf95
60968cdc388b6a7464da3a6b58f25cb61e29f681
7f7275834922b9c30aec6520dc5c5f20939a49d8
e9ce2246c947cc357fef993003008fe4c6a0495f
ae103ba597464ca25071950af7afe012e2b86c13
|
Workaround: | --- | ||
Bug Depends on: | 928, 937 | ||
Bug Blocks: | 889, 906 | ||
Attachments: |
2 canvas side by side
2 canvases side by side |
Description
Bassel Morcos
2013-08-15 18:59:20 CEST
Created attachment 496 [details]
2 canvas side by side
This demo shows 2 GLCanvases side by side. On JOGL 2.0rc11 they display correctly side by side (after an initial resize jiggle), and JOGL 2.0.2 they are always both in the bottom left corner.
Created attachment 497 [details]
2 canvases side by side
Cleaned up the testcase code. Uses a BoxLayout, though it fails on other layouts too.
Also see: <http://forum.jogamp.org/Mac-OS-X-10-7-Oracle-JRE-7-Swing-integration-issues-td4027780.html#a4029292> Testing w/ JDK 7u40 fcs b40 .. with enabling/disabling our existing workaround - 'jdk-7u40-fcs-bin-b40-macosx-x86_64-16_aug_2013' Fix OSX CALayer 'quirks' for AWT 1.7.0_40 - See JAWTUtil JAWT_OSX_CALAYER_QUIRK_SIZE and JAWT_OSX_CALAYER_QUIRK_POSITION. - Provide quirk bits for OSX CALayer depending on used JVM/AWT and act accordingly. - TestBug816OSXCALayerPosAWT: Add resize by frame .. see git commit Sven, I got the latest build (#1081) to test, I downloaded the produced glugen,gluegen-natives, jogl-all, jogl-all-natives for mac. I still have the same issue as before. Is there something I need to do to enable "QUIRKS" mode? I Looked at the test submitted, and it doesn't look like Any settings need to be put in place. Best, Bassel Sven, Your changes Work like a charm! I was using jdk 40 ea build 40, and when I debugged, the Platform.JAVA_UPDATE returned a 0 instead of 40 so it didn't detect it. I downloaded and installed the officially released jdk from oracle, and everything works. I'm pleasantly surprised by the speed you guys respond to bugs. Thanks again! Best, Bassel Issue not solved to 7u40 for all cases .. WIP http://jogamp.org/git/?p=jogl.git;a=commit;h=3abff83dbc0a99c8d227788c9dddbe59cd15b9ba .. fixed issue w/ vZome. Bug 816: Clarify JAWT_OSX_CALAYER_QUIRK_* semantics, add JAWT_OSX_CALAYER_QUIRK_LAYOUT Emmanuel Puybaret provided 2 more tests showing code still incorrect. Bug 816 (OSX CALayer pos): Fix location on 'inner CALayer' calculation 'inner CALayer' is the outter AWT Window client space (content). +++ Pseudo-Code: p0 = c.locationOnScreen(); p0 -= c.getOutterComp.getPos(); p0 -= c.getOutterComp.getInsets(); Where 'locationOnScreen()' is: p0 = 0/0; while( null != c ) { p0 += c.getPos(); } +++ JAWTWindow.getLocationOnScreenNonBlocking(..) validated against AWT's Component.getLocationOnScreen() - OK for all use-cases. (Validation enabled w/ DEBUG) All unit tests manually validated on OSX 10.7 w/ jdk7u40. Add detailed description (pseudo code) to JAWTUtil.JAWT_OSX_CALAYER_QUIRK_LAYOUT getLocationOnScreenNonBlocking(..): stop traversing at top-level heavyweight Window, fixes [J]Dialog use case. Top-level heavyweight Window's position is it's position on screen, hence stop traversing. |