[Qt][WK2] Allow partial updates
authornoam.rosenthal@nokia.com <noam.rosenthal@nokia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 17 Feb 2012 11:09:07 +0000 (11:09 +0000)
committernoam.rosenthal@nokia.com <noam.rosenthal@nokia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 17 Feb 2012 11:09:07 +0000 (11:09 +0000)
commitf297a23b29ed4bce11290a5c56ce9e9b6281ab16
tree0d13d2000d68ad3cb7b67f6888cd80aa0437eb98
parent4322182158ebb5a4ae53d1b9f4519ff4e67000ce
[Qt][WK2] Allow partial updates
https://bugs.webkit.org/show_bug.cgi?id=78824

Source/WebCore:

BitmapTextureGL should not zero-fill the textures when resetting.
This was needed in the previous buffer management system, where texture were not completely
filled by the backing store.

Reviewed by Simon Hausmann.

No new behavior.

* platform/graphics/opengl/TextureMapperGL.cpp:
(BitmapTextureGL):
(WebCore::texSubImage2DResourceSafe):
(WebCore):
(WebCore::BitmapTextureGL::reset):

Source/WebKit2:

Instead of using UpdateInfo to fill the entire tile's texture, we use it as a patch that
contains only the dirty rectangle of the current paint. This requires a lot less memory
for small updates, for example when typing a text in an input field.
This shows a significant reduction in overhead when testing on Mac with Instruments.

Reviewed by Simon Hausmann.

* UIProcess/qt/LayerBackingStore.cpp:
(WebKit::LayerBackingStoreTile::swapBuffers):
(WebKit::LayerBackingStoreTile::setBackBuffer):
(WebKit):
(WebKit::LayerBackingStore::updateTile):
* UIProcess/qt/LayerBackingStore.h:
(LayerBackingStoreTile):
* UIProcess/qt/LayerTreeHostProxyQt.cpp:
(WebKit::LayerTreeHostProxy::updateTileForLayer):
* WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp:
(WebKit::TiledBackingStoreRemoteTile::updateBackBuffer):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@108055 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/opengl/TextureMapperGL.cpp
Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/qt/LayerBackingStore.cpp
Source/WebKit2/UIProcess/qt/LayerBackingStore.h
Source/WebKit2/UIProcess/qt/LayerTreeHostProxyQt.cpp
Source/WebKit2/WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp