diff options
author | Chris Craik <ccraik@google.com> | 2012-05-11 16:03:54 -0700 |
---|---|---|
committer | Chris Craik <ccraik@google.com> | 2012-05-14 11:15:04 -0700 |
commit | 425ef23631e3468c61a5740dd4e4bae3052cec48 (patch) | |
tree | 756f4ce43978ca025638653a06024d1d8661ffce /Source/WebCore/platform/graphics/android/rendering/TexturesGenerator.h | |
parent | d236e597b13a93d21eafa2edeacb5092076937e1 (diff) | |
download | external_webkit-425ef23631e3468c61a5740dd4e4bae3052cec48.zip external_webkit-425ef23631e3468c61a5740dd4e4bae3052cec48.tar.gz external_webkit-425ef23631e3468c61a5740dd4e4bae3052cec48.tar.bz2 |
Fix stale tile problem
bug:6483791
Update tile painter of outstanding operations
Always schedule a paint operation if we can't update an outstanding one
Remove old interruption code, as it's no longer used
Change-Id: Ibcdb142d3d9b4ee7a52c78b5c121056089913211
Diffstat (limited to 'Source/WebCore/platform/graphics/android/rendering/TexturesGenerator.h')
-rw-r--r-- | Source/WebCore/platform/graphics/android/rendering/TexturesGenerator.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/Source/WebCore/platform/graphics/android/rendering/TexturesGenerator.h b/Source/WebCore/platform/graphics/android/rendering/TexturesGenerator.h index 08f69ae..bc4fe1e 100644 --- a/Source/WebCore/platform/graphics/android/rendering/TexturesGenerator.h +++ b/Source/WebCore/platform/graphics/android/rendering/TexturesGenerator.h @@ -30,6 +30,7 @@ #include "QueuedOperation.h" #include "TilePainter.h" +#include <wtf/HashMap.h> #include <wtf/Vector.h> #include <utils/threads.h> @@ -43,13 +44,14 @@ class TilesManager; class TexturesGenerator : public Thread { public: TexturesGenerator(TilesManager* instance) : Thread(false) - , m_waitForCompletion(false) , m_currentOperation(0) , m_tilesManager(instance) { } virtual ~TexturesGenerator() { } virtual status_t readyToRun(); - void removeOperationsForFilter(OperationFilter* filter, bool waitForRunning = true); + bool tryUpdateOperationWithPainter(Tile* tile, TilePainter* painter); + + void removeOperationsForFilter(OperationFilter* filter); void scheduleOperation(QueuedOperation* operation); @@ -57,9 +59,9 @@ private: QueuedOperation* popNext(); virtual bool threadLoop(); WTF::Vector<QueuedOperation*> mRequestedOperations; + WTF::HashMap<void*, QueuedOperation*> mRequestedOperationsHash; android::Mutex mRequestedOperationsLock; android::Condition mRequestedOperationsCond; - bool m_waitForCompletion; QueuedOperation* m_currentOperation; TilesManager* m_tilesManager; }; |