Hi,
I’m just starting to play with OpenVG and ran the tiger example of the reference implementation on Win32. I noticed CPU load remains high even after rendering is complete. The reason is Windows keeps sending WM_PAINT messages because as far as it is concerned the drawing area is still “dirty”. All that is needed is a ValidateRect() call to stop the flood of WM_PAINT messages.
Change:
case WM_PAINT:
{
RECT rect;
InvalidateRect(hWnd, NULL, 0);
GetClientRect(hWnd, &rect);
render(rect.right - rect.left, rect.bottom - rect.top);
return 0;
}
To
case WM_PAINT:
{
if (GetUpdateRect(hWnd, NULL, FALSE))
{
RECT rect;
GetClientRect(hWnd, &rect);
render(rect.right - rect.left, rect.bottom - rect.top);
ValidateRect(hWnd, &rect);
}
return 0;
}
Please let me know if there is a better place to post fixes.
Cheers,
Erik