Closed
Bug 958025
Opened 10 years ago
Closed 10 years ago
No window controls and decorations / nsChildView::DrawWindowOverlay doesn't draw anything / square window corners / missing window buttons and fullscreen button
Categories
(Core :: Widget: Cocoa, defect)
Tracking
()
RESOLVED
FIXED
mozilla29
People
(Reporter: mstange, Assigned: mstange)
References
Details
(Keywords: regression)
Attachments
(3 files)
174.83 KB,
image/png
|
Details | |
837 bytes,
patch
|
bjacob
:
review+
|
Details | Diff | Splinter Review |
1.79 KB,
patch
|
bjacob
:
review+
|
Details | Diff | Splinter Review |
Starting with today's OS X Nightly (20140109), windows look very strange: They're missing their window buttons and have square corners. This seems to be a regression from bug 956401. Changing the ScopedScissorRect line in nsChildView::DrawWindowOverlay to this fixes it: ScopedScissorRect scopedScissorRectState(gl, aRect.x, aRect.y, aRect.width, aRect.height); But we should find out why a wrong scissor rect is set when this function is called and fix that instead.
Assignee | ||
Comment 1•10 years ago
|
||
Assignee | ||
Comment 2•10 years ago
|
||
When nsChildView::DrawWindowOverlay is called, there's no ScopedScissorRect on the stack, so the active scissor rect is the one that was read from the context during the GLContext initialization, and that's 0,0,0,0.
Assignee | ||
Comment 3•10 years ago
|
||
This seems like the simplest solution. We don't need a scissor rect here. The only reason I can see for wanting a scissor rect here in the future is if we want to recomposite only parts of the window for performance reasons, but then we'll have to revisit our scissor rect setup anyway.
Attachment #8357738 -
Flags: review?(bjacob)
Assignee | ||
Updated•10 years ago
|
Summary: No window decorations / nsChildView::DrawWindowOverlay doesn't draw anything / square window corners / missing window buttons and fullscreen button → No window controls and decorations / nsChildView::DrawWindowOverlay doesn't draw anything / square window corners / missing window buttons and fullscreen button
Comment 6•10 years ago
|
||
Comment on attachment 8357738 [details] [diff] [review] disable scissor test in DrawWindowOverlay Review of attachment 8357738 [details] [diff] [review]: ----------------------------------------------------------------- Many thanks for debugging this. From our IRC conversation, it seems that the problems are caused by Apple's OpenGL libraries having glGetIntegerv(SCISSOR_BOX) returning (0,0,0,0) in the initial state. That is not spec-compliant: see for example http://www.khronos.org/registry/gles/specs/2.0/es_full_spec_2.0.25.pdf Section 4.1.2 "Scissor Test" page 93, which says: > In the initial state left = bottom = 0; width and height are determined by the size of the GL window. Let's take your patch to fix the short-term emergency, so we can take our time to implement what I believe would be the best fix, namely: to work around specifically the above-mentioned Apple GL bug, so that we can rely on glGetIntegerv(SCISSOR_BOX) on Mac rather than having to live with this big caveat.
Attachment #8357738 -
Flags: review?(bjacob) → review+
Updated•10 years ago
|
Severity: normal → blocker
Assignee | ||
Comment 8•10 years ago
|
||
Attachment #8357825 -
Flags: review?(bjacob)
Updated•10 years ago
|
Attachment #8357825 -
Flags: review?(bjacob) → review+
Assignee | ||
Comment 9•10 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/a4ce571996e4 https://hg.mozilla.org/integration/mozilla-inbound/rev/c952d0c14bb1
Comment 10•10 years ago
|
||
The rationale for this second patch is as follows: BeginFrame was enabling the SCISSOR_TEST but EndFrame was not disabling it. That was bad. Since the only place in CompositorOGL that is setting and unsetting a scissor rect was DrawQuadInternal, that is also the place that should enable and disable the scissor test.
Comment 11•10 years ago
|
||
Markus landed the first patch on m-c as well so we can run new OSX nightlies. https://hg.mozilla.org/mozilla-central/rev/effa95701c83
Assignee: nobody → mstange
Comment 13•10 years ago
|
||
(In reply to Ryan VanderMeulen [:RyanVM UTC-5] from comment #11) > Markus landed the first patch on m-c as well so we can run new OSX nightlies. > > https://hg.mozilla.org/mozilla-central/rev/effa95701c83 The respin is finished.
Comment 14•10 years ago
|
||
Kudos to the team. Just updated the nightly and the window controls, decorations .... are back.
https://hg.mozilla.org/mozilla-central/rev/a4ce571996e4 https://hg.mozilla.org/mozilla-central/rev/c952d0c14bb1
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla29
You need to log in
before you can comment on or make changes to this bug.
Description
•