<?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>1310</bug_id>
          
          <creation_ts>2016-06-01 16:13:51 +0200</creation_ts>
          <short_desc>Removing and re-adding a GLJPanel results in small image being rendered</short_desc>
          <delta_ts>2023-08-18 14:22:26 +0200</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>Jogl</product>
          <component>awt</component>
          <version>2.5.0</version>
          <rep_platform>All</rep_platform>
          <op_sys>windows</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="willemv">willem.verstraeten</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          <cc>gouessej</cc>
          
          <cf_type>DEFECT</cf_type>
          <cf_scm_refs>5be77843127a785bcdfc4dbc041fcf42c6971592
d17d807a76ba9cb940542264fcad9cf71c7ec585
70f62ca5d121e5e71548246d468b5e7baa5faf25</cf_scm_refs>
          <cf_workaround>---</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>5637</commentid>
    <comment_count>0</comment_count>
      <attachid>788</attachid>
    <who name="willemv">willem.verstraeten</who>
    <bug_when>2016-06-01 16:13:51 +0200</bug_when>
    <thetext>Created attachment 788
Sample program that shows the problem.

If you remove and then re-add a GLJPanel from its parent, a small version (about 50px * 50px it appears) of the content is rendered.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5638</commentid>
    <comment_count>1</comment_count>
    <who name="willemv">willem.verstraeten</who>
    <bug_when>2016-06-01 16:18:34 +0200</bug_when>
    <thetext>Resizing the window restores the GLJPanel to its normal behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5639</commentid>
    <comment_count>2</comment_count>
    <who name="willemv">willem.verstraeten</who>
    <bug_when>2016-06-01 16:29:46 +0200</bug_when>
    <thetext>Setting &apos;sendReshape&apos; to true in the &apos;addNotify&apos; implementation of GLJPanel fixes the issue. Not sure if that&apos;s the right fix though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5651</commentid>
    <comment_count>3</comment_count>
    <who name="Julien Gouesse">gouessej</who>
    <bug_when>2016-07-06 08:49:24 +0200</bug_when>
    <thetext>Hi

Thanks you for providing a sample program and a tip to work around this bug. Can you confirm that you use JOGL 2.3.2?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5652</commentid>
    <comment_count>4</comment_count>
    <who name="willemv">willem.verstraeten</who>
    <bug_when>2016-07-06 08:55:10 +0200</bug_when>
    <thetext>I use JOGL 2.3.2 indeed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6168</commentid>
    <comment_count>5</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2019-03-30 05:07:34 +0100</bug_when>
    <thetext>putting this on version 2.5.0 for now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6820</commentid>
    <comment_count>6</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2023-08-07 13:33:03 +0200</bug_when>
    <thetext>commit 5be77843127a785bcdfc4dbc041fcf42c6971592

Test Bug1310: Remove and re-add a GLJPanel from its Swing parent (working)
Also tested with Sofr-HiDPI on Linux using GDK_SCALE=2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6855</commentid>
    <comment_count>7</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2023-08-18 14:21:49 +0200</bug_when>
    <thetext>commit d17d807a76ba9cb940542264fcad9cf71c7ec585

    Bug 1310: Detect missing glViewport(..) on Windows before GLEventListener.reshape(..) when re-adding GLJPanel
    
    When re-adding GLJPanel on Windows glViewport()
    is not called through
      - GLJPanel.Updater.display()
      - GLDrawableHelper.reshape()
      - GLDrawableHelper.setViewportAndClear()
    
    Instead the following sequence is called due to sendReshape == false:
      - GLJPanel.Updater.display()
      - GLDrawableHelper.display() ** missing glViewport(..) **
    
    This bug is not visible on X11 or MacOS since the glViewport
    is only set to a different user value on Windows ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6856</commentid>
    <comment_count>8</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2023-08-18 14:22:26 +0200</bug_when>
    <thetext>commit 70f62ca5d121e5e71548246d468b5e7baa5faf25 

    Bug 1310: Reset GLJPanel states @ dispose(..) and always reshapeImpl(..) @ addNotify(), leading to proper initialization sequence when re-adding panel.
    
    The proper initialization sequence subsequently also leads to proper glViewport initialization,
    see commit d17d807a76ba9cb940542264fcad9cf71c7ec585
    
    No side-effects expected, just ensuring same code-path compared to initial addNotify().</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>788</attachid>
            <date>2016-06-01 16:13:51 +0200</date>
            <delta_ts>2016-06-01 16:13:51 +0200</delta_ts>
            <desc>Sample program that shows the problem.</desc>
            <filename>JoglPanel.java</filename>
            <type>text/x-java</type>
            <size>3282</size>
            <attacher name="willemv">willem.verstraeten</attacher>
            
              <data encoding="base64">cGFja2FnZSBzYW1wbGVzOw0KDQppbXBvcnQgamF2YS5hd3QuQm9yZGVyTGF5b3V0Ow0KaW1wb3J0
