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

Side by Side Diff: cc/direct_renderer.h

Issue 11122003: [cc] Rename all cc/ filenames to Chromium style (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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
« no previous file with comments | « cc/delegated_renderer_layer_impl.cc ('k') | cc/direct_renderer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
5 #ifndef CCDirectRenderer_h
6 #define CCDirectRenderer_h
7
8 #include "base/basictypes.h"
9 #include "CCRenderer.h"
10 #include "CCResourceProvider.h"
11 #include "CCScopedTexture.h"
12
13 namespace cc {
14
15 class CCResourceProvider;
16
17 // This is the base class for code shared between the GL and software
18 // renderer implementations. "Direct" refers to the fact that it does not
19 // delegate rendering to another compositor.
20 class CCDirectRenderer : public CCRenderer {
21 public:
22 virtual ~CCDirectRenderer();
23
24 CCResourceProvider* resourceProvider() const { return m_resourceProvider; }
25
26 virtual void decideRenderPassAllocationsForFrame(const CCRenderPassList& ren derPassesInDrawOrder) OVERRIDE;
27 virtual bool haveCachedResourcesForRenderPassId(CCRenderPass::Id) const OVER RIDE;
28 virtual void drawFrame(const CCRenderPassList& renderPassesInDrawOrder, cons t CCRenderPassIdHashMap& renderPassesById) OVERRIDE;
29
30 protected:
31 CCDirectRenderer(CCRendererClient* client, CCResourceProvider* resourceProvi der);
32
33 struct DrawingFrame {
34 DrawingFrame();
35 ~DrawingFrame();
36
37 const CCRenderPassIdHashMap* renderPassesById;
38 const CCRenderPass* rootRenderPass;
39 const CCRenderPass* currentRenderPass;
40 const CCScopedTexture* currentTexture;
41
42 FloatRect rootDamageRect;
43
44 WebKit::WebTransformationMatrix projectionMatrix;
45 WebKit::WebTransformationMatrix windowMatrix;
46 bool flippedY;
47 FloatRect scissorRectInRenderPassSpace;
48 };
49
50 class CachedTexture : public CCScopedTexture {
51 public:
52 static scoped_ptr<CachedTexture> create(CCResourceProvider* resourceProv ider) {
53 return make_scoped_ptr(new CachedTexture(resourceProvider));
54 }
55 virtual ~CachedTexture() {}
56
57 bool isComplete() const { return m_isComplete; }
58 void setIsComplete(bool isComplete) { m_isComplete = isComplete; }
59
60 protected:
61 explicit CachedTexture(CCResourceProvider* resourceProvider)
62 : CCScopedTexture(resourceProvider)
63 , m_isComplete(false)
64 {
65 }
66
67 private:
68 bool m_isComplete;
69
70 DISALLOW_COPY_AND_ASSIGN(CachedTexture);
71 };
72
73 static FloatRect quadVertexRect();
74 static void quadRectTransform(WebKit::WebTransformationMatrix* quadRectTrans form, const WebKit::WebTransformationMatrix& quadTransform, const FloatRect& qua dRect);
75 static void initializeMatrices(DrawingFrame&, const IntRect& drawRect, bool flipY);
76 static IntRect moveScissorToWindowSpace(const DrawingFrame&, FloatRect sciss orRect);
77
78 bool haveCachedResources(CCRenderPass::Id) const;
79 static IntSize renderPassTextureSize(const CCRenderPass*);
80 static GC3Denum renderPassTextureFormat(const CCRenderPass*);
81
82 void drawRenderPass(DrawingFrame&, const CCRenderPass*);
83 bool useRenderPass(DrawingFrame&, const CCRenderPass*);
84
85 virtual void bindFramebufferToOutputSurface(DrawingFrame&) = 0;
86 virtual bool bindFramebufferToTexture(DrawingFrame&, const CCScopedTexture*, const IntRect& framebufferRect) = 0;
87 virtual void setDrawViewportSize(const IntSize&) = 0;
88 virtual void enableScissorTestRect(const IntRect& scissorRect) = 0;
89 virtual void disableScissorTest() = 0;
90 virtual void clearFramebuffer(DrawingFrame&) = 0;
91 virtual void drawQuad(DrawingFrame&, const CCDrawQuad*) = 0;
92 virtual void beginDrawingFrame(DrawingFrame&) = 0;
93 virtual void finishDrawingFrame(DrawingFrame&) = 0;
94 virtual bool flippedFramebuffer() const = 0;
95
96 ScopedPtrHashMap<CCRenderPass::Id, CachedTexture> m_renderPassTextures;
97 CCResourceProvider* m_resourceProvider;
98
99 private:
100 DISALLOW_COPY_AND_ASSIGN(CCDirectRenderer);
101 };
102
103 } // namespace cc
104
105 #endif // CCDirectRenderer_h
OLDNEW
« no previous file with comments | « cc/delegated_renderer_layer_impl.cc ('k') | cc/direct_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698