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 CC_OUTPUT_DIRECT_RENDERER_H_ | 5 #ifndef CC_OUTPUT_DIRECT_RENDERER_H_ |
6 #define CC_OUTPUT_DIRECT_RENDERER_H_ | 6 #define CC_OUTPUT_DIRECT_RENDERER_H_ |
7 | 7 |
8 #include <unordered_map> | 8 #include <unordered_map> |
9 | 9 |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 const gfx::Rect& render_pass_scissor, | 78 const gfx::Rect& render_pass_scissor, |
79 bool use_render_pass_scissor); | 79 bool use_render_pass_scissor); |
80 | 80 |
81 protected: | 81 protected: |
82 enum SurfaceInitializationMode { | 82 enum SurfaceInitializationMode { |
83 SURFACE_INITIALIZATION_MODE_PRESERVE, | 83 SURFACE_INITIALIZATION_MODE_PRESERVE, |
84 SURFACE_INITIALIZATION_MODE_SCISSORED_CLEAR, | 84 SURFACE_INITIALIZATION_MODE_SCISSORED_CLEAR, |
85 SURFACE_INITIALIZATION_MODE_FULL_SURFACE_CLEAR, | 85 SURFACE_INITIALIZATION_MODE_FULL_SURFACE_CLEAR, |
86 }; | 86 }; |
87 | 87 |
88 DirectRenderer(RendererClient* client, | 88 DirectRenderer(const RendererSettings* settings, |
89 const RendererSettings* settings, | |
90 OutputSurface* output_surface, | 89 OutputSurface* output_surface, |
91 ResourceProvider* resource_provider); | 90 ResourceProvider* resource_provider); |
92 | 91 |
93 static gfx::RectF QuadVertexRect(); | 92 static gfx::RectF QuadVertexRect(); |
94 static void QuadRectTransform(gfx::Transform* quad_rect_transform, | 93 static void QuadRectTransform(gfx::Transform* quad_rect_transform, |
95 const gfx::Transform& quad_transform, | 94 const gfx::Transform& quad_transform, |
96 const gfx::RectF& quad_rect); | 95 const gfx::RectF& quad_rect); |
97 void InitializeViewport(DrawingFrame* frame, | 96 void InitializeViewport(DrawingFrame* frame, |
98 const gfx::Rect& draw_rect, | 97 const gfx::Rect& draw_rect, |
99 const gfx::Rect& viewport_rect, | 98 const gfx::Rect& viewport_rect, |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 // with clip_region will be drawn. | 138 // with clip_region will be drawn. |
140 virtual void DoDrawQuad(DrawingFrame* frame, | 139 virtual void DoDrawQuad(DrawingFrame* frame, |
141 const DrawQuad* quad, | 140 const DrawQuad* quad, |
142 const gfx::QuadF* clip_region) = 0; | 141 const gfx::QuadF* clip_region) = 0; |
143 virtual void BeginDrawingFrame(DrawingFrame* frame) = 0; | 142 virtual void BeginDrawingFrame(DrawingFrame* frame) = 0; |
144 virtual void FinishDrawingFrame(DrawingFrame* frame) = 0; | 143 virtual void FinishDrawingFrame(DrawingFrame* frame) = 0; |
145 virtual void FinishDrawingQuadList(); | 144 virtual void FinishDrawingQuadList(); |
146 virtual bool FlippedFramebuffer(const DrawingFrame* frame) const = 0; | 145 virtual bool FlippedFramebuffer(const DrawingFrame* frame) const = 0; |
147 virtual void EnsureScissorTestEnabled() = 0; | 146 virtual void EnsureScissorTestEnabled() = 0; |
148 virtual void EnsureScissorTestDisabled() = 0; | 147 virtual void EnsureScissorTestDisabled() = 0; |
149 virtual void DiscardBackbuffer() {} | |
150 virtual void EnsureBackbuffer() {} | |
151 | 148 |
152 virtual void CopyCurrentRenderPassToBitmap( | 149 virtual void CopyCurrentRenderPassToBitmap( |
153 DrawingFrame* frame, | 150 DrawingFrame* frame, |
154 std::unique_ptr<CopyOutputRequest> request) = 0; | 151 std::unique_ptr<CopyOutputRequest> request) = 0; |
155 | 152 |
156 // TODO(danakj): Just use a vector of pairs here? Hash map is way overkill. | 153 // TODO(danakj): Just use a vector of pairs here? Hash map is way overkill. |
157 std::unordered_map<RenderPassId, | 154 std::unordered_map<RenderPassId, |
158 std::unique_ptr<ScopedResource>, | 155 std::unique_ptr<ScopedResource>, |
159 RenderPassIdHash> | 156 RenderPassIdHash> |
160 render_pass_textures_; | 157 render_pass_textures_; |
(...skipping 15 matching lines...) Expand all Loading... |
176 | 173 |
177 private: | 174 private: |
178 gfx::Size enlarge_pass_texture_amount_; | 175 gfx::Size enlarge_pass_texture_amount_; |
179 | 176 |
180 DISALLOW_COPY_AND_ASSIGN(DirectRenderer); | 177 DISALLOW_COPY_AND_ASSIGN(DirectRenderer); |
181 }; | 178 }; |
182 | 179 |
183 } // namespace cc | 180 } // namespace cc |
184 | 181 |
185 #endif // CC_OUTPUT_DIRECT_RENDERER_H_ | 182 #endif // CC_OUTPUT_DIRECT_RENDERER_H_ |
OLD | NEW |