Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Side by Side Diff: cc/software_renderer.h

Issue 12379055: Changed SoftwareOutputDevice interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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_SOFTWARE_RENDERER_H_ 5 #ifndef CC_SOFTWARE_RENDERER_H_
6 #define CC_SOFTWARE_RENDERER_H_ 6 #define CC_SOFTWARE_RENDERER_H_
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "cc/cc_export.h" 9 #include "cc/cc_export.h"
10 #include "cc/compositor_frame.h"
10 #include "cc/direct_renderer.h" 11 #include "cc/direct_renderer.h"
11 12
12 namespace cc { 13 namespace cc {
13 14
15 class OutputSurface;
16 class SoftwareOutputDevice;
14 class DebugBorderDrawQuad; 17 class DebugBorderDrawQuad;
15 class RendererClient; 18 class RendererClient;
16 class RenderPassDrawQuad; 19 class RenderPassDrawQuad;
17 class ResourceProvider; 20 class ResourceProvider;
18 class SoftwareOutputDevice;
19 class SolidColorDrawQuad; 21 class SolidColorDrawQuad;
20 class TextureDrawQuad; 22 class TextureDrawQuad;
21 class TileDrawQuad; 23 class TileDrawQuad;
22 24
23 class CC_EXPORT SoftwareRenderer : public DirectRenderer { 25 class CC_EXPORT SoftwareRenderer : public DirectRenderer {
24 public: 26 public:
25 static scoped_ptr<SoftwareRenderer> create(RendererClient*, ResourceProvider *, SoftwareOutputDevice*); 27 static scoped_ptr<SoftwareRenderer> create(RendererClient*, OutputSurface*, ResourceProvider*);
28
26 virtual ~SoftwareRenderer(); 29 virtual ~SoftwareRenderer();
27 30
28 virtual const RendererCapabilities& capabilities() const OVERRIDE; 31 virtual const RendererCapabilities& capabilities() const OVERRIDE;
29 32
30 virtual void viewportChanged() OVERRIDE; 33 virtual void viewportChanged() OVERRIDE;
31 34
32 virtual void finish() OVERRIDE; 35 virtual void finish() OVERRIDE;
33 36
34 virtual bool swapBuffers() OVERRIDE; 37 virtual bool swapBuffers() OVERRIDE;
35 38
36 virtual void getFramebufferPixels(void *pixels, const gfx::Rect&) OVERRIDE; 39 virtual void getFramebufferPixels(void *pixels, const gfx::Rect&) OVERRIDE;
37 40
38 virtual void setVisible(bool) OVERRIDE; 41 virtual void setVisible(bool) OVERRIDE;
39 42
40 virtual void sendManagedMemoryStats(size_t bytesVisible, size_t bytesVisible AndNearby, size_t bytesAllocated) OVERRIDE { } 43 virtual void sendManagedMemoryStats(size_t bytesVisible, size_t bytesVisible AndNearby, size_t bytesAllocated) OVERRIDE { }
41 44
45 virtual void receiveCompositorFrameAck(const CompositorFrameAck&) OVERRIDE;
46
42 protected: 47 protected:
43 virtual void bindFramebufferToOutputSurface(DrawingFrame&) OVERRIDE; 48 virtual void bindFramebufferToOutputSurface(DrawingFrame&) OVERRIDE;
44 virtual bool bindFramebufferToTexture(DrawingFrame&, const ScopedResource*, const gfx::Rect& framebufferRect) OVERRIDE; 49 virtual bool bindFramebufferToTexture(DrawingFrame&, const ScopedResource*, const gfx::Rect& framebufferRect) OVERRIDE;
45 virtual void setDrawViewportSize(const gfx::Size&) OVERRIDE; 50 virtual void setDrawViewportSize(const gfx::Size&) OVERRIDE;
46 virtual void setScissorTestRect(const gfx::Rect& scissorRect) OVERRIDE; 51 virtual void setScissorTestRect(const gfx::Rect& scissorRect) OVERRIDE;
47 virtual void clearFramebuffer(DrawingFrame&) OVERRIDE; 52 virtual void clearFramebuffer(DrawingFrame&) OVERRIDE;
48 virtual void drawQuad(DrawingFrame&, const DrawQuad*) OVERRIDE; 53 virtual void drawQuad(DrawingFrame&, const DrawQuad*) OVERRIDE;
49 virtual void beginDrawingFrame(DrawingFrame&) OVERRIDE; 54 virtual void beginDrawingFrame(DrawingFrame&) OVERRIDE;
50 virtual void finishDrawingFrame(DrawingFrame&) OVERRIDE; 55 virtual void finishDrawingFrame(DrawingFrame&) OVERRIDE;
51 virtual bool flippedFramebuffer() const OVERRIDE; 56 virtual bool flippedFramebuffer() const OVERRIDE;
52 virtual void ensureScissorTestEnabled() OVERRIDE; 57 virtual void ensureScissorTestEnabled() OVERRIDE;
53 virtual void ensureScissorTestDisabled() OVERRIDE; 58 virtual void ensureScissorTestDisabled() OVERRIDE;
54 59
55 private: 60 private:
56 SoftwareRenderer(RendererClient*, ResourceProvider*, SoftwareOutputDevice*); 61 SoftwareRenderer(RendererClient*, OutputSurface*, ResourceProvider*);
57 62
58 void clearCanvas(SkColor color); 63 void clearCanvas(SkColor color);
59 void setClipRect(const gfx::Rect& rect); 64 void setClipRect(const gfx::Rect& rect);
60 bool isSoftwareResource(ResourceProvider::ResourceId) const; 65 bool isSoftwareResource(ResourceProvider::ResourceId) const;
61 66
62 void drawDebugBorderQuad(const DrawingFrame&, const DebugBorderDrawQuad*); 67 void drawDebugBorderQuad(const DrawingFrame&, const DebugBorderDrawQuad*);
63 void drawSolidColorQuad(const DrawingFrame&, const SolidColorDrawQuad*); 68 void drawSolidColorQuad(const DrawingFrame&, const SolidColorDrawQuad*);
64 void drawTextureQuad(const DrawingFrame&, const TextureDrawQuad*); 69 void drawTextureQuad(const DrawingFrame&, const TextureDrawQuad*);
65 void drawTileQuad(const DrawingFrame&, const TileDrawQuad*); 70 void drawTileQuad(const DrawingFrame&, const TileDrawQuad*);
66 void drawRenderPassQuad(const DrawingFrame& frame, const RenderPassDrawQuad* ); 71 void drawRenderPassQuad(const DrawingFrame& frame, const RenderPassDrawQuad* );
67 void drawUnsupportedQuad(const DrawingFrame&, const DrawQuad*); 72 void drawUnsupportedQuad(const DrawingFrame&, const DrawQuad*);
68 73
69 RendererCapabilities m_capabilities; 74 RendererCapabilities m_capabilities;
70 bool m_visible; 75 bool m_visible;
71 bool m_isScissorEnabled; 76 bool m_isScissorEnabled;
72 gfx::Rect m_scissorRect; 77 gfx::Rect m_scissorRect;
73 78
79 OutputSurface* m_outputSurface;
74 SoftwareOutputDevice* m_outputDevice; 80 SoftwareOutputDevice* m_outputDevice;
75 scoped_ptr<SkCanvas> m_skRootCanvas; 81 SkCanvas* m_skRootCanvas;
76 SkCanvas* m_skCurrentCanvas; 82 SkCanvas* m_skCurrentCanvas;
77 SkPaint m_skCurrentPaint; 83 SkPaint m_skCurrentPaint;
78 scoped_ptr<ResourceProvider::ScopedWriteLockSoftware> m_currentFramebufferLo ck; 84 scoped_ptr<ResourceProvider::ScopedWriteLockSoftware> m_currentFramebufferLo ck;
85 CompositorFrame m_compositorFrame;
79 86
80 DISALLOW_COPY_AND_ASSIGN(SoftwareRenderer); 87 DISALLOW_COPY_AND_ASSIGN(SoftwareRenderer);
81 }; 88 };
82 89
83 } 90 }
84 91
85 #endif // CC_SOFTWARE_RENDERER_H_ 92 #endif // CC_SOFTWARE_RENDERER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698