<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://jogamp.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.2"
          urlbase="https://jogamp.org/bugzilla/"
          
          maintainer="sgothel@jausoft.com"
>

    <bug>
          <bug_id>729</bug_id>
          
          <creation_ts>2013-05-07 00:03:52 +0200</creation_ts>
          <short_desc>OSX CALayer shall honor the Component&apos;s visibility state (was: Could not make OSX CALayer&apos;ed GLCanvas invisible via CardLayout switching cards)</short_desc>
          <delta_ts>2013-11-16 04:44:41 +0100</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>Jogl</product>
          <component>macosx</component>
          <version>2</version>
          <rep_platform>pc_x86_64</rep_platform>
          <op_sys>macosx</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>critical</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>849</dependson>
          <blocked>889</blocked>
    
    <blocked>906</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>leedingham</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          <cc>marcomoeller</cc>
          
          <cf_type>---</cf_type>
          <cf_scm_refs>3b02a219b1b9e446e87df1beb7da4266f74824fa
ff86d8398ce66abddff4cbada8eabd1314a11d7b</cf_scm_refs>
          <cf_workaround>---</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2568</commentid>
    <comment_count>0</comment_count>
      <attachid>460</attachid>
    <who name="">leedingham</who>
    <bug_when>2013-05-07 00:03:52 +0200</bug_when>
    <thetext>Created attachment 460
Source Code to Demonstrate Bug

Overview:

When using a CardLayout LayoutManager to switch between a
swing component and a GLCanvas, once the GLCanvas has been
displayed it remains visible after being switched out.

Edge artifacts of the red square while resizing the frame
when switched out shows that the GLCanvas bitmap is being
rescaled and redrawn rather than it&apos;s display method
being invoked.

This was not a problem with JOGL 1.1.1.

Steps to Reproduce: (See attachment for code sample)
1) Create a JPanel using a CardLayout. Add two cards, a JLabel and a GLCanvas.
2) Switch from the JLabel card to the GLCanvas card and back to the JLabel card.

Actual Results:
The GLCanvas does not disappear after switching back to the JLabel.

Expected Results:
The GLCaanvas should dissappear and the JLabel should reappear.

Build Date and Platform:
JOGL2 rc11, confirmed to still exist in:
Implementation Version: 2.0.2-rc-20130426
Platform: Mac OS X 10.8.3

Additional Builds and Platforms:
Have only tested JOGL 2 on Mac but problem did not occur in JOGL 1.x on Mac or Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2569</commentid>
    <comment_count>1</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2013-05-07 01:23:24 +0200</bug_when>
    <thetext>Thank you for your detailed bug report, incl. the test case!

Just for your info - this is _not_ a regression!

JOGL1 had not code path to work w/ OSX &gt;= 10.8.
Mentioned code path is new and completely different in JOGL2,
since it utilizes the new CALayer impl. which is the only supported path for Java7/OSX.
Further more, Java7&apos;s AWT itself is new.

Lightweight/Heavyweight mixing .. and &apos;complicated&apos; AWT/Java2D UIs are especially 
difficult to achieve w/o bugs on OSX/Java7.
You may try to use GLJPanel as a last resort.

However, I will validate your test case - ofc - and see what is possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2577</commentid>
    <comment_count>2</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2013-05-09 02:23:49 +0200</bug_when>
    <thetext>You might want to try GLJPanel .. ? Will check on this at a later time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2847</commentid>
    <comment_count>3</comment_count>
    <who name="Marco Möller">marcomoeller</who>
    <bug_when>2013-08-05 11:34:48 +0200</bug_when>
    <thetext>Hi,

for me it would be crucial to get this bug fixed somehow... I am using Nasa World Wind, and all my MacOS clients are now waiting for some months to get the newest upgrade... recently my old version is not running anymore due to MacOS changes... so it would be great if you cold sove this.

Anyway: GREAT JOB GUYS!!

THX
-Marco</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3045</commentid>
    <comment_count>4</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2013-10-05 13:46:33 +0200</bug_when>
    <thetext>    
