From Chris Denham, "For me, on Windows, I also get a slew of these warnings when I move the window off screen.
So, might be a bit fiddly to try and prevent frame update in all situations that SwapBuffers retuns false.
I wondered if we could address this issue by only reporting the error if GetLastError is also non zero. Works for me!
The value returned by GetLastError is zero when SwapBuffers is called for a minimized or off screen window, so we could just add a check for this.
Just say the word, and I'll post my modified GraphicsWindowWin32.cpp to the submissions list. ;-)
Cheers.
Chris.
e.g.
//------------- OSG- 2..8 ----------
void GraphicsWindowWin32::swapBuffersImplementation()
{
if (!_realized) return;
if (!::SwapBuffers(_hdc))
{
reportErrorForScreen("GraphicsWindowWin32::swapBuffersImplementation() - Unable to swap display buffers", _traits->screenNum, ::GetLastError());
}
}
//------------- Modification to remove redundant warnings ----------
void GraphicsWindowWin32::swapBuffersImplementation()
{
if (!_realized) return;
if (!::SwapBuffers(_hdc) && ::GetLastError() != 0)
{
reportErrorForScreen("GraphicsWindowWin32::swapBuffersImplementation() - Unable to swap display buffers", _traits->screenNum, ::GetLastError());
}
}
"
This commit is contained in:
@@ -1787,7 +1787,7 @@ void GraphicsWindowWin32::closeImplementation()
|
||||
void GraphicsWindowWin32::swapBuffersImplementation()
|
||||
{
|
||||
if (!_realized) return;
|
||||
if (!::SwapBuffers(_hdc))
|
||||
if (!::SwapBuffers(_hdc) && ::GetLastError() != 0)
|
||||
{
|
||||
reportErrorForScreen("GraphicsWindowWin32::swapBuffersImplementation() - Unable to swap display buffers", _traits->screenNum, ::GetLastError());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user