OLD | NEW |
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 CCRendererSoftware_h | 5 #ifndef CCRendererSoftware_h |
6 #define CCRendererSoftware_h | 6 #define CCRendererSoftware_h |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "cc/direct_renderer.h" | 9 #include "cc/direct_renderer.h" |
10 #include <public/WebCompositorSoftwareOutputDevice.h> | 10 |
| 11 namespace WebKit { |
| 12 class WebCompositorSoftwareOutputDevice; |
| 13 } |
| 14 |
| 15 namespace media { |
| 16 class SkCanvasVideoRenderer; |
| 17 } |
11 | 18 |
12 namespace cc { | 19 namespace cc { |
13 | 20 |
14 class DebugBorderDrawQuad; | 21 class DebugBorderDrawQuad; |
15 class RendererClient; | 22 class RendererClient; |
16 class ResourceProvider; | 23 class ResourceProvider; |
17 class SolidColorDrawQuad; | 24 class SolidColorDrawQuad; |
18 class TextureDrawQuad; | 25 class TextureDrawQuad; |
19 class TileDrawQuad; | 26 class TileDrawQuad; |
20 class RenderPassDrawQuad; | 27 class RenderPassDrawQuad; |
| 28 class VideoFrameDrawQuad; |
21 | 29 |
22 class SoftwareRenderer : public DirectRenderer { | 30 class SoftwareRenderer : public DirectRenderer { |
23 public: | 31 public: |
24 static scoped_ptr<SoftwareRenderer> create(RendererClient*, ResourceProvider
*, WebKit::WebCompositorSoftwareOutputDevice*); | 32 static scoped_ptr<SoftwareRenderer> create(RendererClient*, ResourceProvider
*, WebKit::WebCompositorSoftwareOutputDevice*); |
25 virtual ~SoftwareRenderer(); | 33 virtual ~SoftwareRenderer(); |
26 | 34 |
27 virtual const RendererCapabilities& capabilities() const OVERRIDE; | 35 virtual const RendererCapabilities& capabilities() const OVERRIDE; |
28 | 36 |
29 virtual void viewportChanged() OVERRIDE; | 37 virtual void viewportChanged() OVERRIDE; |
30 | 38 |
(...skipping 20 matching lines...) Expand all Loading... |
51 private: | 59 private: |
52 SoftwareRenderer(RendererClient*, ResourceProvider*, WebKit::WebCompositorSo
ftwareOutputDevice*); | 60 SoftwareRenderer(RendererClient*, ResourceProvider*, WebKit::WebCompositorSo
ftwareOutputDevice*); |
53 | 61 |
54 bool isSoftwareResource(ResourceProvider::ResourceId) const; | 62 bool isSoftwareResource(ResourceProvider::ResourceId) const; |
55 | 63 |
56 void drawDebugBorderQuad(const DrawingFrame&, const DebugBorderDrawQuad*); | 64 void drawDebugBorderQuad(const DrawingFrame&, const DebugBorderDrawQuad*); |
57 void drawSolidColorQuad(const DrawingFrame&, const SolidColorDrawQuad*); | 65 void drawSolidColorQuad(const DrawingFrame&, const SolidColorDrawQuad*); |
58 void drawTextureQuad(const DrawingFrame&, const TextureDrawQuad*); | 66 void drawTextureQuad(const DrawingFrame&, const TextureDrawQuad*); |
59 void drawTileQuad(const DrawingFrame&, const TileDrawQuad*); | 67 void drawTileQuad(const DrawingFrame&, const TileDrawQuad*); |
60 void drawRenderPassQuad(const DrawingFrame& frame, const RenderPassDrawQuad*
); | 68 void drawRenderPassQuad(const DrawingFrame& frame, const RenderPassDrawQuad*
); |
| 69 void drawVideoFrameQuad(const DrawingFrame& frame, const VideoFrameDrawQuad*
); |
61 void drawUnsupportedQuad(const DrawingFrame&, const DrawQuad*); | 70 void drawUnsupportedQuad(const DrawingFrame&, const DrawQuad*); |
62 | 71 |
63 RendererCapabilities m_capabilities; | 72 RendererCapabilities m_capabilities; |
64 bool m_visible; | 73 bool m_visible; |
65 | 74 |
66 WebKit::WebCompositorSoftwareOutputDevice* m_outputDevice; | 75 WebKit::WebCompositorSoftwareOutputDevice* m_outputDevice; |
67 scoped_ptr<SkCanvas> m_skRootCanvas; | 76 scoped_ptr<SkCanvas> m_skRootCanvas; |
68 SkCanvas* m_skCurrentCanvas; | 77 SkCanvas* m_skCurrentCanvas; |
69 SkPaint m_skCurrentPaint; | 78 SkPaint m_skCurrentPaint; |
70 scoped_ptr<ResourceProvider::ScopedWriteLockSoftware> m_currentFramebufferLo
ck; | 79 scoped_ptr<ResourceProvider::ScopedWriteLockSoftware> m_currentFramebufferLo
ck; |
| 80 scoped_ptr<media::SkCanvasVideoRenderer> m_videoRenderer; |
71 | 81 |
72 DISALLOW_COPY_AND_ASSIGN(SoftwareRenderer); | 82 DISALLOW_COPY_AND_ASSIGN(SoftwareRenderer); |
73 }; | 83 }; |
74 | 84 |
75 } | 85 } |
76 | 86 |
77 #endif | 87 #endif |
OLD | NEW |