summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/rendering/TexturesGenerator.h
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2012-05-11 16:03:54 -0700
committerChris Craik <ccraik@google.com>2012-05-14 11:15:04 -0700
commit425ef23631e3468c61a5740dd4e4bae3052cec48 (patch)
tree756f4ce43978ca025638653a06024d1d8661ffce /Source/WebCore/platform/graphics/android/rendering/TexturesGenerator.h
parentd236e597b13a93d21eafa2edeacb5092076937e1 (diff)
downloadexternal_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.h8
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;
};