| Index: cc/CCLayerTreeHost.h
|
| diff --git a/cc/CCLayerTreeHost.h b/cc/CCLayerTreeHost.h
|
| index 277b1f06352ce6734a05d26a20d5bfa16c3eb8ac..e82fc46a0d470d517531bfd889410aaedb83b41b 100644
|
| --- a/cc/CCLayerTreeHost.h
|
| +++ b/cc/CCLayerTreeHost.h
|
| @@ -1,297 +1,6 @@
|
| -// Copyright 2011 The Chromium Authors. All rights reserved.
|
| +// Copyright 2012 The Chromium Authors. All rights reserved.
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#ifndef CCLayerTreeHost_h
|
| -#define CCLayerTreeHost_h
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/hash_tables.h"
|
| -#include "base/memory/ref_counted.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "CCAnimationEvents.h"
|
| -#include "CCGraphicsContext.h"
|
| -#include "CCLayerTreeHostClient.h"
|
| -#include "CCLayerTreeHostCommon.h"
|
| -#include "CCOcclusionTracker.h"
|
| -#include "CCPrioritizedTextureManager.h"
|
| -#include "CCProxy.h"
|
| -#include "CCRenderingStats.h"
|
| -#include "IntRect.h"
|
| -#include "RateLimiter.h"
|
| -#include "scoped_ptr_vector.h"
|
| -#include "SkColor.h"
|
| -#include <limits>
|
| -
|
| -#if defined(COMPILER_GCC)
|
| -namespace BASE_HASH_NAMESPACE {
|
| -template<>
|
| -struct hash<WebKit::WebGraphicsContext3D*> {
|
| - size_t operator()(WebKit::WebGraphicsContext3D* ptr) const {
|
| - return hash<size_t>()(reinterpret_cast<size_t>(ptr));
|
| - }
|
| -};
|
| -} // namespace BASE_HASH_NAMESPACE
|
| -#endif // COMPILER
|
| -
|
| -namespace cc {
|
| -
|
| -class CCFontAtlas;
|
| -class CCLayerChromium;
|
| -class CCLayerTreeHostImpl;
|
| -class CCLayerTreeHostImplClient;
|
| -class CCPrioritizedTextureManager;
|
| -class CCTextureUpdateQueue;
|
| -class HeadsUpDisplayLayerChromium;
|
| -class Region;
|
| -struct CCScrollAndScaleSet;
|
| -
|
| -struct CCLayerTreeSettings {
|
| - CCLayerTreeSettings();
|
| - ~CCLayerTreeSettings();
|
| -
|
| - bool acceleratePainting;
|
| - bool showFPSCounter;
|
| - bool showPlatformLayerTree;
|
| - bool showPaintRects;
|
| - bool showPropertyChangedRects;
|
| - bool showSurfaceDamageRects;
|
| - bool showScreenSpaceRects;
|
| - bool showReplicaScreenSpaceRects;
|
| - bool showOccludingRects;
|
| - bool renderVSyncEnabled;
|
| - double refreshRate;
|
| - size_t maxPartialTextureUpdates;
|
| - IntSize defaultTileSize;
|
| - IntSize maxUntiledLayerSize;
|
| - IntSize minimumOcclusionTrackingSize;
|
| -
|
| - bool showDebugInfo() const { return showPlatformLayerTree || showFPSCounter || showDebugRects(); }
|
| - bool showDebugRects() const { return showPaintRects || showPropertyChangedRects || showSurfaceDamageRects || showScreenSpaceRects || showReplicaScreenSpaceRects || showOccludingRects; }
|
| -};
|
| -
|
| -// Provides information on an Impl's rendering capabilities back to the CCLayerTreeHost
|
| -struct RendererCapabilities {
|
| - RendererCapabilities();
|
| - ~RendererCapabilities();
|
| -
|
| - GC3Denum bestTextureFormat;
|
| - bool contextHasCachedFrontBuffer;
|
| - bool usingPartialSwap;
|
| - bool usingAcceleratedPainting;
|
| - bool usingSetVisibility;
|
| - bool usingSwapCompleteCallback;
|
| - bool usingGpuMemoryManager;
|
| - bool usingDiscardFramebuffer;
|
| - bool usingEglImage;
|
| - int maxTextureSize;
|
| -};
|
| -
|
| -class CCLayerTreeHost : public RateLimiterClient {
|
| -public:
|
| - static scoped_ptr<CCLayerTreeHost> create(CCLayerTreeHostClient*, const CCLayerTreeSettings&);
|
| - virtual ~CCLayerTreeHost();
|
| -
|
| - void setSurfaceReady();
|
| -
|
| - // Returns true if any CCLayerTreeHost is alive.
|
| - static bool anyLayerTreeHostInstanceExists();
|
| -
|
| - static bool needsFilterContext() { return s_needsFilterContext; }
|
| - static void setNeedsFilterContext(bool needsFilterContext) { s_needsFilterContext = needsFilterContext; }
|
| - bool needsSharedContext() const { return needsFilterContext() || settings().acceleratePainting; }
|
| -
|
| - // CCLayerTreeHost interface to CCProxy.
|
| - void willBeginFrame() { m_client->willBeginFrame(); }
|
| - void didBeginFrame() { m_client->didBeginFrame(); }
|
| - void updateAnimations(double monotonicFrameBeginTime);
|
| - void layout();
|
| - void beginCommitOnImplThread(CCLayerTreeHostImpl*);
|
| - void finishCommitOnImplThread(CCLayerTreeHostImpl*);
|
| - void willCommit();
|
| - void commitComplete();
|
| - scoped_ptr<CCGraphicsContext> createContext();
|
| - scoped_ptr<CCInputHandler> createInputHandler();
|
| - virtual scoped_ptr<CCLayerTreeHostImpl> createLayerTreeHostImpl(CCLayerTreeHostImplClient*);
|
| - void didLoseContext();
|
| - enum RecreateResult {
|
| - RecreateSucceeded,
|
| - RecreateFailedButTryAgain,
|
| - RecreateFailedAndGaveUp,
|
| - };
|
| - RecreateResult recreateContext();
|
| - void didCommitAndDrawFrame() { m_client->didCommitAndDrawFrame(); }
|
| - void didCompleteSwapBuffers() { m_client->didCompleteSwapBuffers(); }
|
| - void deleteContentsTexturesOnImplThread(CCResourceProvider*);
|
| - virtual void acquireLayerTextures();
|
| - // Returns false if we should abort this frame due to initialization failure.
|
| - bool initializeRendererIfNeeded();
|
| - void updateLayers(CCTextureUpdateQueue&, size_t contentsMemoryLimitBytes);
|
| -
|
| - CCLayerTreeHostClient* client() { return m_client; }
|
| -
|
| - // Only used when compositing on the main thread.
|
| - void composite();
|
| - void scheduleComposite();
|
| -
|
| - // Composites and attempts to read back the result into the provided
|
| - // buffer. If it wasn't possible, e.g. due to context lost, will return
|
| - // false.
|
| - bool compositeAndReadback(void *pixels, const IntRect&);
|
| -
|
| - void finishAllRendering();
|
| -
|
| - int commitNumber() const { return m_commitNumber; }
|
| -
|
| - void renderingStats(CCRenderingStats*) const;
|
| -
|
| - const RendererCapabilities& rendererCapabilities() const;
|
| -
|
| - // Test only hook
|
| - void loseContext(int numTimes);
|
| -
|
| - void setNeedsAnimate();
|
| - // virtual for testing
|
| - virtual void setNeedsCommit();
|
| - void setNeedsRedraw();
|
| - bool commitRequested() const;
|
| -
|
| - void setAnimationEvents(scoped_ptr<CCAnimationEventsVector>, double wallClockTime);
|
| - virtual void didAddAnimation();
|
| -
|
| - LayerChromium* rootLayer() { return m_rootLayer.get(); }
|
| - const LayerChromium* rootLayer() const { return m_rootLayer.get(); }
|
| - void setRootLayer(scoped_refptr<LayerChromium>);
|
| -
|
| - const CCLayerTreeSettings& settings() const { return m_settings; }
|
| -
|
| - void setViewportSize(const IntSize& layoutViewportSize, const IntSize& deviceViewportSize);
|
| -
|
| - const IntSize& layoutViewportSize() const { return m_layoutViewportSize; }
|
| - const IntSize& deviceViewportSize() const { return m_deviceViewportSize; }
|
| -
|
| - void setPageScaleFactorAndLimits(float pageScaleFactor, float minPageScaleFactor, float maxPageScaleFactor);
|
| -
|
| - void setBackgroundColor(SkColor color) { m_backgroundColor = color; }
|
| -
|
| - void setHasTransparentBackground(bool transparent) { m_hasTransparentBackground = transparent; }
|
| -
|
| - CCPrioritizedTextureManager* contentsTextureManager() const;
|
| -
|
| - // Delete contents textures' backing resources until they use only bytesLimit bytes. This may
|
| - // be called on the impl thread while the main thread is running.
|
| - void reduceContentsTexturesMemoryOnImplThread(size_t bytesLimit, CCResourceProvider*);
|
| - // Returns true if there any evicted backing textures that have not been deleted.
|
| - bool evictedContentsTexturesBackingsExist() const;
|
| - // Retrieve the list of all contents textures' backings that have been evicted, to pass to the
|
| - // main thread to unlink them from their owning textures.
|
| - void getEvictedContentTexturesBackings(CCPrioritizedTextureManager::BackingVector&);
|
| - // Unlink the list of contents textures' backings from their owning textures on the main thread
|
| - // before updating layers.
|
| - void unlinkEvictedContentTexturesBackings(const CCPrioritizedTextureManager::BackingVector&);
|
| - // Deletes all evicted backings, unlinking them from their owning textures if needed.
|
| - // Returns true if this function had to unlink any backings from their owning texture when
|
| - // destroying them. If this was the case, the impl layer tree may contain invalid resources.
|
| - bool deleteEvictedContentTexturesBackings();
|
| -
|
| - bool visible() const { return m_visible; }
|
| - void setVisible(bool);
|
| -
|
| - void startPageScaleAnimation(const IntSize& targetPosition, bool useAnchor, float scale, double durationSec);
|
| -
|
| - void applyScrollAndScale(const CCScrollAndScaleSet&);
|
| - void setImplTransform(const WebKit::WebTransformationMatrix&);
|
| -
|
| - void startRateLimiter(WebKit::WebGraphicsContext3D*);
|
| - void stopRateLimiter(WebKit::WebGraphicsContext3D*);
|
| -
|
| - // RateLimitClient implementation
|
| - virtual void rateLimit() OVERRIDE;
|
| -
|
| - bool bufferedUpdates();
|
| - bool requestPartialTextureUpdate();
|
| - void deleteTextureAfterCommit(scoped_ptr<CCPrioritizedTexture>);
|
| -
|
| - void setDeviceScaleFactor(float);
|
| - float deviceScaleFactor() const { return m_deviceScaleFactor; }
|
| -
|
| - void setFontAtlas(scoped_ptr<CCFontAtlas>);
|
| -
|
| - HeadsUpDisplayLayerChromium* hudLayer() const { return m_hudLayer.get(); }
|
| -
|
| -protected:
|
| - CCLayerTreeHost(CCLayerTreeHostClient*, const CCLayerTreeSettings&);
|
| - bool initialize();
|
| -
|
| -private:
|
| - typedef std::vector<scoped_refptr<LayerChromium> > LayerList;
|
| -
|
| - void initializeRenderer();
|
| -
|
| - void update(LayerChromium*, CCTextureUpdateQueue&, const CCOcclusionTracker*);
|
| - bool paintLayerContents(const LayerList&, CCTextureUpdateQueue&);
|
| - bool paintMasksForRenderSurface(LayerChromium*, CCTextureUpdateQueue&);
|
| -
|
| - void updateLayers(LayerChromium*, CCTextureUpdateQueue&);
|
| -
|
| - void prioritizeTextures(const LayerList&, CCOverdrawMetrics&);
|
| - void setPrioritiesForSurfaces(size_t surfaceMemoryBytes);
|
| - void setPrioritiesForLayers(const LayerList&);
|
| - size_t calculateMemoryForRenderSurfaces(const LayerList& updateList);
|
| -
|
| - void animateLayers(double monotonicTime);
|
| - bool animateLayersRecursive(LayerChromium* current, double monotonicTime);
|
| - void setAnimationEventsRecursive(const CCAnimationEventsVector&, LayerChromium*, double wallClockTime);
|
| -
|
| - bool m_animating;
|
| - bool m_needsAnimateLayers;
|
| -
|
| - CCLayerTreeHostClient* m_client;
|
| -
|
| - int m_commitNumber;
|
| - CCRenderingStats m_renderingStats;
|
| -
|
| - scoped_ptr<CCProxy> m_proxy;
|
| - bool m_rendererInitialized;
|
| - bool m_contextLost;
|
| - int m_numTimesRecreateShouldFail;
|
| - int m_numFailedRecreateAttempts;
|
| -
|
| - scoped_refptr<LayerChromium> m_rootLayer;
|
| - scoped_refptr<HeadsUpDisplayLayerChromium> m_hudLayer;
|
| - scoped_ptr<CCFontAtlas> m_fontAtlas;
|
| -
|
| - scoped_ptr<CCPrioritizedTextureManager> m_contentsTextureManager;
|
| - scoped_ptr<CCPrioritizedTexture> m_surfaceMemoryPlaceholder;
|
| -
|
| - CCLayerTreeSettings m_settings;
|
| -
|
| - IntSize m_layoutViewportSize;
|
| - IntSize m_deviceViewportSize;
|
| - float m_deviceScaleFactor;
|
| -
|
| - bool m_visible;
|
| -
|
| - typedef base::hash_map<WebKit::WebGraphicsContext3D*, scoped_refptr<RateLimiter> > RateLimiterMap;
|
| - RateLimiterMap m_rateLimiters;
|
| -
|
| - float m_pageScaleFactor;
|
| - float m_minPageScaleFactor, m_maxPageScaleFactor;
|
| - WebKit::WebTransformationMatrix m_implTransform;
|
| - bool m_triggerIdleUpdates;
|
| -
|
| - SkColor m_backgroundColor;
|
| - bool m_hasTransparentBackground;
|
| -
|
| - typedef ScopedPtrVector<CCPrioritizedTexture> TextureList;
|
| - TextureList m_deleteTextureAfterCommitList;
|
| - size_t m_partialTextureUpdateRequests;
|
| -
|
| - static bool s_needsFilterContext;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(CCLayerTreeHost);
|
| -};
|
| -
|
| -} // namespace cc
|
| -
|
| -#endif
|
| +// Temporary forwarding header
|
| +#include "cc/layer_tree_host.h"
|
|
|