A once visible CALayer (GLCanvas) must be able to become invisible w/o destruction,
e.g. as required by CardLayout&apos;s switching cards.
    
See unit test for Bug 532: &apos;TestAWTCardLayoutAnimatorStartStopBug532&apos;
    
Out native &apos;fixCALayerLayout(..)&apos; takes the visible state as tracked by JAWTWindow&apos;s ComponentListener
and sets our CALayer (root and sub) hidden state accordingly.
    
Now MacOSXJAWTWindow&apos;s layoutSurfaceLayerImpl(..) always calls down to &apos;fixCALayerLayout(..)&apos;
due to update the visibility state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3049</commentid>
    <comment_count>5</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2013-10-06 02:30:27 +0200</bug_when>
    <thetext>OSX CALayer invisible needs to have opacity 0 to not show hidden component.

Completes commit 3b02a219b1b9e446e87df1beb7da4266f74824fa
    
See unit test: TestBug816OSXCALayerPos03AWT</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>460</attachid>
            <date>2013-05-07 00:03:52 +0200</date>
            <delta_ts>2013-05-07 00:03:52 +0200</delta_ts>
            <desc>Source Code to Demonstrate Bug</desc>
            <filename>JOGL2_CardLayout_Test.java</filename>
            <type>application/octet-stream</type>
            <size>3231</size>
            <attacher>leedingham</attacher>
            
              <data encoding="base64">LyoKICogRGVtb25zdHJhdGlvbiBvZiBhIGJ1ZyBpbiBKT0dMMiAocmMxMSkKICogcnVubmluZyB1
