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

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

Issue 462983003: [WIP] Implement BackGroundFilter as seperate layer in cc (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 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
« no previous file with comments | « cc/output/software_renderer.h ('k') | cc/quads/draw_quad.h » ('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/software_renderer.h" 5 #include "cc/output/software_renderer.h"
6 6
7 #include "base/debug/trace_event.h" 7 #include "base/debug/trace_event.h"
8 #include "cc/base/math_util.h" 8 #include "cc/base/math_util.h"
9 #include "cc/output/compositor_frame.h" 9 #include "cc/output/compositor_frame.h"
10 #include "cc/output/compositor_frame_ack.h" 10 #include "cc/output/compositor_frame_ack.h"
11 #include "cc/output/compositor_frame_metadata.h" 11 #include "cc/output/compositor_frame_metadata.h"
12 #include "cc/output/copy_output_request.h" 12 #include "cc/output/copy_output_request.h"
13 #include "cc/output/output_surface.h" 13 #include "cc/output/output_surface.h"
14 #include "cc/output/render_surface_filters.h" 14 #include "cc/output/render_surface_filters.h"
15 #include "cc/output/software_output_device.h" 15 #include "cc/output/software_output_device.h"
16 #include "cc/quads/checkerboard_draw_quad.h" 16 #include "cc/quads/checkerboard_draw_quad.h"
17 #include "cc/quads/debug_border_draw_quad.h" 17 #include "cc/quads/debug_border_draw_quad.h"
18 #include "cc/quads/filter_draw_quad.h"
18 #include "cc/quads/picture_draw_quad.h" 19 #include "cc/quads/picture_draw_quad.h"
19 #include "cc/quads/render_pass_draw_quad.h" 20 #include "cc/quads/render_pass_draw_quad.h"
20 #include "cc/quads/solid_color_draw_quad.h" 21 #include "cc/quads/solid_color_draw_quad.h"
21 #include "cc/quads/texture_draw_quad.h" 22 #include "cc/quads/texture_draw_quad.h"
22 #include "cc/quads/tile_draw_quad.h" 23 #include "cc/quads/tile_draw_quad.h"
23 #include "cc/resources/raster_worker_pool.h" 24 #include "cc/resources/raster_worker_pool.h"
24 #include "skia/ext/opacity_draw_filter.h" 25 #include "skia/ext/opacity_draw_filter.h"
25 #include "third_party/skia/include/core/SkBitmapDevice.h" 26 #include "third_party/skia/include/core/SkBitmapDevice.h"
26 #include "third_party/skia/include/core/SkCanvas.h" 27 #include "third_party/skia/include/core/SkCanvas.h"
27 #include "third_party/skia/include/core/SkColor.h" 28 #include "third_party/skia/include/core/SkColor.h"
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 current_paint_.setXfermodeMode(SkXfermode::kSrc_Mode); 301 current_paint_.setXfermodeMode(SkXfermode::kSrc_Mode);
301 } 302 }
302 303
303 switch (quad->material) { 304 switch (quad->material) {
304 case DrawQuad::CHECKERBOARD: 305 case DrawQuad::CHECKERBOARD:
305 DrawCheckerboardQuad(frame, CheckerboardDrawQuad::MaterialCast(quad)); 306 DrawCheckerboardQuad(frame, CheckerboardDrawQuad::MaterialCast(quad));
306 break; 307 break;
307 case DrawQuad::DEBUG_BORDER: 308 case DrawQuad::DEBUG_BORDER:
308 DrawDebugBorderQuad(frame, DebugBorderDrawQuad::MaterialCast(quad)); 309 DrawDebugBorderQuad(frame, DebugBorderDrawQuad::MaterialCast(quad));
309 break; 310 break;
311 case DrawQuad::FILTER_CONTENT:
312 DrawFilterQuad(frame, FilterDrawQuad::MaterialCast(quad));
310 case DrawQuad::PICTURE_CONTENT: 313 case DrawQuad::PICTURE_CONTENT:
311 DrawPictureQuad(frame, PictureDrawQuad::MaterialCast(quad)); 314 DrawPictureQuad(frame, PictureDrawQuad::MaterialCast(quad));
312 break; 315 break;
313 case DrawQuad::RENDER_PASS: 316 case DrawQuad::RENDER_PASS:
314 DrawRenderPassQuad(frame, RenderPassDrawQuad::MaterialCast(quad)); 317 DrawRenderPassQuad(frame, RenderPassDrawQuad::MaterialCast(quad));
315 break; 318 break;
316 case DrawQuad::SOLID_COLOR: 319 case DrawQuad::SOLID_COLOR:
317 DrawSolidColorQuad(frame, SolidColorDrawQuad::MaterialCast(quad)); 320 DrawSolidColorQuad(frame, SolidColorDrawQuad::MaterialCast(quad));
318 break; 321 break;
319 case DrawQuad::TEXTURE_CONTENT: 322 case DrawQuad::TEXTURE_CONTENT:
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 405
403 void SoftwareRenderer::DrawSolidColorQuad(const DrawingFrame* frame, 406 void SoftwareRenderer::DrawSolidColorQuad(const DrawingFrame* frame,
404 const SolidColorDrawQuad* quad) { 407 const SolidColorDrawQuad* quad) {
405 gfx::RectF visible_quad_vertex_rect = MathUtil::ScaleRectProportional( 408 gfx::RectF visible_quad_vertex_rect = MathUtil::ScaleRectProportional(
406 QuadVertexRect(), quad->rect, quad->visible_rect); 409 QuadVertexRect(), quad->rect, quad->visible_rect);
407 current_paint_.setColor(quad->color); 410 current_paint_.setColor(quad->color);
408 current_paint_.setAlpha(quad->opacity() * SkColorGetA(quad->color)); 411 current_paint_.setAlpha(quad->opacity() * SkColorGetA(quad->color));
409 current_canvas_->drawRect(gfx::RectFToSkRect(visible_quad_vertex_rect), 412 current_canvas_->drawRect(gfx::RectFToSkRect(visible_quad_vertex_rect),
410 current_paint_); 413 current_paint_);
411 } 414 }
415 void SoftwareRenderer::DrawFilterQuad(const DrawingFrame* frame,
416 const FilterDrawQuad* quad) {
417 NOTIMPLEMENTED();
418 }
412 419
413 void SoftwareRenderer::DrawTextureQuad(const DrawingFrame* frame, 420 void SoftwareRenderer::DrawTextureQuad(const DrawingFrame* frame,
414 const TextureDrawQuad* quad) { 421 const TextureDrawQuad* quad) {
415 if (!IsSoftwareResource(quad->resource_id)) { 422 if (!IsSoftwareResource(quad->resource_id)) {
416 DrawUnsupportedQuad(frame, quad); 423 DrawUnsupportedQuad(frame, quad);
417 return; 424 return;
418 } 425 }
419 426
420 // TODO(skaslev): Add support for non-premultiplied alpha. 427 // TODO(skaslev): Add support for non-premultiplied alpha.
421 ResourceProvider::ScopedReadLockSoftware lock(resource_provider_, 428 ResourceProvider::ScopedReadLockSoftware lock(resource_provider_,
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
644 } 651 }
645 652
646 void SoftwareRenderer::DidChangeVisibility() { 653 void SoftwareRenderer::DidChangeVisibility() {
647 if (visible()) 654 if (visible())
648 EnsureBackbuffer(); 655 EnsureBackbuffer();
649 else 656 else
650 DiscardBackbuffer(); 657 DiscardBackbuffer();
651 } 658 }
652 659
653 } // namespace cc 660 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/software_renderer.h ('k') | cc/quads/draw_quad.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698