Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: third_party/WebKit/Source/platform/graphics/CompositorMutatorClient.cpp

Issue 1895873006: compositor-worker: Initialize CW machinery plumbing to compositor and fire CW rAF callbacks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Only allow setting global scope once. Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 = std::move(mutations); 67 m_mutations = std::move(mutations);
41 } 68 }
42 69
43 } // namespace blink 70 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698