The FPS counter displays the framerate in the compositor's HUD layer. This change allows for toggling the FPS counter without using the '--show-fps-counter' command-line flag.
WebKit side: https://bugs.webkit.org/show_bug.cgi?id=99660 BUG=154754 Review URL: https://chromiumcodereview.appspot.com/11189037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166233 0039d316-1c4b-4281-b951-d872f2087c98
This commit is contained in:
@ -19,8 +19,8 @@ scoped_refptr<HeadsUpDisplayLayer> HeadsUpDisplayLayer::create()
|
||||
|
||||
HeadsUpDisplayLayer::HeadsUpDisplayLayer()
|
||||
: Layer()
|
||||
, m_showFPSCounter(false)
|
||||
{
|
||||
|
||||
setBounds(gfx::Size(256, 128));
|
||||
}
|
||||
|
||||
@ -56,6 +56,12 @@ void HeadsUpDisplayLayer::setFontAtlas(scoped_ptr<FontAtlas> fontAtlas)
|
||||
setNeedsCommit();
|
||||
}
|
||||
|
||||
void HeadsUpDisplayLayer::setShowFPSCounter(bool show)
|
||||
{
|
||||
m_showFPSCounter = show;
|
||||
setNeedsCommit();
|
||||
}
|
||||
|
||||
scoped_ptr<LayerImpl> HeadsUpDisplayLayer::createLayerImpl()
|
||||
{
|
||||
return HeadsUpDisplayLayerImpl::create(m_layerId).PassAs<LayerImpl>();
|
||||
@ -65,11 +71,11 @@ void HeadsUpDisplayLayer::pushPropertiesTo(LayerImpl* layerImpl)
|
||||
{
|
||||
Layer::pushPropertiesTo(layerImpl);
|
||||
|
||||
if (!m_fontAtlas.get())
|
||||
return;
|
||||
|
||||
HeadsUpDisplayLayerImpl* hudLayerImpl = static_cast<HeadsUpDisplayLayerImpl*>(layerImpl);
|
||||
hudLayerImpl->setFontAtlas(m_fontAtlas.Pass());
|
||||
hudLayerImpl->setShowFPSCounter(m_showFPSCounter);
|
||||
|
||||
if (m_fontAtlas.get())
|
||||
hudLayerImpl->setFontAtlas(m_fontAtlas.Pass());
|
||||
}
|
||||
|
||||
} // namespace cc
|
||||
|
@ -19,6 +19,7 @@ public:
|
||||
virtual bool drawsContent() const OVERRIDE;
|
||||
|
||||
void setFontAtlas(scoped_ptr<FontAtlas>);
|
||||
void setShowFPSCounter(bool);
|
||||
|
||||
virtual scoped_ptr<LayerImpl> createLayerImpl() OVERRIDE;
|
||||
virtual void pushPropertiesTo(LayerImpl*) OVERRIDE;
|
||||
@ -30,6 +31,7 @@ private:
|
||||
virtual ~HeadsUpDisplayLayer();
|
||||
|
||||
scoped_ptr<FontAtlas> m_fontAtlas;
|
||||
bool m_showFPSCounter;
|
||||
};
|
||||
|
||||
} // namespace cc
|
||||
|
@ -46,6 +46,7 @@ HeadsUpDisplayLayerImpl::HeadsUpDisplayLayerImpl(int id)
|
||||
: LayerImpl(id)
|
||||
, m_averageFPS(0)
|
||||
, m_stdDeviation(0)
|
||||
, m_showFPSCounter(false)
|
||||
{
|
||||
}
|
||||
|
||||
@ -58,6 +59,11 @@ void HeadsUpDisplayLayerImpl::setFontAtlas(scoped_ptr<FontAtlas> fontAtlas)
|
||||
m_fontAtlas = fontAtlas.Pass();
|
||||
}
|
||||
|
||||
void HeadsUpDisplayLayerImpl::setShowFPSCounter(bool show)
|
||||
{
|
||||
m_showFPSCounter = show;
|
||||
}
|
||||
|
||||
void HeadsUpDisplayLayerImpl::willDraw(ResourceProvider* resourceProvider)
|
||||
{
|
||||
LayerImpl::willDraw(resourceProvider);
|
||||
@ -148,7 +154,7 @@ void HeadsUpDisplayLayerImpl::drawHudContents(SkCanvas* canvas)
|
||||
|
||||
int platformLayerTreeTop = 0;
|
||||
|
||||
if (settings.showFPSCounter)
|
||||
if (m_showFPSCounter)
|
||||
platformLayerTreeTop = drawFPSCounter(canvas, layerTreeHostImpl()->fpsCounter());
|
||||
|
||||
if (settings.showPlatformLayerTree && m_fontAtlas.get()) {
|
||||
|
@ -31,6 +31,7 @@ public:
|
||||
virtual ~HeadsUpDisplayLayerImpl();
|
||||
|
||||
void setFontAtlas(scoped_ptr<FontAtlas>);
|
||||
void setShowFPSCounter(bool);
|
||||
|
||||
virtual void willDraw(ResourceProvider*) OVERRIDE;
|
||||
virtual void appendQuads(QuadSink&, AppendQuadsData&) OVERRIDE;
|
||||
@ -60,6 +61,8 @@ private:
|
||||
double m_stdDeviation;
|
||||
|
||||
base::TimeTicks textUpdateTime;
|
||||
|
||||
bool m_showFPSCounter;
|
||||
};
|
||||
|
||||
} // namespace cc
|
||||
|
@ -39,7 +39,6 @@ bool LayerTreeHost::s_needsFilterContext = false;
|
||||
|
||||
LayerTreeSettings::LayerTreeSettings()
|
||||
: acceleratePainting(false)
|
||||
, showFPSCounter(false)
|
||||
, showPlatformLayerTree(false)
|
||||
, showPaintRects(false)
|
||||
, showPropertyChangedRects(false)
|
||||
@ -280,25 +279,33 @@ void LayerTreeHost::finishCommitOnImplThread(LayerTreeHostImpl* hostImpl)
|
||||
m_commitNumber++;
|
||||
}
|
||||
|
||||
void LayerTreeHost::createHUDLayerIfNeeded()
|
||||
{
|
||||
if (!m_hudLayer)
|
||||
m_hudLayer = HeadsUpDisplayLayer::create();
|
||||
}
|
||||
|
||||
void LayerTreeHost::setShowFPSCounter(bool show)
|
||||
{
|
||||
createHUDLayerIfNeeded();
|
||||
m_hudLayer->setShowFPSCounter(show);
|
||||
}
|
||||
|
||||
void LayerTreeHost::setFontAtlas(scoped_ptr<FontAtlas> fontAtlas)
|
||||
{
|
||||
m_fontAtlas = fontAtlas.Pass();
|
||||
setNeedsCommit();
|
||||
createHUDLayerIfNeeded();
|
||||
m_hudLayer->setFontAtlas(fontAtlas.Pass());
|
||||
}
|
||||
|
||||
void LayerTreeHost::willCommit()
|
||||
{
|
||||
m_client->willCommit();
|
||||
if (m_rootLayer && m_settings.showDebugInfo()) {
|
||||
if (!m_hudLayer)
|
||||
m_hudLayer = HeadsUpDisplayLayer::create();
|
||||
|
||||
if (m_fontAtlas.get())
|
||||
m_hudLayer->setFontAtlas(m_fontAtlas.Pass());
|
||||
if (m_settings.showDebugInfo())
|
||||
createHUDLayerIfNeeded();
|
||||
|
||||
if (!m_hudLayer->parent())
|
||||
m_rootLayer->addChild(m_hudLayer);
|
||||
}
|
||||
if (m_rootLayer && m_hudLayer && !m_hudLayer->parent())
|
||||
m_rootLayer->addChild(m_hudLayer);
|
||||
}
|
||||
|
||||
void LayerTreeHost::commitComplete()
|
||||
|
@ -55,7 +55,6 @@ struct CC_EXPORT LayerTreeSettings {
|
||||
~LayerTreeSettings();
|
||||
|
||||
bool acceleratePainting;
|
||||
bool showFPSCounter;
|
||||
bool showPlatformLayerTree;
|
||||
bool showPaintRects;
|
||||
bool showPropertyChangedRects;
|
||||
@ -70,7 +69,7 @@ struct CC_EXPORT LayerTreeSettings {
|
||||
gfx::Size maxUntiledLayerSize;
|
||||
gfx::Size minimumOcclusionTrackingSize;
|
||||
|
||||
bool showDebugInfo() const { return showPlatformLayerTree || showFPSCounter || showDebugRects(); }
|
||||
bool showDebugInfo() const { return showPlatformLayerTree || showDebugRects(); }
|
||||
bool showDebugRects() const { return showPaintRects || showPropertyChangedRects || showSurfaceDamageRects || showScreenSpaceRects || showReplicaScreenSpaceRects || showOccludingRects; }
|
||||
};
|
||||
|
||||
@ -208,6 +207,7 @@ public:
|
||||
void setDeviceScaleFactor(float);
|
||||
float deviceScaleFactor() const { return m_deviceScaleFactor; }
|
||||
|
||||
void setShowFPSCounter(bool show);
|
||||
void setFontAtlas(scoped_ptr<FontAtlas>);
|
||||
|
||||
HeadsUpDisplayLayer* hudLayer() const { return m_hudLayer.get(); }
|
||||
@ -237,6 +237,8 @@ private:
|
||||
bool animateLayersRecursive(Layer* current, base::TimeTicks time);
|
||||
void setAnimationEventsRecursive(const AnimationEventsVector&, Layer*, base::Time wallClockTime);
|
||||
|
||||
void createHUDLayerIfNeeded();
|
||||
|
||||
bool m_animating;
|
||||
bool m_needsAnimateLayers;
|
||||
|
||||
@ -255,7 +257,6 @@ private:
|
||||
|
||||
scoped_refptr<Layer> m_rootLayer;
|
||||
scoped_refptr<HeadsUpDisplayLayer> m_hudLayer;
|
||||
scoped_ptr<FontAtlas> m_fontAtlas;
|
||||
|
||||
scoped_ptr<PrioritizedTextureManager> m_contentsTextureManager;
|
||||
scoped_ptr<PrioritizedTexture> m_surfaceMemoryPlaceholder;
|
||||
|
@ -45,7 +45,6 @@ bool WebLayerTreeViewImpl::initialize(const WebLayerTreeView::Settings& webSetti
|
||||
{
|
||||
LayerTreeSettings settings;
|
||||
settings.acceleratePainting = webSettings.acceleratePainting;
|
||||
settings.showFPSCounter = webSettings.showFPSCounter;
|
||||
settings.showPlatformLayerTree = webSettings.showPlatformLayerTree;
|
||||
settings.showPaintRects = webSettings.showPaintRects;
|
||||
settings.renderVSyncEnabled = webSettings.renderVSyncEnabled;
|
||||
@ -55,6 +54,9 @@ bool WebLayerTreeViewImpl::initialize(const WebLayerTreeView::Settings& webSetti
|
||||
m_layerTreeHost = LayerTreeHost::create(this, settings);
|
||||
if (!m_layerTreeHost.get())
|
||||
return false;
|
||||
|
||||
if (webSettings.showFPSCounter)
|
||||
setShowFPSCounter(true);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -192,6 +194,11 @@ void WebLayerTreeViewImpl::renderingStats(WebRenderingStats& stats) const
|
||||
stats.numMainThreadScrolls = ccStats.numMainThreadScrolls;
|
||||
}
|
||||
|
||||
void WebLayerTreeViewImpl::setShowFPSCounter(bool show)
|
||||
{
|
||||
m_layerTreeHost->setShowFPSCounter(show);
|
||||
}
|
||||
|
||||
void WebLayerTreeViewImpl::setFontAtlas(SkBitmap bitmap, WebRect asciiToWebRectTable[128], int fontHeight) {
|
||||
setFontAtlas(asciiToWebRectTable, bitmap, fontHeight);
|
||||
}
|
||||
|
@ -49,6 +49,7 @@ public:
|
||||
virtual void finishAllRendering() OVERRIDE;
|
||||
virtual void setDeferCommits(bool deferCommits) OVERRIDE;
|
||||
virtual void renderingStats(WebRenderingStats&) const OVERRIDE;
|
||||
virtual void setShowFPSCounter(bool show);
|
||||
virtual void setFontAtlas(SkBitmap, WebRect asciiToRectTable[128], int fontHeight);
|
||||
virtual void setFontAtlas(WebRect asciiToRectTable[128], const SkBitmap&, int fontHeight);
|
||||
virtual void loseCompositorContext(int numTimes) OVERRIDE;
|
||||
|
Reference in New Issue
Block a user