Bug 284

Summary: JOGL does not paint when window size==display size and not window.isActive
Product: [JogAmp] Jogl Reporter: Sven Gothel <sgothel>
Component: coreAssignee: Sven Gothel <sgothel>
Status: VERIFIED WORKSFORME    
Severity: normal    
Priority: P1    
Version: 1   
Hardware: All   
OS: windows   
Type: DEFECT SCM Refs:
Workaround: ---
Attachments: Test case

Description Sven Gothel 2010-03-24 07:50:15 CET


---- Reported by jesmith 2007-02-27 11:15:07 ----

When the JOGL GLCanvas is in an undecorated Frame (AWT), which is the same size as the screen, it 
does not paint when the Frame is not Active (that is, when it is in the background, and other 
WindowsXP application windows overlap it).

If the Frame is not exactly the same size as the screen, such as being +/- 1 pixel different in width, 
then Alt-Tab'ing to another application leaves a correctly painting JOGL window in the background.  It 
appears that there is some "exact match" logic somewhere in the JOGL source, although my searches 
turned up no obvious candidates.

I believe this problem started when I switched from JDK 1.4.2 to JDK 1.6.  It exists in 1.1.0 RC3 and 
1.0.0.

This would not be a problem with full-screen-exclusive windows, since they cannot be in the 
background.  Rather, it is only a problem for full-screen, non-exclusive windows.

I am seeing this with NVIDIA Quadro FX 3500 and 4500 cards.  I have not tried to reproduce on an ATI 
system.



---- Additional Comments From jesmith 2007-02-27 12:11:31 ----

I meant to make this P1 when I submitted it.



---- Additional Comments From jesmith 2007-02-27 12:47:11 ----

Created an attachment
Test case




---- Additional Comments From jesmith 2007-02-27 12:49:29 ----

I've attached a simple test case, which is the Gears demo with a couple extra lines.

Note that in creating this test case, I discovered that there is another key factor: Antialiasing.  This 
problem does not occur when FSAA is 0.  Therefore I now suspect this is really an NVIDIA bug, not a JOGL 
bug.  Although it's profoundly weird that it did not happen when we used Java 1.4, and it does happen 
now, with no NVIDIA driver upgrades in between....




---- Additional Comments From kbr 2007-02-27 14:33:22 ----

Are you specifying -Dsun.java2d.noddraw=true on the command line? This is
required for guaranteed correct operation of all JOGL applications on Windows.




---- Additional Comments From jesmith 2007-02-28 06:53:38 ----

Yes, the test case is reproduced with -Dsun.java2d.noddraw=true, and also with -
Dsun.java2d.opengl=true (in any combination)

This is clearly *not* an interaction with AWT since, it happens when you alt-Tab to a completely different 
application as well.  And, keep in mind, that it only happens with antialiasing On.

My bet now is that this is actually an NVIDIA bug, where they are assuming that a fullscreen window is a 
fullscreen *exclusive* window (by testing the window size, but not testing for exclusivity), and doing some 
inappropriate optimizations for that case.

As such, you might just want to close this bug.  Since I now no longer believe it's JOGL's fault.



---- Additional Comments From kbr 2007-03-02 10:15:34 ----

As indicated by the submitter, this is almost certainly not a JOGL bug. Closing
as "works for me".




--- Bug imported by sgothel@jausoft.com 2010-03-24 07:50 EDT  ---

This bug was previously known as _bug_ 284 at https://jogl.dev.java.net/bugs/show_bug.cgi?id=284
Imported an attachment (id=95)

The original submitter of attachment 95 [details] is unknown.
   Reassigning to the person who moved it here: sgothel@jausoft.com.