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

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #25592: [Win32] NSOpenGLView display problem

Submitted by:  Xavier Glattard <xgl>
Submitted on:  Sun 15 Feb 2009 04:43:43 PM UTC  
 
Category: BackendSeverity: 3 - Normal
Item Group: BugStatus: Fixed
Privacy: PublicAssigned to: Xavier Glattard <xgl>
Open/Closed: In Test

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...)

Xavier Glattard <xgl>
Project MemberIn charge of this item.
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>
Project 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 ?

Xavier Glattard <xgl>
Project MemberIn charge of this item.
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>
Project 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.

Xavier Glattard <xgl>
Project MemberIn charge of this item.

 

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

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

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 3 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Fri 06 Mar 2009 03:03:48 PM UTCxglStatusNone=>Fixed
      Assigned toNone=>xgl
      Open/ClosedOpen=>In Test

    Back to the top


    Powered by Savane 3.1-cleanup1