lion0406 / angleproject

Automatically exported from code.google.com/p/angleproject
Other
0 stars 0 forks source link

Minimizing libGLES window in Windows 7 results in an invalid default frame buffer #388

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Start up and initialize everything on Windows7 (perhaps also other OSes)
2. Have a scene rendering
3. Minimize the window
4. Assert fires in DefaultFramebuffer::completeness()

What is the expected output? What do you see instead?

I expect the assert to not fire.

What version of the product are you using? On what operating system?

SVN revision 1557, windows 7

Please provide any additional information below.

Surface::checkForOutOfDateSwapChain() gets a clientWidth/Height of 0 because 
the window is minimized. It then updates the surface with these new dimensions 
and badness ensues.

I've put in a temporary workaround to not update if width/height are 0 and that 
resolves the issue for me, but I'm not sure what the correct behaviour should 
be in the more general case.

Original issue reported on code.google.com by julian.k...@kleientertainment.com on 5 Dec 2012 at 8:21

GoogleCodeExporter commented 9 years ago
Thanks for reporting this. It seems to only affect stand-alone applications, 
not WebGL in Chrome, but there's definitely some badness going on. I also 
noticed that when the window is manually resized to a height of 0, the 
application closes (no asserts being hit).

I'll check if your workaround is the right solution, when I have the time.

Original comment by nicolas....@gmail.com on 6 Dec 2012 at 4:28

GoogleCodeExporter commented 9 years ago
Confirmed that this fix works for me as well. Thanks!

Original comment by keit...@gmail.com on 10 Aug 2013 at 12:46

GoogleCodeExporter commented 9 years ago
Might have been partially resolved by https://codereview.appspot.com/19460043, 
but manual resizing to 0 could still cause issues. I'll investigate.

Original comment by c...@chromium.org on 21 May 2014 at 6:37

GoogleCodeExporter commented 9 years ago
This is fixed now, there are checks for zero-sized surfaces on swap.

Original comment by geofflang@chromium.org on 29 Apr 2015 at 6:07