summaryrefslogtreecommitdiffstats
path: root/cc/software_renderer.h
diff options
context:
space:
mode:
authorskaslev@chromium.org <skaslev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-06 01:01:57 +0000
committerskaslev@chromium.org <skaslev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-06 01:01:57 +0000
commitbd3d1ce09646cfc1279ccf9054dc9a01ee64c5ce (patch)
treed46d6de81dfce568fa8617184a6bb8e9eb42c4b4 /cc/software_renderer.h
parent8be1c58da8394b427173443933f66958b6068f69 (diff)
downloadchromium_src-bd3d1ce09646cfc1279ccf9054dc9a01ee64c5ce.zip
chromium_src-bd3d1ce09646cfc1279ccf9054dc9a01ee64c5ce.tar.gz
chromium_src-bd3d1ce09646cfc1279ccf9054dc9a01ee64c5ce.tar.bz2
Changed SoftwareOutputDevice interface.
+ Some of the necessary changes to the renderer for software compositing. BUG=124671, 161008 Review URL: https://chromiumcodereview.appspot.com/12379055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186310 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/software_renderer.h')
-rw-r--r--cc/software_renderer.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/cc/software_renderer.h b/cc/software_renderer.h
index 5b9baa4..8b5067f 100644
--- a/cc/software_renderer.h
+++ b/cc/software_renderer.h
@@ -7,22 +7,25 @@
#include "base/basictypes.h"
#include "cc/cc_export.h"
+#include "cc/compositor_frame.h"
#include "cc/direct_renderer.h"
namespace cc {
+class OutputSurface;
+class SoftwareOutputDevice;
class DebugBorderDrawQuad;
class RendererClient;
class RenderPassDrawQuad;
class ResourceProvider;
-class SoftwareOutputDevice;
class SolidColorDrawQuad;
class TextureDrawQuad;
class TileDrawQuad;
class CC_EXPORT SoftwareRenderer : public DirectRenderer {
public:
- static scoped_ptr<SoftwareRenderer> create(RendererClient*, ResourceProvider*, SoftwareOutputDevice*);
+ static scoped_ptr<SoftwareRenderer> create(RendererClient*, OutputSurface*, ResourceProvider*);
+
virtual ~SoftwareRenderer();
virtual const RendererCapabilities& capabilities() const OVERRIDE;
@@ -39,6 +42,8 @@ public:
virtual void sendManagedMemoryStats(size_t bytesVisible, size_t bytesVisibleAndNearby, size_t bytesAllocated) OVERRIDE { }
+ virtual void receiveCompositorFrameAck(const CompositorFrameAck&) OVERRIDE;
+
protected:
virtual void bindFramebufferToOutputSurface(DrawingFrame&) OVERRIDE;
virtual bool bindFramebufferToTexture(DrawingFrame&, const ScopedResource*, const gfx::Rect& framebufferRect) OVERRIDE;
@@ -53,7 +58,7 @@ protected:
virtual void ensureScissorTestDisabled() OVERRIDE;
private:
- SoftwareRenderer(RendererClient*, ResourceProvider*, SoftwareOutputDevice*);
+ SoftwareRenderer(RendererClient*, OutputSurface*, ResourceProvider*);
void clearCanvas(SkColor color);
void setClipRect(const gfx::Rect& rect);
@@ -71,11 +76,13 @@ private:
bool m_isScissorEnabled;
gfx::Rect m_scissorRect;
+ OutputSurface* m_outputSurface;
SoftwareOutputDevice* m_outputDevice;
- scoped_ptr<SkCanvas> m_skRootCanvas;
+ SkCanvas* m_skRootCanvas;
SkCanvas* m_skCurrentCanvas;
SkPaint m_skCurrentPaint;
scoped_ptr<ResourceProvider::ScopedWriteLockSoftware> m_currentFramebufferLock;
+ CompositorFrame m_compositorFrame;
DISALLOW_COPY_AND_ASSIGN(SoftwareRenderer);
};