OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "platform/graphics/CompositorMutatorClient.h" | 5 #include "platform/graphics/CompositorMutatorClient.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
9 #include "platform/TraceEvent.h" | 9 #include "platform/TraceEvent.h" |
10 #include "platform/graphics/CompositorMutation.h" | 10 #include "platform/graphics/CompositorMutation.h" |
11 #include "platform/graphics/CompositorMutationsTarget.h" | 11 #include "platform/graphics/CompositorMutationsTarget.h" |
| 12 #include "platform/graphics/CompositorMutator.h" |
12 | 13 |
13 namespace blink { | 14 namespace blink { |
14 | 15 |
15 CompositorMutatorClient::CompositorMutatorClient(CompositorMutationsTarget* muta
tionsTarget) | 16 CompositorMutatorClient::CompositorMutatorClient(CompositorMutator* mutator, Com
positorMutationsTarget* mutationsTarget) |
16 : m_mutationsTarget(mutationsTarget) | 17 : m_client(nullptr) |
| 18 , m_mutationsTarget(mutationsTarget) |
| 19 , m_mutator(mutator) |
17 , m_mutations(nullptr) | 20 , m_mutations(nullptr) |
18 { | 21 { |
19 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), "CompositorMuta
torClient::CompositorMutatorClient"); | 22 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), "CompositorMuta
torClient::CompositorMutatorClient"); |
20 } | 23 } |
21 | 24 |
22 CompositorMutatorClient::~CompositorMutatorClient() | 25 CompositorMutatorClient::~CompositorMutatorClient() |
23 { | 26 { |
24 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), "CompositorMuta
torClient::~CompositorMutatorClient"); | 27 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), "CompositorMuta
torClient::~CompositorMutatorClient"); |
25 } | 28 } |
26 | 29 |
| 30 bool CompositorMutatorClient::Mutate( |
| 31 base::TimeTicks monotonicTime) |
| 32 { |
| 33 TRACE_EVENT0("compositor-worker", "CompositorMutatorClient::Mutate"); |
| 34 double monotonicTimeNow = (monotonicTime - base::TimeTicks()).InSecondsF(); |
| 35 if (!m_mutations) |
| 36 m_mutations = adoptPtr(new CompositorMutations); |
| 37 bool shouldReinvoke = m_mutator->mutate(monotonicTimeNow); |
| 38 return shouldReinvoke; |
| 39 } |
| 40 |
| 41 void CompositorMutatorClient::SetClient(cc::LayerTreeMutatorClient* client) |
| 42 { |
| 43 TRACE_EVENT0("compositor-worker", "CompositorMutatorClient::SetClient"); |
| 44 m_client = client; |
| 45 setNeedsMutate(); |
| 46 } |
| 47 |
27 base::Closure CompositorMutatorClient::TakeMutations() | 48 base::Closure CompositorMutatorClient::TakeMutations() |
28 { | 49 { |
29 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), "CompositorMuta
torClient::TakeMutations"); | 50 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), "CompositorMuta
torClient::TakeMutations"); |
30 if (!m_mutations) | 51 if (!m_mutations) |
31 return base::Closure(); | 52 return base::Closure(); |
32 | 53 |
33 return base::Bind(&CompositorMutationsTarget::applyMutations, | 54 return base::Bind(&CompositorMutationsTarget::applyMutations, |
34 base::Unretained(m_mutationsTarget), | 55 base::Unretained(m_mutationsTarget), |
35 base::Owned(m_mutations.release().leakPtr())); | 56 base::Owned(m_mutations.release().leakPtr())); |
36 } | 57 } |
37 | 58 |
| 59 void CompositorMutatorClient::setNeedsMutate() |
| 60 { |
| 61 TRACE_EVENT0("compositor-worker", "CompositorMutatorClient::setNeedsMutate")
; |
| 62 m_client->SetNeedsMutate(); |
| 63 } |
| 64 |
38 void CompositorMutatorClient::setMutationsForTesting(PassOwnPtr<CompositorMutati
ons> mutations) | 65 void CompositorMutatorClient::setMutationsForTesting(PassOwnPtr<CompositorMutati
ons> mutations) |
39 { | 66 { |
40 m_mutations = mutations; | 67 m_mutations = mutations; |
41 } | 68 } |
42 | 69 |
43 } // namespace blink | 70 } // namespace blink |
OLD | NEW |