Bug 1085 - GLJPanel regression while printing w/ invisible GLJPanel: Zero size panel size
Summary: GLJPanel regression while printing w/ invisible GLJPanel: Zero size panel size
Status: RESOLVED FIXED
Alias: None
Product: Jogl
Classification: JogAmp
Component: awt (show other bugs)
Version: 2.3.0
Hardware: All all
: --- enhancement
Assignee: Sven Gothel
URL:
Depends on:
Blocks:
 
Reported: 2014-10-02 20:32 CEST by Sven Gothel
Modified: 2019-03-29 17:54 CET (History)
0 users

See Also:
Type: DEFECT
SCM Refs:
5af9b44a893db3b27ddcd2a13d0008ec21880649 650862cc994b1a3ee6d2af970b5b1d8d73ccd2a8
Workaround: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sven Gothel 2014-10-02 20:32:15 CEST

    
Comment 1 Sven Gothel 2014-10-02 20:34:06 CEST
This is a regression due to commit 84f367a73c5b16dcebfd877e82e1c2cb90ae74ce:
   GLJPanel Cleanup: Remove initial FBO reshape; 
   ** Propagate reshape only if differs from panel-size; ** <- this one
   Use pre-fetched panel-size.
Comment 2 Sven Gothel 2014-10-02 20:44:33 CEST
5af9b44a893db3b27ddcd2a13d0008ec21880649
  Increase and fix DEBUG verbosity in GLJPanel 
  to catch reshape regression during print

650862cc994b1a3ee6d2af970b5b1d8d73ccd2a8

This is a regression due to commit 84f367a73c5b16dcebfd877e82e1c2cb90ae74ce:
   GLJPanel Cleanup: Remove initial FBO reshape;
   ** Propagate reshape only if differs from panel-size; ** <- this one
   Use pre-fetched panel-size.

Above commit only issued 'sendReshape'
if the reshape-size differs from the actual panel-size.

Note: The reshape-size is propagated to panel-size either in
  [1] initializeBackendImpl(..) or
  [2] handleReshape(..) @ paintComponent.

While printing w/ an invisible GLJPanel the reshape-size
has not yet propagated to the panel-size (see above)
and two consecutive reshape calls will cause the last one to be dropped.

With this patch we have:

GLJPanel.addNotify()
GLJPanel.reshape.0 null resize [paint] [ this 0x0, pixelScale 1x1, panel 560x420] -> 0x0 * 1x1 -> 0x0, reshapeSize 0x0
GLJPanel.reshape.0 null resize [paint] [ this 560x420, pixelScale 1x1, panel 560x420] -> 560x420 * 1x1 -> 560x420, reshapeSize 560x420
GLJPanel.setupPrint: scale 1.000000 / 1.000000, samples 0, tileSz -1 x -1
GLJPanel.createAndInitializeBackend.1: [printing] 560x420 @ scale 1x1 -> 560x420 @ scale 1x1