Changeset 142837 in webkit
- Timestamp:
- Feb 13, 2013 5:56:52 PM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r142834 r142837 1 2013-02-13 Huang Dongsung <luxtella@company100.net> 2 3 Coordinated Graphics: a long page is scaled vertically while loading. 4 https://bugs.webkit.org/show_bug.cgi?id=109645 5 6 Reviewed by Noam Rosenthal. 7 8 When loading http://www.w3.org/TR/xpath-datamodel/, Coordinated Graphics draws 9 vertically scaled contents. It is because there is the difference between the 10 size of a layer and the size of CoordinatedBackingStore. 11 12 Currently, CoordinatedGraphicsScene notifies the size to CoordinatedBackingStore 13 at the moment of creating, updating and removing a tile. However, it is not 14 necessary to send tile-related messages when the size of layer is changed. 15 So this patch resets the size of CoordinatedBackingStore when receiving the 16 message that is created when the size is changed: SyncLayerState. 17 18 There is no current way to reliably test flicker issues. 19 20 * platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp: 21 Add m_pendingSize to set m_size at the moment of flushing. 22 After http://webkit.org/b/108294, m_pendingSize will be removed 23 because the bug makes CoordinatedGraphicsScene execute all messages at 24 the moment of flushing. 25 (WebCore::CoordinatedBackingStore::setSize): 26 (WebCore::CoordinatedBackingStore::commitTileOperations): 27 * platform/graphics/texmap/coordinated/CoordinatedBackingStore.h: 28 (CoordinatedBackingStore): 29 * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp: 30 (WebCore::CoordinatedGraphicsScene::prepareContentBackingStore): 31 (WebCore::CoordinatedGraphicsScene::createBackingStoreIfNeeded): 32 (WebCore::CoordinatedGraphicsScene::resetBackingStoreSizeToLayerSize): 33 (WebCore::CoordinatedGraphicsScene::createTile): 34 (WebCore::CoordinatedGraphicsScene::removeTile): 35 (WebCore::CoordinatedGraphicsScene::updateTile): 36 1 37 2013-02-13 Kentaro Hara <haraken@chromium.org> 2 38 -
trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp
r142595 r142837 104 104 void CoordinatedBackingStore::setSize(const FloatSize& size) 105 105 { 106 m_ size = size;106 m_pendingSize = size; 107 107 } 108 108 … … 175 175 void CoordinatedBackingStore::commitTileOperations(TextureMapper* textureMapper) 176 176 { 177 if (!m_pendingSize.isZero()) { 178 m_size = m_pendingSize; 179 m_pendingSize = FloatSize(); 180 } 181 177 182 HashSet<uint32_t>::iterator tilesToRemoveEnd = m_tilesToRemove.end(); 178 183 for (HashSet<uint32_t>::iterator it = m_tilesToRemove.begin(); it != tilesToRemoveEnd; ++it) -
trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStore.h
r142366 r142837 78 78 CoordinatedBackingStoreTileMap m_tiles; 79 79 HashSet<uint32_t> m_tilesToRemove; 80 // FIXME: m_pendingSize should be removed after the following bug is fixed: https://bugs.webkit.org/show_bug.cgi?id=108294 81 FloatSize m_pendingSize; 80 82 FloatSize m_size; 81 83 float m_scale; -
trunk/Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp
r142595 r142837 394 394 395 395 createBackingStoreIfNeeded(graphicsLayer); 396 resetBackingStoreSizeToLayerSize(graphicsLayer); 396 397 } 397 398 … … 402 403 403 404 RefPtr<CoordinatedBackingStore> backingStore(CoordinatedBackingStore::create()); 404 backingStore->setSize(graphicsLayer->size());405 405 m_backingStores.add(graphicsLayer, backingStore); 406 406 toGraphicsLayerTextureMapper(graphicsLayer)->setBackingStore(backingStore); … … 421 421 ASSERT(backingStore); 422 422 backingStore->setSize(graphicsLayer->size()); 423 m_backingStoresWithPendingBuffers.add(backingStore); 423 424 } 424 425 … … 429 430 ASSERT(backingStore); 430 431 backingStore->createTile(tileID, scale); 431 resetBackingStoreSizeToLayerSize(layer);432 432 } 433 433 … … 440 440 441 441 backingStore->removeTile(tileID); 442 resetBackingStoreSizeToLayerSize(layer);443 442 m_backingStoresWithPendingBuffers.add(backingStore); 444 443 } … … 454 453 455 454 backingStore->updateTile(tileID, update.sourceRect, update.tileRect, it->value, update.offset); 456 resetBackingStoreSizeToLayerSize(layer);457 455 m_backingStoresWithPendingBuffers.add(backingStore); 458 456 }
Note: See TracChangeset
for help on using the changeset viewer.