IGphdmEuYXd0LkNvbnRhaW5lcjsNCmltcG9ydCBqYXZhLmF3dC5EaW1lbnNpb247DQppbXBvcnQg
amF2YS5hd3QuR3JpZExheW91dDsNCmltcG9ydCBqYXZhLmF3dC5ldmVudC5BY3Rpb25FdmVudDsN
CmltcG9ydCBqYXZhLmF3dC5ldmVudC5XaW5kb3dBZGFwdGVyOw0KaW1wb3J0IGphdmEuYXd0LmV2
ZW50LldpbmRvd0V2ZW50Ow0KDQppbXBvcnQgamF2YXguc3dpbmcuQWJzdHJhY3RBY3Rpb247DQpp
bXBvcnQgamF2YXguc3dpbmcuSkZyYW1lOw0KaW1wb3J0IGphdmF4LnN3aW5nLkpQYW5lbDsNCmlt
cG9ydCBqYXZheC5zd2luZy5KVG9vbEJhcjsNCmltcG9ydCBqYXZheC5zd2luZy5XaW5kb3dDb25z
dGFudHM7DQoNCmltcG9ydCBjb20uam9nYW1wLm9wZW5nbC5HTDsNCmltcG9ydCBjb20uam9nYW1w
Lm9wZW5nbC5HTDI7DQppbXBvcnQgY29tLmpvZ2FtcC5vcGVuZ2wuR0xBdXRvRHJhd2FibGU7DQpp
bXBvcnQgY29tLmpvZ2FtcC5vcGVuZ2wuR0xFdmVudExpc3RlbmVyOw0KaW1wb3J0IGNvbS5qb2dh
bXAub3BlbmdsLmF3dC5HTEpQYW5lbDsNCmltcG9ydCBjb20uam9nYW1wLm9wZW5nbC51dGlsLkZQ
U0FuaW1hdG9yOw0KDQovKioNCiAqIFRoaXMgc2FtcGxlIHNob3dzIGhvdyBhIG1hcCBvdmVydmll
dyBjYW4gYmUgaW1wbGVtZW50ZWQgZm9yIGFuIElMc3BWaWV3Lg0KICogVGhlIG1hcCBvdmVydmll
dyBpcyBvdmVybGFpZCBvbiB0aGUgbWFpbiB2aWV3LiBJdCBzaG93cyBhIHBvbHlnb24gd2hpY2gN
CiAqIGJvdW5kcyB0aGUgYXJlYSBvZiB0aGUgd29ybGQgdGhhdCBpcyB2aXNpYmxlIGluIHRoZSBt
YWluIHZpZXcuDQogKi8NCnB1YmxpYyBjbGFzcyBKb2dsUGFuZWwgIHsNCg0KICBwdWJsaWMgc3Rh
dGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7DQogICAgSkZyYW1lIGZyYW1lID0gbmV3IEpG
cmFtZSgiVGVzdGluZyIpOw0KICAgIGZyYW1lLnNldERlZmF1bHRDbG9zZU9wZXJhdGlvbihXaW5k
b3dDb25zdGFudHMuRElTUE9TRV9PTl9DTE9TRSk7DQogICAgQ29udGFpbmVyIGNvbnRlbnQgPSBm
cmFtZS5nZXRDb250ZW50UGFuZSgpOw0KICAgIGNvbnRlbnQuc2V0TGF5b3V0KG5ldyBCb3JkZXJM
YXlvdXQoKSk7DQoNCiAgICBKVG9vbEJhciB0b29sYmFyID0gbmV3IEpUb29sQmFyKCk7DQoNCiAg
ICBmaW5hbCBKUGFuZWwgY29udGFpbmVyID0gbmV3IEpQYW5lbCgpOw0KICAgIGNvbnRhaW5lci5z
ZXRMYXlvdXQobmV3IEdyaWRMYXlvdXQoMSwgMSkpOw0KICAgIGZpbmFsIEdMSlBhbmVsIGdsSlBh
bmVsID0gbmV3IEdMSlBhbmVsKCk7DQogICAgZ2xKUGFuZWwuc2V0UHJlZmVycmVkU2l6ZShuZXcg
RGltZW5zaW9uKDIwMCwgMjAwKSk7DQogICAgY29udGFpbmVyLmFkZChnbEpQYW5lbCk7DQoNCiAg
ICB0b29sYmFyLmFkZChuZXcgQWJzdHJhY3RBY3Rpb24oIlJlbW92ZSBhbmQgYWRkIikgew0KICAg
ICAgQE92ZXJyaWRlDQogICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQoQWN0aW9uRXZl
bnQgZSkgew0KICAgICAgICBjb250YWluZXIucmVtb3ZlQWxsKCk7DQogICAgICAgIGNvbnRhaW5l
ci5hZGQoZ2xKUGFuZWwpOw0KICAgICAgICBnbEpQYW5lbC5pbnZhbGlkYXRlKCk7DQogICAgICAg
IGdsSlBhbmVsLnJlcGFpbnQoKTsNCiAgICAgIH0NCiAgICB9KTsNCg0KDQogICAgZ2xKUGFuZWwu
YWRkR0xFdmVudExpc3RlbmVyKG5ldyBHTEV2ZW50TGlzdGVuZXIoKSB7DQoNCiAgICAgIHByaXZh
dGUgZG91YmxlIHRoZXRhID0gMDsNCiAgICAgIHByaXZhdGUgZG91YmxlIHMgPSAwOw0KICAgICAg
cHJpdmF0ZSBkb3VibGUgYyA9IDA7DQogICAgICBAT3ZlcnJpZGUNCiAgICAgIHB1YmxpYyB2b2lk
IGRpc3BsYXkoR0xBdXRvRHJhd2FibGUgZHJhd2FibGUpIHsNCiAgICAgICAgdXBkYXRlKCk7DQog
ICAgICAgIHJlbmRlcihkcmF3YWJsZSk7DQogICAgICB9DQoNCiAgICAgIEBPdmVycmlkZQ0KICAg
ICAgcHVibGljIHZvaWQgZGlzcG9zZShHTEF1dG9EcmF3YWJsZSBkcmF3YWJsZSkgew0KICAgICAg
fQ0KDQogICAgICBAT3ZlcnJpZGUNCiAgICAgIHB1YmxpYyB2b2lkIGluaXQoR0xBdXRvRHJhd2Fi
bGUgZHJhd2FibGUpIHsNCiAgICAgIH0NCg0KICAgICAgQE92ZXJyaWRlDQogICAgICBwdWJsaWMg
dm9pZCByZXNoYXBlKEdMQXV0b0RyYXdhYmxlIGRyYXdhYmxlLCBpbnQgeCwgaW50IHksIGludCB3
LCBpbnQgaCkgew0KICAgICAgfQ0KDQogICAgICBwcml2YXRlIHZvaWQgdXBkYXRlKCkgew0KICAg
ICAgICB0aGV0YSArPSAwLjAxOw0KICAgICAgICBzID0gTWF0aC5zaW4odGhldGEpOw0KICAgICAg
ICBjID0gTWF0aC5jb3ModGhldGEpOw0KICAgICAgfQ0KDQogICAgICBwcml2YXRlIHZvaWQgcmVu
ZGVyKEdMQXV0b0RyYXdhYmxlIGRyYXdhYmxlKSB7DQogICAgICAgIEdMMiBnbCA9IGRyYXdhYmxl
LmdldEdMKCkuZ2V0R0wyKCk7DQoNCiAgICAgICAgZ2wuZ2xDbGVhcihHTC5HTF9DT0xPUl9CVUZG
RVJfQklUKTsNCg0KICAgICAgICAvLyBkcmF3IGEgdHJpYW5nbGUgZmlsbGluZyB0aGUgd2luZG93
DQogICAgICAgIGdsLmdsQmVnaW4oR0wuR0xfVFJJQU5HTEVTKTsNCiAgICAgICAgZ2wuZ2xDb2xv
cjNmKDEsIDAsIDApOw0KICAgICAgICBnbC5nbFZlcnRleDJkKC1jLCAtYyk7DQogICAgICAgIGds
LmdsQ29sb3IzZigwLCAxLCAwKTsNCiAgICAgICAgZ2wuZ2xWZXJ0ZXgyZCgwLCBjKTsNCiAgICAg
ICAgZ2wuZ2xDb2xvcjNmKDAsIDAsIDEpOw0KICAgICAgICBnbC5nbFZlcnRleDJkKHMsIC1zKTsN
CiAgICAgICAgZ2wuZ2xFbmQoKTsNCiAgICAgIH19KTsNCg0KDQogICAgY29udGVudC5hZGQodG9v
bGJhciwgQm9yZGVyTGF5b3V0Lk5PUlRIKTsNCiAgICBjb250ZW50LmFkZChjb250YWluZXIsIEJv
cmRlckxheW91dC5DRU5URVIpOw0KDQogICAgZnJhbWUucGFjaygpOw0KICAgIGZyYW1lLnNldExv
Y2F0aW9uUmVsYXRpdmVUbyhudWxsKTsNCiAgICBmcmFtZS5zZXRWaXNpYmxlKHRydWUpOw0KDQoN
CiAgICBmaW5hbCBGUFNBbmltYXRvciBhbmltYXRvciA9IG5ldyBGUFNBbmltYXRvcihnbEpQYW5l
bCwgNjApOw0KICAgIGFuaW1hdG9yLnN0YXJ0KCk7DQoNCiAgICBmcmFtZS5hZGRXaW5kb3dMaXN0
ZW5lcihuZXcgV2luZG93QWRhcHRlcigpIHsNCiAgICAgIEBPdmVycmlkZQ0KICAgICAgcHVibGlj
IHZvaWQgd2luZG93Q2xvc2luZyhXaW5kb3dFdmVudCBlKSB7DQogICAgICAgIGFuaW1hdG9yLnN0
b3AoKTsNCiAgICAgIH0NCiAgICB9KTsNCiAgfQ0KfQ0K
</data>

          </attachment>
      

    </bug>

</bugzilla>