| Summary: | Canvas resize stops the rendering in Mac OS X | ||
|---|---|---|---|
| Product: | [JogAmp] Jogl | Reporter: | president |
| Component: | awt | Assignee: | Sven Gothel <sgothel> |
| Status: | RESOLVED FIXED | ||
| Severity: | major | ||
| Priority: | --- | ||
| Version: | 2.3.2 | ||
| Hardware: | pc_all | ||
| OS: | macosx | ||
| Type: | DEFECT | SCM Refs: |
4eeddd0d446f8491dde2e5b0e3e11e0d5b0be9b7
|
| Workaround: | --- | ||
|
Description
president
2015-06-11 15:29:26 CEST
Test machine
- OSX 10.10.4
- Java 1.8.0_51 x64
- Java 1.6.0_65-b14-466.1 x32 and x64
JOGL Unit Tests:
- com.jogamp.opengl.test.junit.jogl.demos.es2.awt.TestGearsES2AWT: OK
- com.jogamp.opengl.test.junit.jogl.demos.gl2.awt.TestGearsAWT: OK
JOGL Demos:
- Manual demos.gears.Gears: OK
- JNLP Launch reproduces the issue: ERROR
<http://jogamp.org/deployment/archive/master/gluegen_868-joal_596-jogl_1401-jocl_1057-signed/jogl-demos/Gears.jnlp>
- Error is reproduced if resizing very fast about a bigger amount,
e.g. 50% - for the first time!
- Error is not reproduced if first resize happen slowly about
a tiny amount. Later fast resizes work then.
Hence we do have an issue at least on latest OSX w/ latest java8
when running as WebStart - and w/ 'fast resize'.
Root cause: JAWTWindow's JAWTComponentListener 'isShowing' state is initialized while attaching it on-thread and updated via hierarchy-changed event. JAWTComponentListener attachment to the component is issued at JAWTWindow's creation but on the AWT-EDT, hence it may happen at a later time. In this bug scenario, it happens very late, so that the hierarchy-changed event is missed and 'isShowing' is never set to 'true'. Solution is to update 'isShowing' state on the actual AWT-EDT when attaching to the component. Also make 'isShowing' volatile. |