Index: third_party/WebKit/Source/platform/graphics/CompositorMutatorClient.cpp |
diff --git a/third_party/WebKit/Source/platform/graphics/CompositorMutatorClient.cpp b/third_party/WebKit/Source/platform/graphics/CompositorMutatorClient.cpp |
index d072e0bf3f1d4c235a4a967d3c67c7118cc84b2e..84ad1b0c3adafd0a269af67b8322fde43aa7bbde 100644 |
--- a/third_party/WebKit/Source/platform/graphics/CompositorMutatorClient.cpp |
+++ b/third_party/WebKit/Source/platform/graphics/CompositorMutatorClient.cpp |
@@ -9,11 +9,14 @@ |
#include "platform/TraceEvent.h" |
#include "platform/graphics/CompositorMutation.h" |
#include "platform/graphics/CompositorMutationsTarget.h" |
+#include "platform/graphics/CompositorMutator.h" |
namespace blink { |
-CompositorMutatorClient::CompositorMutatorClient(CompositorMutationsTarget* mutationsTarget) |
- : m_mutationsTarget(mutationsTarget) |
+CompositorMutatorClient::CompositorMutatorClient(CompositorMutator* mutator, CompositorMutationsTarget* mutationsTarget) |
+ : m_client(nullptr) |
+ , m_mutationsTarget(mutationsTarget) |
+ , m_mutator(mutator) |
, m_mutations(nullptr) |
{ |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), "CompositorMutatorClient::CompositorMutatorClient"); |
@@ -24,6 +27,24 @@ CompositorMutatorClient::~CompositorMutatorClient() |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), "CompositorMutatorClient::~CompositorMutatorClient"); |
} |
+bool CompositorMutatorClient::Mutate( |
+ base::TimeTicks monotonicTime) |
+{ |
+ TRACE_EVENT0("compositor-worker", "CompositorMutatorClient::Mutate"); |
+ double monotonicTimeNow = (monotonicTime - base::TimeTicks()).InSecondsF(); |
+ if (!m_mutations) |
+ m_mutations = adoptPtr(new CompositorMutations); |
+ bool shouldReinvoke = m_mutator->mutate(monotonicTimeNow); |
+ return shouldReinvoke; |
+} |
+ |
+void CompositorMutatorClient::SetClient(cc::LayerTreeMutatorClient* client) |
+{ |
+ TRACE_EVENT0("compositor-worker", "CompositorMutatorClient::SetClient"); |
+ m_client = client; |
+ setNeedsMutate(); |
+} |
+ |
base::Closure CompositorMutatorClient::TakeMutations() |
{ |
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), "CompositorMutatorClient::TakeMutations"); |
@@ -35,6 +56,12 @@ base::Closure CompositorMutatorClient::TakeMutations() |
base::Owned(m_mutations.leakPtr())); |
} |
+void CompositorMutatorClient::setNeedsMutate() |
+{ |
+ TRACE_EVENT0("compositor-worker", "CompositorMutatorClient::setNeedsMutate"); |
+ m_client->SetNeedsMutate(); |
+} |
+ |
void CompositorMutatorClient::setMutationsForTesting(PassOwnPtr<CompositorMutations> mutations) |
{ |
m_mutations = std::move(mutations); |