bmRlciBKYXZhIDEuNy4wXzIxIG9uIE1hYyBPUyBYIDEwLjguMwogKiAKICogRGVzY3JpcHRpb246
CiAqIAogKiBXaGVuIHVzaW5nIGEgQ2FyZExheW91dCBMYXlvdXRNYW5hZ2VyIHRvIHN3aXRjaCBi
ZXR3ZWVuIGEKICogc3dpbmcgY29tcG9uZW50IGFuZCBhIEdMQ2FudmFzLCBvbmNlIHRoZSBHTENh
bnZhcyBoYXMgYmVlbgogKiBkaXNwbGF5ZWQgaXQgcmVtYWlucyB2aXNpYmxlIGFmdGVyIGJlaW5n
IHN3aXRjaGVkIG91dC4KICogCiAqIEVkZ2UgYXJ0aWZhY3RzIG9mIHRoZSByZWQgc3F1YXJlIHdo
aWxlIHJlc2l6aW5nIHRoZSBmcmFtZQogKiB3aGVuIHN3aXRjaGVkIG91dCBzaG93cyB0aGF0IHRo
ZSBHTENhbnZhcyBiaXRtYXAgaXMgYmVpbmcKICogcmVzY2FsZWQgYW5kIHJlZHJhd24gcmF0aGVy
IHRoYW4gaXQncyBkaXNwbGF5IG1ldGhvZAogKiBiZWluZyBpbnZva2VkLgogKiAKICogVGhpcyB3
YXMgbm90IGEgcHJvYmxlbSB3aXRoIEpPR0wgMS4xLjEuCiAqLwoKcGFja2FnZSBqb2dsMl9jYXJk
bGF5b3V0X3Rlc3Q7CgppbXBvcnQgamF2YS5hd3QuKjsKaW1wb3J0IGphdmEuYXd0LmV2ZW50LkFj
dGlvbkV2ZW50OwoKaW1wb3J0IGphdmF4Lm1lZGlhLm9wZW5nbC4qOwppbXBvcnQgamF2YXgubWVk
aWEub3BlbmdsLmF3dC5HTENhbnZhczsKCmltcG9ydCBqYXZheC5zd2luZy4qOwoKY2xhc3MgTGlz
dGVuZXIgaW1wbGVtZW50cyBHTEV2ZW50TGlzdGVuZXIgewoJcHVibGljIHZvaWQgaW5pdChmaW5h
bCBHTEF1dG9EcmF3YWJsZSBkcmF3YWJsZSkgewoJCWZpbmFsIEdMMiBnbDIgPSBkcmF3YWJsZS5n
ZXRHTCgpLmdldEdMMigpOwoJCQoJCWdsMi5nbENsZWFyQ29sb3IoMSwgMSwgMSwgMSk7CgkJCgkJ
Z2wyLmdsQ29sb3IzZigxLCAwLCAwKTsKCQkKCQlnbDIuZ2xSb3RhdGVmKDUsIDAsIDAsIDEpOwoJ
CQoJCWdsMi5nbFNjYWxlZigwLjVmLCAwLjVmLCAwLjVmKTsKCX0KCglwdWJsaWMgdm9pZCByZXNo
YXBlKGZpbmFsIEdMQXV0b0RyYXdhYmxlIGRyYXdhYmxlLCBmaW5hbCBpbnQgeCwgZmluYWwgaW50
IHksIGZpbmFsIGludCB3aWR0aCwgZmluYWwgaW50IGhlaWdodCkgewoJfQoJCglwdWJsaWMgdm9p
ZCBkaXNwbGF5KGZpbmFsIEdMQXV0b0RyYXdhYmxlIGRyYXdhYmxlKSB7CgkJZmluYWwgR0wyIGds
MiA9IGRyYXdhYmxlLmdldEdMKCkuZ2V0R0wyKCk7CgkJCgkJZ2wyLmdsQ2xlYXIoR0wyLkdMX0NP
TE9SX0JVRkZFUl9CSVQpOwoKCQlnbDIuZ2xCZWdpbihHTDIuR0xfUE9MWUdPTik7CgkJZ2wyLmds
VmVydGV4MmkoLTEsIC0xKTsKCQlnbDIuZ2xWZXJ0ZXgyaSgxLCAtMSk7CgkJZ2wyLmdsVmVydGV4
MmkoMSwgMSk7CgkJZ2wyLmdsVmVydGV4MmkoLTEsIDEpOwoJCWdsMi5nbEVuZCgpOwoJfQoKCXB1
YmxpYyB2b2lkIGRpc3Bvc2UoZmluYWwgR0xBdXRvRHJhd2FibGUgZHJhd2FibGUpIHsKCX0KfQoK
Y2xhc3MgQ2FyZExheW91dFBhbmVsIGV4dGVuZHMgSlBhbmVsIHsKCXByaXZhdGUgZmluYWwgQ2Fy
ZExheW91dCBjYXJkTGF5b3V0OwoJCglwcml2YXRlIGZpbmFsIFN0cmluZ1tdIGNhcmRUaXRsZXM7
CgkKCXByaXZhdGUgaW50IGNhcmRJbmRleDsKCQoJZmluYWwgU3RyaW5nIGNhcmRUaXRsZSgpIHsK
CQlyZXR1cm4gY2FyZFRpdGxlc1tjYXJkSW5kZXhdOwoJfQoJCglmaW5hbCB2b2lkIG5leHRDYXJk
KCkgewoJCWNhcmRJbmRleCA9IChjYXJkSW5kZXggKyAxKSAlIGNhcmRUaXRsZXMubGVuZ3RoOwoJ
CWNhcmRMYXlvdXQuc2hvdyh0aGlzLCBjYXJkVGl0bGVzW2NhcmRJbmRleF0pOwoJfQoJCglDYXJk
TGF5b3V0UGFuZWwoKSB7CgkJZmluYWwgTGlzdGVuZXIgbGlzdGVuZXIgPSBuZXcgTGlzdGVuZXIo
KTsKCQkKCQlmaW5hbCBHTENhbnZhcyBjYW52YXMgPSBuZXcgR0xDYW52YXMoKTsKCQkKCQljYW52
YXMuYWRkR0xFdmVudExpc3RlbmVyKGxpc3RlbmVyKTsKCQkKCQljYXJkTGF5b3V0ID0gbmV3IENh
cmRMYXlvdXQoKTsKCQkKCQlzZXRMYXlvdXQoY2FyZExheW91dCk7CgkJCgkJY2FyZFRpdGxlcyA9
IG5ldyBTdHJpbmdbXSB7CgkJCSJMYWJlbCIsCgkJCSJDYW52YXMiCgkJfTsKCQkKCQlhZGQobmV3
IEpMYWJlbCgiTGFiZWwgQ2FyZCIsIFN3aW5nQ29uc3RhbnRzLkNFTlRFUiksIGNhcmRUaXRsZXNb
MF0pOwoJCQoJCWFkZChjYW52YXMsIGNhcmRUaXRsZXNbMV0pOwoJCQoJCXNldFByZWZlcnJlZFNp
emUobmV3IERpbWVuc2lvbig0MDAsIDQwMCkpOwoJfQp9CgpjbGFzcyBCb3JkZXJMYXlvdXRQYW5l
bCBleHRlbmRzIEpQYW5lbCB7Cglwcml2YXRlIGZpbmFsIEpMYWJlbCBjYXJkTGFiZWw7CgkKCUJv
cmRlckxheW91dFBhbmVsKCkgewoJCXN1cGVyKG5ldyBCb3JkZXJMYXlvdXQoKSk7CgkJCgkJZmlu
YWwgQ2FyZExheW91dFBhbmVsIGNhcmRMYXlvdXRQYW5lbCA9IG5ldyBDYXJkTGF5b3V0UGFuZWwo
KTsKCQkKCQljYXJkTGFiZWwgPSBuZXcgSkxhYmVsKGNhcmRMYXlvdXRQYW5lbC5jYXJkVGl0bGUo
KSwgU3dpbmdDb25zdGFudHMuQ0VOVEVSKTsKCQkKCQlmaW5hbCBKQnV0dG9uIGNhcmRCdXR0b24g
PSBuZXcgSkJ1dHRvbihuZXcgQWJzdHJhY3RBY3Rpb24oIk5leHQgQ2FyZCIpIHsKCQkJQE92ZXJy
aWRlCgkJCXB1YmxpYyBmaW5hbCB2b2lkIGFjdGlvblBlcmZvcm1lZChmaW5hbCBBY3Rpb25FdmVu
dCBldmVudCkgewoJCQkJY2FyZExheW91dFBhbmVsLm5leHRDYXJkKCk7CgkJCQljYXJkTGFiZWwu
c2V0VGV4dChjYXJkTGF5b3V0UGFuZWwuY2FyZFRpdGxlKCkpOwoJCQl9CgkJfSk7CgkJCgkJYWRk
KGNhcmRMYWJlbCwgQm9yZGVyTGF5b3V0Lk5PUlRIKTsKCQlhZGQoY2FyZExheW91dFBhbmVsLCBC
b3JkZXJMYXlvdXQuQ0VOVEVSKTsKCQlhZGQoY2FyZEJ1dHRvbiwgQm9yZGVyTGF5b3V0LlNPVVRI
KTsKCX0KfQoKcHVibGljIGNsYXNzIEpPR0wyX0NhcmRMYXlvdXRfVGVzdCB7CglwdWJsaWMgc3Rh
dGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgkJZmluYWwgSkZyYW1lIGZyYW1lID0gbmV3
IEpGcmFtZSgpOwoJCQoJCWZyYW1lLmdldENvbnRlbnRQYW5lKCkuYWRkKG5ldyBCb3JkZXJMYXlv
dXRQYW5lbCgpKTsKCgkJRXZlbnRRdWV1ZS5pbnZva2VMYXRlcihuZXcgUnVubmFibGUoKSB7CgkJ
CUBPdmVycmlkZQoJCQlwdWJsaWMgdm9pZCBydW4oKSB7CgkJCQlmcmFtZS5wYWNrKCk7CgkJCQlm
cmFtZS5zZXRWaXNpYmxlKHRydWUpOwoJCQl9CgkJfSk7Cgl9Cn0K
</data>

          </attachment>
      

    </bug>

</bugzilla>