bugGNUstep - Bugs: bug #25592, [Win32] NSOpenGLView display...

Group
 
 

bug #25592: [Win32] NSOpenGLView display problem

Submitter:  - <_57132>
Submitted:  Sun 15 Feb 2009 04:43:43 PM UTC
   
 
Category:  Backend Severity:  3 - Normal
Item Group:  Bug Status:  Fixed
Privacy:  Public Assigned to:  _57132
Open/Closed:  In Test
* Mandatory Fields

Add a New Comment Rich Markup
   

Tue 03 Mar 2009 02:25:08 PM UTC, comment #4: 

The problem comes from the handling of the backing store : each time the GLView is drawn with [-drawRect] the backing store is marked as 'changed'. It is then flushed to the screen. On X11 the backing store is put under the OpenGL sub-window (only useless), but on WinXP (at least) it is put over.

I'm fixing this useless behavior by preventing the flush of the backing store (on both systems).

The reason of the different behavior on win32 system is an error in the window style [-windowStyleForGSStyle:] where WS_CLIPCHILDREN was not set when handlesWindowDecorations == NO.

I think this bug report may be closed. I'll post the changes soon (after some cleaning...)


- <_57132>
Sat 21 Feb 2009 09:57:14 PM UTC, comment #3: 

No, I did not inspect that specific change. It was my change in the first place and I know it is correct :-)

It is just that I think the code that handles the view size on both the X11 and the Windows implementation looks wrong. We should always get the view recangle in windows coordinates by calling the method [convertRectangle:toView:] with nil as the second argument.

I will try that on X and if it works apply it on both systems.
We can then look into the remaining issues and try to resolve them.

Fred Kiefer <FredKiefer>
Group Member
Mon 16 Feb 2009 11:16:17 AM UTC, comment #2: 

Yes:  the display is Ok when GSBackHandlesWindowDecorations = true (native win32 borders - shoudn't it be the other way round??).

When the backing store is 'non retained', the display is right too. You may test this with this tool : http://amstradstuff.free.fr/GNUstep/gnustep-gears-1.0.tar.gz

I may be wrong about rev. 26243. Did you check the previous one is ok and the next one is broken ?

- <_57132>
Sun 15 Feb 2009 11:31:54 PM UTC, comment #1: 

Does the setting of the window decoration influence the problem? The code that computes the sub-window rectangle looks wrong to me both here and in x11.

The change at revision 26243 was mostly about setting the correct window style and extended style. I have no idea how this could result in different output for OpenGL.

Fred Kiefer <FredKiefer>
Group Member
Sun 15 Feb 2009 04:43:43 PM UTC, original submission:  

The (grey) background of the window (or parent view?) is display over the NSOpenGLView.

test with examples/gui/MyGL :

  • in GNUmakefile : replace '-lGL' with '-lopengl32'
  • defaults write NSGlobalDomain GSBackHandlesWindowDecorations false


On my system :
Rev 26244 is broken : the window 'flickers'
Rev 26226 is Ok : the whole window is black (what is bad, but it is a bug in MyGL)

I guess the problem comes from some changes in WIN32Server.m in Rev 26243, but i can not understand why.

- <_57132>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by FredKiefer (Posted a comment)
  • -email is unavailable- added by _57132 (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2009-03-06 _57132 StatusNone Fixed
        Assigned toNone _57132
        Open/ClosedOpen In Test

    Back to the top

    Powered by Savane 3.13-f8d8.
    Corresponding source code