We are developing an application that is using CEF to render the contents of a web page remotely. As such, we are interested in ensuring that changes to the browser display are as efficient as possible in terms of the size of the region(s) of the display updated during any particular frame.
Is there a mechanism available for CEF to give us true dirty rectangles for individual display changes?
The callbacks provided by CEF account for the possibility of multiple dirty rectangles, but in practice actually only ever provide a single dirty rectangle covering all changes since last frame. For example, if there animations at the top and bottom of a page, we will get a dirty rectangle covering the entire page, even though the majority of that rectangle has not changed and two rectangles would be more efficient.
Is there a mechanism available within CEF for optimized rendering of scrolling?
There does appear to be a scroll callback that may be usable, but that scroll callback receives non-integer scrolling deltas. If there were a way to force CEF to clamp its scrolling to integer, whole-pixel values, we would be able to represent those scrolling events more efficiently without redrawing portions of the scrolled region that have not truly changed.