CCHeadsUpDisplay.h [plain text]
#ifndef CCHeadsUpDisplay_h
#define CCHeadsUpDisplay_h
#if USE(ACCELERATED_COMPOSITING)
#include "Font.h"
#include "ProgramBinding.h"
#include "ShaderChromium.h"
namespace WebCore {
class GeometryBinding;
class GraphicsContext3D;
class LayerRendererChromium;
class LayerTexture;
class CCHeadsUpDisplay {
WTF_MAKE_NONCOPYABLE(CCHeadsUpDisplay);
public:
static PassOwnPtr<CCHeadsUpDisplay> create(LayerRendererChromium* owner)
{
return adoptPtr(new CCHeadsUpDisplay(owner));
}
~CCHeadsUpDisplay();
void onFrameBegin(double timestamp);
void onPresent();
void setShowFPSCounter(bool enable) { m_showFPSCounter = enable; }
bool showFPSCounter() const { return m_showFPSCounter; }
void setShowPlatformLayerTree(bool enable) { m_showPlatformLayerTree = enable; }
bool showPlatformLayerTree() const { return m_showPlatformLayerTree; }
bool enabled() const { return m_showPlatformLayerTree || m_showFPSCounter; }
void draw();
typedef ProgramBinding<VertexShaderPosTex, FragmentShaderBGRATexAlpha> Program;
private:
explicit CCHeadsUpDisplay(LayerRendererChromium* owner);
void drawHudContents(GraphicsContext*, const IntSize& hudSize);
void drawFPSCounter(GraphicsContext*, int top, int height);
void drawPlatformLayerTree(GraphicsContext*, int top);
int m_currentFrameNumber;
double m_filteredFrameTime;
OwnPtr<LayerTexture> m_hudTexture;
LayerRendererChromium* m_layerRenderer;
static const int kBeginFrameHistorySize = 64;
double m_beginTimeHistoryInSec[kBeginFrameHistorySize];
bool m_showFPSCounter;
bool m_showPlatformLayerTree;
OwnPtr<Font> m_smallFont;
OwnPtr<Font> m_mediumFont;
bool m_useMapSubForUploads;
};
}
#endif // USE(ACCELERATED_COMPOSITING)
#endif