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

Side by Side Diff: cc/CCProxy.h

Issue 11122003: [cc] Rename all cc/ filenames to Chromium style (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « cc/CCPriorityCalculator.cpp ('k') | cc/CCProxy.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 CCProxy_h 5 // Temporary forwarding header
6 #define CCProxy_h 6 #include "cc/proxy.h"
7
8 #include "base/basictypes.h"
9 #include <public/WebCompositorOutputSurface.h>
10 #include <wtf/PassOwnPtr.h>
11 #include <wtf/PassRefPtr.h>
12
13 namespace cc {
14
15 class CCThread;
16 class IntRect;
17 class IntSize;
18 struct CCRenderingStats;
19 struct RendererCapabilities;
20
21 // Abstract class responsible for proxying commands from the main-thread side of
22 // the compositor over to the compositor implementation.
23 class CCProxy {
24 public:
25 static void setMainThread(CCThread*);
26 static CCThread* mainThread();
27
28 static bool hasImplThread();
29 static void setImplThread(CCThread*);
30 static CCThread* implThread();
31
32 // Returns 0 if the current thread is neither the main thread nor the impl t hread.
33 static CCThread* currentThread();
34
35 virtual ~CCProxy();
36
37 virtual bool compositeAndReadback(void *pixels, const IntRect&) = 0;
38
39 virtual void startPageScaleAnimation(const IntSize& targetPosition, bool use Anchor, float scale, double durationSec) = 0;
40
41 virtual void finishAllRendering() = 0;
42
43 virtual bool isStarted() const = 0;
44
45 // Attempts to initialize a context to use for rendering. Returns false if t he context could not be created.
46 // The context will not be used and no frames may be produced until initiali zeRenderer() is called.
47 virtual bool initializeContext() = 0;
48
49 // Indicates that the compositing surface associated with our context is rea dy to use.
50 virtual void setSurfaceReady() = 0;
51
52 virtual void setVisible(bool) = 0;
53
54 // Attempts to initialize the layer renderer. Returns false if the context i sn't usable for compositing.
55 virtual bool initializeRenderer() = 0;
56
57 // Attempts to recreate the context and layer renderer after a context lost. Returns false if the renderer couldn't be
58 // reinitialized.
59 virtual bool recreateContext() = 0;
60
61 virtual void renderingStats(CCRenderingStats*) = 0;
62
63 virtual const RendererCapabilities& rendererCapabilities() const = 0;
64
65 virtual void setNeedsAnimate() = 0;
66 virtual void setNeedsCommit() = 0;
67 virtual void setNeedsRedraw() = 0;
68
69 virtual void didAddAnimation() = 0;
70
71 virtual bool commitRequested() const = 0;
72
73 virtual void start() = 0; // Must be called before using the proxy.
74 virtual void stop() = 0; // Must be called before deleting the proxy.
75
76 // Forces 3D commands on all contexts to wait for all previous SwapBuffers t o finish before executing in the GPU
77 // process.
78 virtual void forceSerializeOnSwapBuffers() = 0;
79
80 // Maximum number of sub-region texture updates supported for each commit.
81 virtual size_t maxPartialTextureUpdates() const = 0;
82
83 virtual void acquireLayerTextures() = 0;
84
85 // Debug hooks
86 #ifndef NDEBUG
87 static bool isMainThread();
88 static bool isImplThread();
89 static bool isMainThreadBlocked();
90 static void setMainThreadBlocked(bool);
91 #endif
92
93 // Testing hooks
94 virtual void loseContext() = 0;
95
96 #ifndef NDEBUG
97 static void setCurrentThreadIsImplThread(bool);
98 #endif
99
100 protected:
101 CCProxy();
102 friend class DebugScopedSetImplThread;
103 friend class DebugScopedSetMainThreadBlocked;
104
105 private:
106 DISALLOW_COPY_AND_ASSIGN(CCProxy);
107 };
108
109 class DebugScopedSetMainThreadBlocked {
110 public:
111 DebugScopedSetMainThreadBlocked()
112 {
113 #if !ASSERT_DISABLED
114 ASSERT(!CCProxy::isMainThreadBlocked());
115 CCProxy::setMainThreadBlocked(true);
116 #endif
117 }
118 ~DebugScopedSetMainThreadBlocked()
119 {
120 #if !ASSERT_DISABLED
121 ASSERT(CCProxy::isMainThreadBlocked());
122 CCProxy::setMainThreadBlocked(false);
123 #endif
124 }
125 };
126
127 }
128
129 #endif
OLDNEW
« no previous file with comments | « cc/CCPriorityCalculator.cpp ('k') | cc/CCProxy.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698