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

Side by Side Diff: cc/CCDirectRenderer.h

Issue 10984053: cc: Use ui/gfx geometry types for the CCRenderPass and CCDrawQuad classes. (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
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 CCDirectRenderer_h 5 #ifndef CCDirectRenderer_h
6 #define CCDirectRenderer_h 6 #define CCDirectRenderer_h
7 7
8 #include "CCRenderer.h" 8 #include "CCRenderer.h"
9 #include "CCResourceProvider.h" 9 #include "CCResourceProvider.h"
10 #include "CCScopedTexture.h" 10 #include "CCScopedTexture.h"
(...skipping 21 matching lines...) Expand all
32 32
33 struct DrawingFrame { 33 struct DrawingFrame {
34 DrawingFrame(); 34 DrawingFrame();
35 ~DrawingFrame(); 35 ~DrawingFrame();
36 36
37 const CCRenderPassIdHashMap* renderPassesById; 37 const CCRenderPassIdHashMap* renderPassesById;
38 const CCRenderPass* rootRenderPass; 38 const CCRenderPass* rootRenderPass;
39 const CCRenderPass* currentRenderPass; 39 const CCRenderPass* currentRenderPass;
40 const CCScopedTexture* currentTexture; 40 const CCScopedTexture* currentTexture;
41 41
42 FloatRect rootDamageRect; 42 ccmath::FloatRect rootDamageRect;
43 43
44 WebKit::WebTransformationMatrix projectionMatrix; 44 WebKit::WebTransformationMatrix projectionMatrix;
45 WebKit::WebTransformationMatrix windowMatrix; 45 WebKit::WebTransformationMatrix windowMatrix;
46 bool flippedY; 46 bool flippedY;
47 FloatRect scissorRectInRenderPassSpace; 47 ccmath::FloatRect scissorRectInRenderPassSpace;
48 }; 48 };
49 49
50 class CachedTexture : public CCScopedTexture { 50 class CachedTexture : public CCScopedTexture {
51 WTF_MAKE_NONCOPYABLE(CachedTexture); 51 WTF_MAKE_NONCOPYABLE(CachedTexture);
52 public: 52 public:
53 static PassOwnPtr<CachedTexture> create(CCResourceProvider* resourceProv ider) { return adoptPtr(new CachedTexture(resourceProvider)); } 53 static PassOwnPtr<CachedTexture> create(CCResourceProvider* resourceProv ider) { return adoptPtr(new CachedTexture(resourceProvider)); }
54 virtual ~CachedTexture() { } 54 virtual ~CachedTexture() { }
55 55
56 bool isComplete() const { return m_isComplete; } 56 bool isComplete() const { return m_isComplete; }
57 void setIsComplete(bool isComplete) { m_isComplete = isComplete; } 57 void setIsComplete(bool isComplete) { m_isComplete = isComplete; }
58 58
59 protected: 59 protected:
60 explicit CachedTexture(CCResourceProvider* resourceProvider) 60 explicit CachedTexture(CCResourceProvider* resourceProvider)
61 : CCScopedTexture(resourceProvider) 61 : CCScopedTexture(resourceProvider)
62 , m_isComplete(false) 62 , m_isComplete(false)
63 { 63 {
64 } 64 }
65 65
66 private: 66 private:
67 bool m_isComplete; 67 bool m_isComplete;
68 }; 68 };
69 69
70 static FloatRect quadVertexRect(); 70 static FloatRect quadVertexRect();
71 static void quadRectTransform(WebKit::WebTransformationMatrix* quadRectTrans form, const WebKit::WebTransformationMatrix& quadTransform, const FloatRect& qua dRect); 71 static void quadRectTransform(WebKit::WebTransformationMatrix* quadRectTrans form, const WebKit::WebTransformationMatrix& quadTransform, const ccmath::FloatR ect& quadRect);
72 static void initializeMatrices(DrawingFrame&, const IntRect& drawRect, bool flipY); 72 static void initializeMatrices(DrawingFrame&, const ccmath::IntRect& drawRec t, bool flipY);
73 static IntRect moveScissorToWindowSpace(const DrawingFrame&, FloatRect sciss orRect); 73 static ccmath::IntRect moveScissorToWindowSpace(const DrawingFrame&, ccmath: :FloatRect scissorRect);
74 74
75 bool haveCachedResources(CCRenderPass::Id) const; 75 bool haveCachedResources(CCRenderPass::Id) const;
76 static IntSize renderPassTextureSize(const CCRenderPass*); 76 static IntSize renderPassTextureSize(const CCRenderPass*);
77 static GC3Denum renderPassTextureFormat(const CCRenderPass*); 77 static GC3Denum renderPassTextureFormat(const CCRenderPass*);
78 78
79 void drawRenderPass(DrawingFrame&, const CCRenderPass*); 79 void drawRenderPass(DrawingFrame&, const CCRenderPass*);
80 bool useRenderPass(DrawingFrame&, const CCRenderPass*); 80 bool useRenderPass(DrawingFrame&, const CCRenderPass*);
81 81
82 virtual void bindFramebufferToOutputSurface(DrawingFrame&) = 0; 82 virtual void bindFramebufferToOutputSurface(DrawingFrame&) = 0;
83 virtual bool bindFramebufferToTexture(DrawingFrame&, const CCScopedTexture*, const IntRect& framebufferRect) = 0; 83 virtual bool bindFramebufferToTexture(DrawingFrame&, const CCScopedTexture*, const ccmath::IntRect& framebufferRect) = 0;
84 virtual void setDrawViewportSize(const IntSize&) = 0; 84 virtual void setDrawViewportSize(const ccmath::IntSize&) = 0;
85 virtual void enableScissorTestRect(const IntRect& scissorRect) = 0; 85 virtual void enableScissorTestRect(const ccmath::IntRect& scissorRect) = 0;
86 virtual void disableScissorTest() = 0; 86 virtual void disableScissorTest() = 0;
87 virtual void clearFramebuffer(DrawingFrame&) = 0; 87 virtual void clearFramebuffer(DrawingFrame&) = 0;
88 virtual void drawQuad(DrawingFrame&, const CCDrawQuad*) = 0; 88 virtual void drawQuad(DrawingFrame&, const CCDrawQuad*) = 0;
89 virtual void beginDrawingFrame(DrawingFrame&) = 0; 89 virtual void beginDrawingFrame(DrawingFrame&) = 0;
90 virtual void finishDrawingFrame(DrawingFrame&) = 0; 90 virtual void finishDrawingFrame(DrawingFrame&) = 0;
91 virtual bool flippedFramebuffer() const = 0; 91 virtual bool flippedFramebuffer() const = 0;
92 92
93 HashMap<CCRenderPass::Id, OwnPtr<CachedTexture> > m_renderPassTextures; 93 HashMap<CCRenderPass::Id, OwnPtr<CachedTexture> > m_renderPassTextures;
94 CCResourceProvider* m_resourceProvider; 94 CCResourceProvider* m_resourceProvider;
95 }; 95 };
96 96
97 } 97 }
98 98
99 #endif // CCDirectRenderer_h 99 #endif // CCDirectRenderer_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698