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

Side by Side Diff: cc/output/direct_renderer.cc

Issue 251343002: Remove offscreen compositor contexts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rm-offscreencontext: include Created 6 years, 8 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/output/direct_renderer.h ('k') | cc/output/gl_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 4
5 #include "cc/output/direct_renderer.h" 5 #include "cc/output/direct_renderer.h"
6 6
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/containers/hash_tables.h" 10 #include "base/containers/hash_tables.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 // Map from ([-1, -1] to [1, 1]) -> ([0, 0] to [1, 1]) 51 // Map from ([-1, -1] to [1, 1]) -> ([0, 0] to [1, 1])
52 canvas.Translate3d(0.5, 0.5, 0.5); 52 canvas.Translate3d(0.5, 0.5, 0.5);
53 canvas.Scale3d(0.5, 0.5, 0.5); 53 canvas.Scale3d(0.5, 0.5, 0.5);
54 54
55 return canvas; 55 return canvas;
56 } 56 }
57 57
58 namespace cc { 58 namespace cc {
59 59
60 DirectRenderer::DrawingFrame::DrawingFrame() 60 DirectRenderer::DrawingFrame::DrawingFrame()
61 : root_render_pass(NULL), 61 : root_render_pass(NULL), current_render_pass(NULL), current_texture(NULL) {
62 current_render_pass(NULL), 62 }
63 current_texture(NULL),
64 offscreen_context_provider(NULL) {}
65 63
66 DirectRenderer::DrawingFrame::~DrawingFrame() {} 64 DirectRenderer::DrawingFrame::~DrawingFrame() {}
67 65
68 // 66 //
69 // static 67 // static
70 gfx::RectF DirectRenderer::QuadVertexRect() { 68 gfx::RectF DirectRenderer::QuadVertexRect() {
71 return gfx::RectF(-0.5f, -0.5f, 1.f, 1.f); 69 return gfx::RectF(-0.5f, -0.5f, 1.f, 1.f);
72 } 70 }
73 71
74 // static 72 // static
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 if (!render_pass_textures_.contains(render_passes_in_draw_order[i]->id)) { 189 if (!render_pass_textures_.contains(render_passes_in_draw_order[i]->id)) {
192 scoped_ptr<ScopedResource> texture = 190 scoped_ptr<ScopedResource> texture =
193 ScopedResource::Create(resource_provider_); 191 ScopedResource::Create(resource_provider_);
194 render_pass_textures_.set(render_passes_in_draw_order[i]->id, 192 render_pass_textures_.set(render_passes_in_draw_order[i]->id,
195 texture.Pass()); 193 texture.Pass());
196 } 194 }
197 } 195 }
198 } 196 }
199 197
200 void DirectRenderer::DrawFrame(RenderPassList* render_passes_in_draw_order, 198 void DirectRenderer::DrawFrame(RenderPassList* render_passes_in_draw_order,
201 ContextProvider* offscreen_context_provider,
202 float device_scale_factor, 199 float device_scale_factor,
203 const gfx::Rect& device_viewport_rect, 200 const gfx::Rect& device_viewport_rect,
204 const gfx::Rect& device_clip_rect, 201 const gfx::Rect& device_clip_rect,
205 bool disable_picture_quad_image_filtering) { 202 bool disable_picture_quad_image_filtering) {
206 TRACE_EVENT0("cc", "DirectRenderer::DrawFrame"); 203 TRACE_EVENT0("cc", "DirectRenderer::DrawFrame");
207 UMA_HISTOGRAM_COUNTS("Renderer4.renderPassCount", 204 UMA_HISTOGRAM_COUNTS("Renderer4.renderPassCount",
208 render_passes_in_draw_order->size()); 205 render_passes_in_draw_order->size());
209 206
210 const RenderPass* root_render_pass = render_passes_in_draw_order->back(); 207 const RenderPass* root_render_pass = render_passes_in_draw_order->back();
211 DCHECK(root_render_pass); 208 DCHECK(root_render_pass);
212 209
213 DrawingFrame frame; 210 DrawingFrame frame;
214 frame.root_render_pass = root_render_pass; 211 frame.root_render_pass = root_render_pass;
215 frame.root_damage_rect = Capabilities().using_partial_swap 212 frame.root_damage_rect = Capabilities().using_partial_swap
216 ? root_render_pass->damage_rect 213 ? root_render_pass->damage_rect
217 : root_render_pass->output_rect; 214 : root_render_pass->output_rect;
218 frame.root_damage_rect.Intersect(gfx::Rect(device_viewport_rect.size())); 215 frame.root_damage_rect.Intersect(gfx::Rect(device_viewport_rect.size()));
219 frame.device_viewport_rect = device_viewport_rect; 216 frame.device_viewport_rect = device_viewport_rect;
220 frame.device_clip_rect = device_clip_rect; 217 frame.device_clip_rect = device_clip_rect;
221 frame.offscreen_context_provider = offscreen_context_provider;
222 frame.disable_picture_quad_image_filtering = 218 frame.disable_picture_quad_image_filtering =
223 disable_picture_quad_image_filtering; 219 disable_picture_quad_image_filtering;
224 220
225 overlay_processor_->ProcessForOverlays(render_passes_in_draw_order, 221 overlay_processor_->ProcessForOverlays(render_passes_in_draw_order,
226 &frame.overlay_list); 222 &frame.overlay_list);
227 223
228 EnsureBackbuffer(); 224 EnsureBackbuffer();
229 225
230 // Only reshape when we know we are going to draw. Otherwise, the reshape 226 // Only reshape when we know we are going to draw. Otherwise, the reshape
231 // can leave the window at the wrong size if we never draw and the proper 227 // can leave the window at the wrong size if we never draw and the proper
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 ScopedResource* texture = render_pass_textures_.get(id); 449 ScopedResource* texture = render_pass_textures_.get(id);
454 return texture && texture->id(); 450 return texture && texture->id();
455 } 451 }
456 452
457 // static 453 // static
458 gfx::Size DirectRenderer::RenderPassTextureSize(const RenderPass* render_pass) { 454 gfx::Size DirectRenderer::RenderPassTextureSize(const RenderPass* render_pass) {
459 return render_pass->output_rect.size(); 455 return render_pass->output_rect.size();
460 } 456 }
461 457
462 } // namespace cc 458 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/direct_renderer.h ('k') | cc/output/gl_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698