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

Side by Side Diff: cc/software_renderer.h

Issue 11274017: Added support for YUV videos to the software compositor. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More cosmetics. Created 8 years, 2 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 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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698