| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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 CC_LAYER_TREE_HOST_H_ | 5 #ifndef CC_LAYER_TREE_HOST_H_ |
| 6 #define CC_LAYER_TREE_HOST_H_ | 6 #define CC_LAYER_TREE_HOST_H_ |
| 7 | 7 |
| 8 #include <limits> | 8 #include <limits> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 size_t maxPartialTextureUpdates; | 67 size_t maxPartialTextureUpdates; |
| 68 gfx::Size defaultTileSize; | 68 gfx::Size defaultTileSize; |
| 69 gfx::Size maxUntiledLayerSize; | 69 gfx::Size maxUntiledLayerSize; |
| 70 gfx::Size minimumOcclusionTrackingSize; | 70 gfx::Size minimumOcclusionTrackingSize; |
| 71 | 71 |
| 72 bool showDebugInfo() const { return showPlatformLayerTree || showDebugRects(
); } | 72 bool showDebugInfo() const { return showPlatformLayerTree || showDebugRects(
); } |
| 73 bool showDebugRects() const { return showPaintRects || showPropertyChangedRe
cts || showSurfaceDamageRects || showScreenSpaceRects || showReplicaScreenSpaceR
ects || showOccludingRects; } | 73 bool showDebugRects() const { return showPaintRects || showPropertyChangedRe
cts || showSurfaceDamageRects || showScreenSpaceRects || showReplicaScreenSpaceR
ects || showOccludingRects; } |
| 74 }; | 74 }; |
| 75 | 75 |
| 76 // Provides information on an Impl's rendering capabilities back to the LayerTre
eHost | 76 // Provides information on an Impl's rendering capabilities back to the LayerTre
eHost |
| 77 struct RendererCapabilities { | 77 struct CC_EXPORT RendererCapabilities { |
| 78 RendererCapabilities(); | 78 RendererCapabilities(); |
| 79 ~RendererCapabilities(); | 79 ~RendererCapabilities(); |
| 80 | 80 |
| 81 GLenum bestTextureFormat; | 81 GLenum bestTextureFormat; |
| 82 bool contextHasCachedFrontBuffer; | 82 bool contextHasCachedFrontBuffer; |
| 83 bool usingPartialSwap; | 83 bool usingPartialSwap; |
| 84 bool usingAcceleratedPainting; | 84 bool usingAcceleratedPainting; |
| 85 bool usingSetVisibility; | 85 bool usingSetVisibility; |
| 86 bool usingSwapCompleteCallback; | 86 bool usingSwapCompleteCallback; |
| 87 bool usingGpuMemoryManager; | 87 bool usingGpuMemoryManager; |
| 88 bool usingDiscardFramebuffer; | 88 bool usingDiscardFramebuffer; |
| 89 bool usingEglImage; | 89 bool usingEglImage; |
| 90 int maxTextureSize; | 90 int maxTextureSize; |
| 91 }; | 91 }; |
| 92 | 92 |
| 93 class CC_EXPORT LayerTreeHost : public RateLimiterClient { | 93 class CC_EXPORT LayerTreeHost : public RateLimiterClient { |
| 94 public: | 94 public: |
| 95 static scoped_ptr<LayerTreeHost> create(LayerTreeHostClient*, const LayerTre
eSettings&); | 95 static scoped_ptr<LayerTreeHost> create(LayerTreeHostClient*, const LayerTre
eSettings&, scoped_ptr<Thread> implThread); |
| 96 virtual ~LayerTreeHost(); | 96 virtual ~LayerTreeHost(); |
| 97 | 97 |
| 98 void setSurfaceReady(); | 98 void setSurfaceReady(); |
| 99 | 99 |
| 100 // Returns true if any LayerTreeHost is alive. | 100 // Returns true if any LayerTreeHost is alive. |
| 101 static bool anyLayerTreeHostInstanceExists(); | 101 static bool anyLayerTreeHostInstanceExists(); |
| 102 | 102 |
| 103 static bool needsFilterContext() { return s_needsFilterContext; } | 103 static bool needsFilterContext() { return s_needsFilterContext; } |
| 104 static void setNeedsFilterContext(bool needsFilterContext) { s_needsFilterCo
ntext = needsFilterContext; } | 104 static void setNeedsFilterContext(bool needsFilterContext) { s_needsFilterCo
ntext = needsFilterContext; } |
| 105 bool needsSharedContext() const { return needsFilterContext() || settings().
acceleratePainting; } | 105 bool needsSharedContext() const { return needsFilterContext() || settings().
acceleratePainting; } |
| (...skipping 20 matching lines...) Expand all Loading... |
| 126 void didCommitAndDrawFrame() { m_client->didCommitAndDrawFrame(); } | 126 void didCommitAndDrawFrame() { m_client->didCommitAndDrawFrame(); } |
| 127 void didCompleteSwapBuffers() { m_client->didCompleteSwapBuffers(); } | 127 void didCompleteSwapBuffers() { m_client->didCompleteSwapBuffers(); } |
| 128 void deleteContentsTexturesOnImplThread(ResourceProvider*); | 128 void deleteContentsTexturesOnImplThread(ResourceProvider*); |
| 129 virtual void acquireLayerTextures(); | 129 virtual void acquireLayerTextures(); |
| 130 // Returns false if we should abort this frame due to initialization failure
. | 130 // Returns false if we should abort this frame due to initialization failure
. |
| 131 bool initializeRendererIfNeeded(); | 131 bool initializeRendererIfNeeded(); |
| 132 void updateLayers(ResourceUpdateQueue&, size_t contentsMemoryLimitBytes); | 132 void updateLayers(ResourceUpdateQueue&, size_t contentsMemoryLimitBytes); |
| 133 | 133 |
| 134 LayerTreeHostClient* client() { return m_client; } | 134 LayerTreeHostClient* client() { return m_client; } |
| 135 | 135 |
| 136 void composite(); |
| 137 |
| 136 // Only used when compositing on the main thread. | 138 // Only used when compositing on the main thread. |
| 137 void composite(); | |
| 138 void scheduleComposite(); | 139 void scheduleComposite(); |
| 139 | 140 |
| 140 // Composites and attempts to read back the result into the provided | 141 // Composites and attempts to read back the result into the provided |
| 141 // buffer. If it wasn't possible, e.g. due to context lost, will return | 142 // buffer. If it wasn't possible, e.g. due to context lost, will return |
| 142 // false. | 143 // false. |
| 143 bool compositeAndReadback(void *pixels, const gfx::Rect&); | 144 bool compositeAndReadback(void *pixels, const gfx::Rect&); |
| 144 | 145 |
| 145 void finishAllRendering(); | 146 void finishAllRendering(); |
| 146 | 147 |
| 147 void setDeferCommits(bool deferCommits); | 148 void setDeferCommits(bool deferCommits); |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 bool requestPartialTextureUpdate(); | 206 bool requestPartialTextureUpdate(); |
| 206 | 207 |
| 207 void setDeviceScaleFactor(float); | 208 void setDeviceScaleFactor(float); |
| 208 float deviceScaleFactor() const { return m_deviceScaleFactor; } | 209 float deviceScaleFactor() const { return m_deviceScaleFactor; } |
| 209 | 210 |
| 210 void setShowFPSCounter(bool show); | 211 void setShowFPSCounter(bool show); |
| 211 void setFontAtlas(scoped_ptr<FontAtlas>); | 212 void setFontAtlas(scoped_ptr<FontAtlas>); |
| 212 | 213 |
| 213 HeadsUpDisplayLayer* hudLayer() const { return m_hudLayer.get(); } | 214 HeadsUpDisplayLayer* hudLayer() const { return m_hudLayer.get(); } |
| 214 | 215 |
| 216 Proxy* proxy() const { return m_proxy.get(); } |
| 217 |
| 215 protected: | 218 protected: |
| 216 LayerTreeHost(LayerTreeHostClient*, const LayerTreeSettings&); | 219 LayerTreeHost(LayerTreeHostClient*, const LayerTreeSettings&); |
| 217 bool initialize(); | 220 bool initialize(scoped_ptr<Thread> implThread); |
| 218 | 221 |
| 219 private: | 222 private: |
| 220 typedef std::vector<scoped_refptr<Layer> > LayerList; | 223 typedef std::vector<scoped_refptr<Layer> > LayerList; |
| 221 | 224 |
| 222 void initializeRenderer(); | 225 void initializeRenderer(); |
| 223 | 226 |
| 224 void update(Layer*, ResourceUpdateQueue&, const OcclusionTracker*); | 227 void update(Layer*, ResourceUpdateQueue&, const OcclusionTracker*); |
| 225 bool paintLayerContents(const LayerList&, ResourceUpdateQueue&); | 228 bool paintLayerContents(const LayerList&, ResourceUpdateQueue&); |
| 226 bool paintMasksForRenderSurface(Layer*, ResourceUpdateQueue&); | 229 bool paintMasksForRenderSurface(Layer*, ResourceUpdateQueue&); |
| 227 | 230 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 238 void setAnimationEventsRecursive(const AnimationEventsVector&, Layer*, base:
:Time wallClockTime); | 241 void setAnimationEventsRecursive(const AnimationEventsVector&, Layer*, base:
:Time wallClockTime); |
| 239 | 242 |
| 240 void createHUDLayerIfNeeded(); | 243 void createHUDLayerIfNeeded(); |
| 241 | 244 |
| 242 bool m_animating; | 245 bool m_animating; |
| 243 bool m_needsAnimateLayers; | 246 bool m_needsAnimateLayers; |
| 244 | 247 |
| 245 base::CancelableClosure m_prepaintCallback; | 248 base::CancelableClosure m_prepaintCallback; |
| 246 | 249 |
| 247 LayerTreeHostClient* m_client; | 250 LayerTreeHostClient* m_client; |
| 251 scoped_ptr<Proxy> m_proxy; |
| 248 | 252 |
| 249 int m_commitNumber; | 253 int m_commitNumber; |
| 250 RenderingStats m_renderingStats; | 254 RenderingStats m_renderingStats; |
| 251 | 255 |
| 252 scoped_ptr<Proxy> m_proxy; | |
| 253 bool m_rendererInitialized; | 256 bool m_rendererInitialized; |
| 254 bool m_contextLost; | 257 bool m_contextLost; |
| 255 int m_numTimesRecreateShouldFail; | 258 int m_numTimesRecreateShouldFail; |
| 256 int m_numFailedRecreateAttempts; | 259 int m_numFailedRecreateAttempts; |
| 257 | 260 |
| 258 scoped_refptr<Layer> m_rootLayer; | 261 scoped_refptr<Layer> m_rootLayer; |
| 259 scoped_refptr<HeadsUpDisplayLayer> m_hudLayer; | 262 scoped_refptr<HeadsUpDisplayLayer> m_hudLayer; |
| 260 | 263 |
| 261 scoped_ptr<PrioritizedResourceManager> m_contentsTextureManager; | 264 scoped_ptr<PrioritizedResourceManager> m_contentsTextureManager; |
| 262 scoped_ptr<PrioritizedResource> m_surfaceMemoryPlaceholder; | 265 scoped_ptr<PrioritizedResource> m_surfaceMemoryPlaceholder; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 284 size_t m_partialTextureUpdateRequests; | 287 size_t m_partialTextureUpdateRequests; |
| 285 | 288 |
| 286 static bool s_needsFilterContext; | 289 static bool s_needsFilterContext; |
| 287 | 290 |
| 288 DISALLOW_COPY_AND_ASSIGN(LayerTreeHost); | 291 DISALLOW_COPY_AND_ASSIGN(LayerTreeHost); |
| 289 }; | 292 }; |
| 290 | 293 |
| 291 } // namespace cc | 294 } // namespace cc |
| 292 | 295 |
| 293 #endif // CC_LAYER_TREE_HOST_H_ | 296 #endif // CC_LAYER_TREE_HOST_H_ |
| OLD | NEW |