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

Side by Side Diff: third_party/WebKit/Source/web/CompositorMutatorImpl.h

Issue 2515363002: Introduce AnimationWorkletProxyClient and necessary plumbing to get it in worklet messaging proxy. (Closed)
Patch Set: Remove unnecessary PLATFORM_EXPORT Created 3 years, 10 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 #ifndef CompositorMutatorImpl_h 5 #ifndef CompositorMutatorImpl_h
6 #define CompositorMutatorImpl_h 6 #define CompositorMutatorImpl_h
7 7
8 #include "core/animation/CustomCompositorAnimationManager.h" 8 #include "core/animation/CustomCompositorAnimationManager.h"
9 #include "platform/graphics/CompositorMutator.h" 9 #include "platform/graphics/CompositorMutator.h"
10 #include "platform/heap/Handle.h" 10 #include "platform/heap/Handle.h"
11 #include "platform/heap/HeapAllocator.h" 11 #include "platform/heap/HeapAllocator.h"
12 #include "wtf/Noncopyable.h" 12 #include "wtf/Noncopyable.h"
13 #include <memory> 13 #include <memory>
14 14
15 namespace blink { 15 namespace blink {
16 16
17 class CompositorProxy; 17 class CompositorAnimator;
18 class CompositorProxyClientImpl;
19 class CompositorMutatorClient; 18 class CompositorMutatorClient;
20 19
21 // Fans out requests from the compositor to all of the registered ProxyClients 20 // Fans out requests from the compositor to all of the registered
22 // which can then mutate layers through their CompositorProxy interfaces. 21 // CompositorAnimators which can then mutate layers through their respective
23 // Requests for animation frames are received from ProxyClients and sent to the 22 // mutate interface. Requests for animation frames are received from
24 // compositor to generate a new compositor frame. 23 // CompositorAnimators and sent to the compositor to generate a new compositor
24 // frame.
25 // 25 //
26 // Should be accessed only on the compositor thread. 26 // Should be accessed only on the compositor thread.
27 class CompositorMutatorImpl final : public CompositorMutator { 27 class CompositorMutatorImpl final : public CompositorMutator {
28 WTF_MAKE_NONCOPYABLE(CompositorMutatorImpl); 28 WTF_MAKE_NONCOPYABLE(CompositorMutatorImpl);
29 29
30 public: 30 public:
31 static std::unique_ptr<CompositorMutatorClient> createClient(); 31 static std::unique_ptr<CompositorMutatorClient> createClient();
32 static CompositorMutatorImpl* create(); 32 static CompositorMutatorImpl* create();
33 33
34 // CompositorMutator implementation. 34 // CompositorMutator implementation.
35 bool mutate(double monotonicTimeNow, 35 bool mutate(double monotonicTimeNow,
36 CompositorMutableStateProvider*) override; 36 CompositorMutableStateProvider*) override;
37 37
38 void registerProxyClient(CompositorProxyClientImpl*); 38 void registerCompositorAnimator(CompositorAnimator*);
39 void unregisterProxyClient(CompositorProxyClientImpl*); 39 void unregisterCompositorAnimator(CompositorAnimator*);
40 40
41 void setNeedsMutate(); 41 void setNeedsMutate();
42 42
43 void setClient(CompositorMutatorClient* client) { m_client = client; } 43 void setClient(CompositorMutatorClient* client) { m_client = client; }
44 CustomCompositorAnimationManager* animationManager() { 44 CustomCompositorAnimationManager* animationManager() {
45 return m_animationManager.get(); 45 return m_animationManager.get();
46 } 46 }
47 47
48 private: 48 private:
49 CompositorMutatorImpl(); 49 CompositorMutatorImpl();
50 50
51 using ProxyClients = 51 using CompositorAnimators =
52 HashSet<CrossThreadPersistent<CompositorProxyClientImpl>>; 52 HashSet<CrossThreadPersistent<CompositorAnimator>>;
53 ProxyClients m_proxyClients; 53 CompositorAnimators m_animators;
54 54
55 std::unique_ptr<CustomCompositorAnimationManager> m_animationManager; 55 std::unique_ptr<CustomCompositorAnimationManager> m_animationManager;
56 CompositorMutatorClient* m_client; 56 CompositorMutatorClient* m_client;
57 }; 57 };
58 58
59 } // namespace blink 59 } // namespace blink
60 60
61 #endif // CompositorMutatorImpl_h 61 #endif // CompositorMutatorImpl_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/CompositorAnimator.h ('k') | third_party/WebKit/Source/web/CompositorMutatorImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698