WM_PAINT more conform to docs
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1546 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
parent
c8177024db
commit
bab8eb3423
@ -648,14 +648,21 @@ LRESULT CALLBACK fgPlatformWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPAR
|
|||||||
|
|
||||||
case WM_PAINT:
|
case WM_PAINT:
|
||||||
{
|
{
|
||||||
PAINTSTRUCT ps;
|
RECT rect;
|
||||||
/* Turn on the visibility in case it was turned off somehow */
|
|
||||||
window->State.Visible = GL_TRUE;
|
|
||||||
|
|
||||||
InvalidateRect( hWnd, NULL, GL_FALSE ); /* Make sure whole window is repainted. Bit of a hack, but a safe one from what google turns up... */
|
if (GetUpdateRect(hWnd,&rect,FALSE))
|
||||||
BeginPaint( hWnd, &ps );
|
{
|
||||||
fghRedrawWindow( window );
|
/* As per docs, upon receiving WM_PAINT, first check if the update region is not empty before you call BeginPaint */
|
||||||
EndPaint( hWnd, &ps );
|
PAINTSTRUCT ps;
|
||||||
|
|
||||||
|
/* Turn on the visibility in case it was turned off somehow */
|
||||||
|
window->State.Visible = GL_TRUE;
|
||||||
|
|
||||||
|
InvalidateRect( hWnd, NULL, GL_FALSE );
|
||||||
|
BeginPaint( hWnd, &ps );
|
||||||
|
fghRedrawWindow( window );
|
||||||
|
EndPaint( hWnd, &ps );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user