- Win: Improve redraw and scrolling performance (issue #360).

- Win: Fix CefBrowser::GetImage() and add "Get Image" example to cefclient (issue #377).
- Pass the list of dirty rectangles to CefRenderHandler::Paint(). (issue #415).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@368 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt
2011-11-09 20:09:24 +00:00
parent 85ebe06965
commit 587eb7871d
17 changed files with 313 additions and 139 deletions

View File

@@ -66,13 +66,25 @@ void CefRenderHandlerCToCpp::OnPopupSize(CefRefPtr<CefBrowser> browser,
}
void CefRenderHandlerCToCpp::OnPaint(CefRefPtr<CefBrowser> browser,
PaintElementType type, const CefRect& dirtyRect, const void* buffer)
PaintElementType type, const RectList& dirtyRects, const void* buffer)
{
if (CEF_MEMBER_MISSING(struct_, on_paint))
return;
return struct_->on_paint(struct_, CefBrowserCppToC::Wrap(browser), type,
&dirtyRect, buffer);
const size_t rectCt = dirtyRects.size();
DCHECK(rectCt > 0);
if (rectCt == 0)
return;
cef_rect_t* rects = new cef_rect_t[rectCt];
RectList::const_iterator it = dirtyRects.begin();
for (size_t i = 0; it != dirtyRects.end(); ++it, ++i)
rects[i] = *it;
struct_->on_paint(struct_, CefBrowserCppToC::Wrap(browser), type, rectCt,
rects, buffer);
delete [] rects;
}
void CefRenderHandlerCToCpp::OnCursorChange(CefRefPtr<CefBrowser> browser,