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

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

Issue 334133002: cc: Support on demand raster with ganesh (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review3 Created 6 years, 6 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 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 size.Enlarge(enlarge_pass_texture_amount_.x(), 408 size.Enlarge(enlarge_pass_texture_amount_.x(),
409 enlarge_pass_texture_amount_.y()); 409 enlarge_pass_texture_amount_.y());
410 if (!texture->id()) 410 if (!texture->id())
411 texture->Allocate( 411 texture->Allocate(
412 size, ResourceProvider::TextureUsageFramebuffer, RGBA_8888); 412 size, ResourceProvider::TextureUsageFramebuffer, RGBA_8888);
413 DCHECK(texture->id()); 413 DCHECK(texture->id());
414 414
415 return BindFramebufferToTexture(frame, texture, render_pass->output_rect); 415 return BindFramebufferToTexture(frame, texture, render_pass->output_rect);
416 } 416 }
417 417
418 void DirectRenderer::RunOnDemandRasterTask(Task* on_demand_raster_task) {
419 TaskGraphRunner* task_graph_runner = RasterWorkerPool::GetTaskGraphRunner();
420 DCHECK(task_graph_runner);
421
422 // Make sure we have a unique task namespace token.
423 if (!on_demand_task_namespace_.IsValid())
424 on_demand_task_namespace_ = task_graph_runner->GetNamespaceToken();
425
426 // Construct a task graph that contains this single raster task.
427 TaskGraph graph;
428 graph.nodes.push_back(
429 TaskGraph::Node(on_demand_raster_task,
430 RasterWorkerPool::kOnDemandRasterTaskPriority,
431 0u));
432
433 // Schedule task and wait for task graph runner to finish running it.
434 task_graph_runner->ScheduleTasks(on_demand_task_namespace_, &graph);
435 task_graph_runner->WaitForTasksToFinishRunning(on_demand_task_namespace_);
436
437 // Collect task now that it has finished running.
438 Task::Vector completed_tasks;
439 task_graph_runner->CollectCompletedTasks(on_demand_task_namespace_,
440 &completed_tasks);
441 DCHECK_EQ(1u, completed_tasks.size());
442 DCHECK_EQ(completed_tasks[0], on_demand_raster_task);
443 }
444
445 bool DirectRenderer::HasAllocatedResourcesForTesting(RenderPass::Id id) 418 bool DirectRenderer::HasAllocatedResourcesForTesting(RenderPass::Id id)
446 const { 419 const {
447 ScopedResource* texture = render_pass_textures_.get(id); 420 ScopedResource* texture = render_pass_textures_.get(id);
448 return texture && texture->id(); 421 return texture && texture->id();
449 } 422 }
450 423
451 // static 424 // static
452 gfx::Size DirectRenderer::RenderPassTextureSize(const RenderPass* render_pass) { 425 gfx::Size DirectRenderer::RenderPassTextureSize(const RenderPass* render_pass) {
453 return render_pass->output_rect.size(); 426 return render_pass->output_rect.size();
454 } 427 }
455 428
456 } // namespace cc 429 } // 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