| Index: cc/output/gl_renderer_unittest.cc
|
| diff --git a/cc/output/gl_renderer_unittest.cc b/cc/output/gl_renderer_unittest.cc
|
| index 45b6d2ab989a9c727ec5642b81042f1393a5f2b1..ac2acf9a87492ad4968b5d1cb0eebc635fea1890 100644
|
| --- a/cc/output/gl_renderer_unittest.cc
|
| +++ b/cc/output/gl_renderer_unittest.cc
|
| @@ -70,18 +70,26 @@ class GLRendererShaderPixelTest : public GLRendererPixelTest {
|
| }
|
|
|
| void TestShadersWithTexCoordPrecision(TexCoordPrecision precision) {
|
| - EXPECT_PROGRAM_VALID(renderer()->GetRenderPassProgram(precision));
|
| - EXPECT_PROGRAM_VALID(renderer()->GetRenderPassProgramAA(precision));
|
| - EXPECT_PROGRAM_VALID(renderer()->GetRenderPassMaskProgram(precision));
|
| - EXPECT_PROGRAM_VALID(renderer()->GetRenderPassMaskProgramAA(precision));
|
| - EXPECT_PROGRAM_VALID(
|
| - renderer()->GetRenderPassColorMatrixProgram(precision));
|
| - EXPECT_PROGRAM_VALID(
|
| - renderer()->GetRenderPassMaskColorMatrixProgramAA(precision));
|
| - EXPECT_PROGRAM_VALID(
|
| - renderer()->GetRenderPassColorMatrixProgramAA(precision));
|
| - EXPECT_PROGRAM_VALID(
|
| - renderer()->GetRenderPassMaskColorMatrixProgram(precision));
|
| + for (SkXfermode::Mode mode = kDefaultBlendMode; mode <= kLastBlendMode;) {
|
| + EXPECT_PROGRAM_VALID(renderer()->GetRenderPassProgram(precision, mode));
|
| + EXPECT_PROGRAM_VALID(renderer()->GetRenderPassProgramAA(precision, mode));
|
| + EXPECT_PROGRAM_VALID(
|
| + renderer()->GetRenderPassMaskProgram(precision, mode));
|
| + EXPECT_PROGRAM_VALID(
|
| + renderer()->GetRenderPassMaskProgramAA(precision, mode));
|
| + EXPECT_PROGRAM_VALID(
|
| + renderer()->GetRenderPassColorMatrixProgram(precision, mode));
|
| + EXPECT_PROGRAM_VALID(
|
| + renderer()->GetRenderPassMaskColorMatrixProgramAA(precision, mode));
|
| + EXPECT_PROGRAM_VALID(
|
| + renderer()->GetRenderPassColorMatrixProgramAA(precision, mode));
|
| + EXPECT_PROGRAM_VALID(
|
| + renderer()->GetRenderPassMaskColorMatrixProgram(precision, mode));
|
| + if (mode < kFirstBlendMode)
|
| + mode = kFirstBlendMode;
|
| + else
|
| + mode = static_cast<SkXfermode::Mode>(mode + 1);
|
| + }
|
| EXPECT_PROGRAM_VALID(renderer()->GetTextureProgram(precision));
|
| EXPECT_PROGRAM_VALID(
|
| renderer()->GetNonPremultipliedTextureProgram(precision));
|
| @@ -202,59 +210,78 @@ class GLRendererShaderTest : public GLRendererTest {
|
| resource_provider_.get()));
|
| }
|
|
|
| - void TestRenderPassProgram(TexCoordPrecision precision) {
|
| - EXPECT_PROGRAM_VALID(&renderer_->render_pass_program_[precision]);
|
| - EXPECT_EQ(renderer_->render_pass_program_[precision].program(),
|
| + void TestRenderPassProgram(TexCoordPrecision precision,
|
| + SkXfermode::Mode mode) {
|
| + int bm = index_for_blend_mode(mode);
|
| + EXPECT_PROGRAM_VALID(&renderer_->render_pass_program_[precision][bm]);
|
| + EXPECT_EQ(renderer_->render_pass_program_[precision][bm].program(),
|
| renderer_->program_shadow_);
|
| }
|
|
|
| - void TestRenderPassColorMatrixProgram(TexCoordPrecision precision) {
|
| + void TestRenderPassColorMatrixProgram(TexCoordPrecision precision,
|
| + SkXfermode::Mode mode) {
|
| + int bm = index_for_blend_mode(mode);
|
| EXPECT_PROGRAM_VALID(
|
| - &renderer_->render_pass_color_matrix_program_[precision]);
|
| - EXPECT_EQ(renderer_->render_pass_color_matrix_program_[precision].program(),
|
| - renderer_->program_shadow_);
|
| + &renderer_->render_pass_color_matrix_program_[precision][bm]);
|
| + EXPECT_EQ(
|
| + renderer_->render_pass_color_matrix_program_[precision][bm].program(),
|
| + renderer_->program_shadow_);
|
| }
|
|
|
| - void TestRenderPassMaskProgram(TexCoordPrecision precision) {
|
| - EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_program_[precision]);
|
| - EXPECT_EQ(renderer_->render_pass_mask_program_[precision].program(),
|
| + void TestRenderPassMaskProgram(TexCoordPrecision precision,
|
| + SkXfermode::Mode mode) {
|
| + int bm = index_for_blend_mode(mode);
|
| + EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_program_[precision][bm]);
|
| + EXPECT_EQ(renderer_->render_pass_mask_program_[precision][bm].program(),
|
| renderer_->program_shadow_);
|
| }
|
|
|
| - void TestRenderPassMaskColorMatrixProgram(TexCoordPrecision precision) {
|
| + void TestRenderPassMaskColorMatrixProgram(TexCoordPrecision precision,
|
| + SkXfermode::Mode mode) {
|
| + int bm = index_for_blend_mode(mode);
|
| EXPECT_PROGRAM_VALID(
|
| - &renderer_->render_pass_mask_color_matrix_program_[precision]);
|
| - EXPECT_EQ(
|
| - renderer_->render_pass_mask_color_matrix_program_[precision].program(),
|
| - renderer_->program_shadow_);
|
| + &renderer_->render_pass_mask_color_matrix_program_[precision][bm]);
|
| + EXPECT_EQ(renderer_->render_pass_mask_color_matrix_program_[precision][bm]
|
| + .program(),
|
| + renderer_->program_shadow_);
|
| }
|
|
|
| - void TestRenderPassProgramAA(TexCoordPrecision precision) {
|
| - EXPECT_PROGRAM_VALID(&renderer_->render_pass_program_aa_[precision]);
|
| - EXPECT_EQ(renderer_->render_pass_program_aa_[precision].program(),
|
| + void TestRenderPassProgramAA(TexCoordPrecision precision,
|
| + SkXfermode::Mode mode) {
|
| + int bm = index_for_blend_mode(mode);
|
| + EXPECT_PROGRAM_VALID(&renderer_->render_pass_program_aa_[precision][bm]);
|
| + EXPECT_EQ(renderer_->render_pass_program_aa_[precision][bm].program(),
|
| renderer_->program_shadow_);
|
| }
|
|
|
| - void TestRenderPassColorMatrixProgramAA(TexCoordPrecision precision) {
|
| + void TestRenderPassColorMatrixProgramAA(TexCoordPrecision precision,
|
| + SkXfermode::Mode mode) {
|
| + int bm = index_for_blend_mode(mode);
|
| EXPECT_PROGRAM_VALID(
|
| - &renderer_->render_pass_color_matrix_program_aa_[precision]);
|
| - EXPECT_EQ(
|
| - renderer_->render_pass_color_matrix_program_aa_[precision].program(),
|
| - renderer_->program_shadow_);
|
| + &renderer_->render_pass_color_matrix_program_aa_[precision][bm]);
|
| + EXPECT_EQ(renderer_->render_pass_color_matrix_program_aa_[precision][bm]
|
| + .program(),
|
| + renderer_->program_shadow_);
|
| }
|
|
|
| - void TestRenderPassMaskProgramAA(TexCoordPrecision precision) {
|
| - EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_program_aa_[precision]);
|
| - EXPECT_EQ(renderer_->render_pass_mask_program_aa_[precision].program(),
|
| + void TestRenderPassMaskProgramAA(TexCoordPrecision precision,
|
| + SkXfermode::Mode mode) {
|
| + int bm = index_for_blend_mode(mode);
|
| + EXPECT_PROGRAM_VALID(
|
| + &renderer_->render_pass_mask_program_aa_[precision][bm]);
|
| + EXPECT_EQ(renderer_->render_pass_mask_program_aa_[precision][bm].program(),
|
| renderer_->program_shadow_);
|
| }
|
|
|
| - void TestRenderPassMaskColorMatrixProgramAA(TexCoordPrecision precision) {
|
| + void TestRenderPassMaskColorMatrixProgramAA(TexCoordPrecision precision,
|
| + SkXfermode::Mode mode) {
|
| + int bm = index_for_blend_mode(mode);
|
| EXPECT_PROGRAM_VALID(
|
| - &renderer_->render_pass_mask_color_matrix_program_aa_[precision]);
|
| - EXPECT_EQ(renderer_->render_pass_mask_color_matrix_program_aa_[precision]
|
| - .program(),
|
| - renderer_->program_shadow_);
|
| + &renderer_->render_pass_mask_color_matrix_program_aa_[precision][bm]);
|
| + EXPECT_EQ(
|
| + renderer_->render_pass_mask_color_matrix_program_aa_[precision][bm]
|
| + .program(),
|
| + renderer_->program_shadow_);
|
| }
|
|
|
| void TestSolidColorProgramAA() {
|
| @@ -1374,191 +1401,223 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadShaderPermutations) {
|
| gfx::Transform transform_causing_aa;
|
| transform_causing_aa.Rotate(20.0);
|
|
|
| - // RenderPassProgram
|
| - child_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| - child_pass_id,
|
| - child_rect,
|
| - gfx::Transform());
|
| + for (SkXfermode::Mode mode = kDefaultBlendMode; mode <= kLastBlendMode;) {
|
| + // RenderPassProgram
|
| + render_passes_in_draw_order_.clear();
|
| + child_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| + child_pass_id,
|
| + child_rect,
|
| + gfx::Transform());
|
|
|
| - root_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| - root_pass_id,
|
| - viewport_rect,
|
| - gfx::Transform());
|
| + root_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| + root_pass_id,
|
| + viewport_rect,
|
| + gfx::Transform());
|
|
|
| - AddRenderPassQuad(
|
| - root_pass, child_pass, 0, FilterOperations(), gfx::Transform());
|
| + AddRenderPassQuad(
|
| + root_pass, child_pass, 0, FilterOperations(), gfx::Transform(), mode);
|
|
|
| - renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
|
| - renderer_->DrawFrame(&render_passes_in_draw_order_,
|
| - 1.f,
|
| - viewport_rect,
|
| - viewport_rect,
|
| - false);
|
| - TestRenderPassProgram(TexCoordPrecisionMedium);
|
| + renderer_->DecideRenderPassAllocationsForFrame(
|
| + render_passes_in_draw_order_);
|
| + renderer_->DrawFrame(&render_passes_in_draw_order_,
|
| + 1.f,
|
| + viewport_rect,
|
| + viewport_rect,
|
| + false);
|
| + TestRenderPassProgram(TexCoordPrecisionMedium, mode);
|
|
|
| - // RenderPassColorMatrixProgram
|
| - render_passes_in_draw_order_.clear();
|
| + // RenderPassColorMatrixProgram
|
| + render_passes_in_draw_order_.clear();
|
|
|
| - child_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| - child_pass_id,
|
| - child_rect,
|
| - transform_causing_aa);
|
| + child_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| + child_pass_id,
|
| + child_rect,
|
| + transform_causing_aa);
|
|
|
| - root_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| - root_pass_id,
|
| - viewport_rect,
|
| - gfx::Transform());
|
| + root_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| + root_pass_id,
|
| + viewport_rect,
|
| + gfx::Transform());
|
|
|
| - AddRenderPassQuad(root_pass, child_pass, 0, filters, gfx::Transform());
|
| + AddRenderPassQuad(
|
| + root_pass, child_pass, 0, filters, gfx::Transform(), mode);
|
|
|
| - renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
|
| - renderer_->DrawFrame(&render_passes_in_draw_order_,
|
| - 1.f,
|
| - viewport_rect,
|
| - viewport_rect,
|
| - false);
|
| - TestRenderPassColorMatrixProgram(TexCoordPrecisionMedium);
|
| + renderer_->DecideRenderPassAllocationsForFrame(
|
| + render_passes_in_draw_order_);
|
| + renderer_->DrawFrame(&render_passes_in_draw_order_,
|
| + 1.f,
|
| + viewport_rect,
|
| + viewport_rect,
|
| + false);
|
| + TestRenderPassColorMatrixProgram(TexCoordPrecisionMedium, mode);
|
|
|
| - // RenderPassMaskProgram
|
| - render_passes_in_draw_order_.clear();
|
| + // RenderPassMaskProgram
|
| + render_passes_in_draw_order_.clear();
|
|
|
| - child_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| - child_pass_id,
|
| - child_rect,
|
| - gfx::Transform());
|
| + child_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| + child_pass_id,
|
| + child_rect,
|
| + gfx::Transform());
|
|
|
| - root_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| - root_pass_id,
|
| - viewport_rect,
|
| - gfx::Transform());
|
| + root_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| + root_pass_id,
|
| + viewport_rect,
|
| + gfx::Transform());
|
|
|
| - AddRenderPassQuad(
|
| - root_pass, child_pass, mask, FilterOperations(), gfx::Transform());
|
| + AddRenderPassQuad(root_pass,
|
| + child_pass,
|
| + mask,
|
| + FilterOperations(),
|
| + gfx::Transform(),
|
| + mode);
|
|
|
| - renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
|
| - renderer_->DrawFrame(&render_passes_in_draw_order_,
|
| - 1.f,
|
| - viewport_rect,
|
| - viewport_rect,
|
| - false);
|
| - TestRenderPassMaskProgram(TexCoordPrecisionMedium);
|
| + renderer_->DecideRenderPassAllocationsForFrame(
|
| + render_passes_in_draw_order_);
|
| + renderer_->DrawFrame(&render_passes_in_draw_order_,
|
| + 1.f,
|
| + viewport_rect,
|
| + viewport_rect,
|
| + false);
|
| + TestRenderPassMaskProgram(TexCoordPrecisionMedium, mode);
|
|
|
| - // RenderPassMaskColorMatrixProgram
|
| - render_passes_in_draw_order_.clear();
|
| + // RenderPassMaskColorMatrixProgram
|
| + render_passes_in_draw_order_.clear();
|
|
|
| - child_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| - child_pass_id,
|
| - child_rect,
|
| - gfx::Transform());
|
| + child_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| + child_pass_id,
|
| + child_rect,
|
| + gfx::Transform());
|
|
|
| - root_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| - root_pass_id,
|
| - viewport_rect,
|
| - gfx::Transform());
|
| + root_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| + root_pass_id,
|
| + viewport_rect,
|
| + gfx::Transform());
|
|
|
| - AddRenderPassQuad(root_pass, child_pass, mask, filters, gfx::Transform());
|
| + AddRenderPassQuad(
|
| + root_pass, child_pass, mask, filters, gfx::Transform(), mode);
|
|
|
| - renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
|
| - renderer_->DrawFrame(&render_passes_in_draw_order_,
|
| - 1.f,
|
| - viewport_rect,
|
| - viewport_rect,
|
| - false);
|
| - TestRenderPassMaskColorMatrixProgram(TexCoordPrecisionMedium);
|
| + renderer_->DecideRenderPassAllocationsForFrame(
|
| + render_passes_in_draw_order_);
|
| + renderer_->DrawFrame(&render_passes_in_draw_order_,
|
| + 1.f,
|
| + viewport_rect,
|
| + viewport_rect,
|
| + false);
|
| + TestRenderPassMaskColorMatrixProgram(TexCoordPrecisionMedium, mode);
|
|
|
| - // RenderPassProgramAA
|
| - render_passes_in_draw_order_.clear();
|
| + // RenderPassProgramAA
|
| + render_passes_in_draw_order_.clear();
|
|
|
| - child_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| - child_pass_id,
|
| - child_rect,
|
| - transform_causing_aa);
|
| + child_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| + child_pass_id,
|
| + child_rect,
|
| + transform_causing_aa);
|
|
|
| - root_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| - root_pass_id,
|
| - viewport_rect,
|
| - gfx::Transform());
|
| + root_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| + root_pass_id,
|
| + viewport_rect,
|
| + gfx::Transform());
|
|
|
| - AddRenderPassQuad(
|
| - root_pass, child_pass, 0, FilterOperations(), transform_causing_aa);
|
| + AddRenderPassQuad(root_pass,
|
| + child_pass,
|
| + 0,
|
| + FilterOperations(),
|
| + transform_causing_aa,
|
| + mode);
|
|
|
| - renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
|
| - renderer_->DrawFrame(&render_passes_in_draw_order_,
|
| - 1.f,
|
| - viewport_rect,
|
| - viewport_rect,
|
| - false);
|
| - TestRenderPassProgramAA(TexCoordPrecisionMedium);
|
| + renderer_->DecideRenderPassAllocationsForFrame(
|
| + render_passes_in_draw_order_);
|
| + renderer_->DrawFrame(&render_passes_in_draw_order_,
|
| + 1.f,
|
| + viewport_rect,
|
| + viewport_rect,
|
| + false);
|
| + TestRenderPassProgramAA(TexCoordPrecisionMedium, mode);
|
|
|
| - // RenderPassColorMatrixProgramAA
|
| - render_passes_in_draw_order_.clear();
|
| + // RenderPassColorMatrixProgramAA
|
| + render_passes_in_draw_order_.clear();
|
|
|
| - child_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| - child_pass_id,
|
| - child_rect,
|
| - transform_causing_aa);
|
| + child_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| + child_pass_id,
|
| + child_rect,
|
| + transform_causing_aa);
|
|
|
| - root_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| - root_pass_id,
|
| - viewport_rect,
|
| - gfx::Transform());
|
| + root_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| + root_pass_id,
|
| + viewport_rect,
|
| + gfx::Transform());
|
|
|
| - AddRenderPassQuad(root_pass, child_pass, 0, filters, transform_causing_aa);
|
| + AddRenderPassQuad(
|
| + root_pass, child_pass, 0, filters, transform_causing_aa, mode);
|
|
|
| - renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
|
| - renderer_->DrawFrame(&render_passes_in_draw_order_,
|
| - 1.f,
|
| - viewport_rect,
|
| - viewport_rect,
|
| - false);
|
| - TestRenderPassColorMatrixProgramAA(TexCoordPrecisionMedium);
|
| + renderer_->DecideRenderPassAllocationsForFrame(
|
| + render_passes_in_draw_order_);
|
| + renderer_->DrawFrame(&render_passes_in_draw_order_,
|
| + 1.f,
|
| + viewport_rect,
|
| + viewport_rect,
|
| + false);
|
| + TestRenderPassColorMatrixProgramAA(TexCoordPrecisionMedium, mode);
|
|
|
| - // RenderPassMaskProgramAA
|
| - render_passes_in_draw_order_.clear();
|
| + // RenderPassMaskProgramAA
|
| + render_passes_in_draw_order_.clear();
|
|
|
| - child_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| - child_pass_id,
|
| - child_rect,
|
| - transform_causing_aa);
|
| + child_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| + child_pass_id,
|
| + child_rect,
|
| + transform_causing_aa);
|
|
|
| - root_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| - root_pass_id,
|
| - viewport_rect,
|
| - gfx::Transform());
|
| + root_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| + root_pass_id,
|
| + viewport_rect,
|
| + gfx::Transform());
|
|
|
| - AddRenderPassQuad(
|
| - root_pass, child_pass, mask, FilterOperations(), transform_causing_aa);
|
| + AddRenderPassQuad(root_pass,
|
| + child_pass,
|
| + mask,
|
| + FilterOperations(),
|
| + transform_causing_aa,
|
| + mode);
|
|
|
| - renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
|
| - renderer_->DrawFrame(&render_passes_in_draw_order_,
|
| - 1.f,
|
| - viewport_rect,
|
| - viewport_rect,
|
| - false);
|
| - TestRenderPassMaskProgramAA(TexCoordPrecisionMedium);
|
| + renderer_->DecideRenderPassAllocationsForFrame(
|
| + render_passes_in_draw_order_);
|
| + renderer_->DrawFrame(&render_passes_in_draw_order_,
|
| + 1.f,
|
| + viewport_rect,
|
| + viewport_rect,
|
| + false);
|
| + TestRenderPassMaskProgramAA(TexCoordPrecisionMedium, mode);
|
|
|
| - // RenderPassMaskColorMatrixProgramAA
|
| - render_passes_in_draw_order_.clear();
|
| + // RenderPassMaskColorMatrixProgramAA
|
| + render_passes_in_draw_order_.clear();
|
|
|
| - child_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| - child_pass_id,
|
| - child_rect,
|
| - transform_causing_aa);
|
| + child_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| + child_pass_id,
|
| + child_rect,
|
| + transform_causing_aa);
|
|
|
| - root_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| - root_pass_id,
|
| - viewport_rect,
|
| - transform_causing_aa);
|
| + root_pass = AddRenderPass(&render_passes_in_draw_order_,
|
| + root_pass_id,
|
| + viewport_rect,
|
| + transform_causing_aa);
|
|
|
| - AddRenderPassQuad(root_pass, child_pass, mask, filters, transform_causing_aa);
|
| + AddRenderPassQuad(
|
| + root_pass, child_pass, mask, filters, transform_causing_aa, mode);
|
|
|
| - renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
|
| - renderer_->DrawFrame(&render_passes_in_draw_order_,
|
| - 1.f,
|
| - viewport_rect,
|
| - viewport_rect,
|
| - false);
|
| - TestRenderPassMaskColorMatrixProgramAA(TexCoordPrecisionMedium);
|
| + renderer_->DecideRenderPassAllocationsForFrame(
|
| + render_passes_in_draw_order_);
|
| + renderer_->DrawFrame(&render_passes_in_draw_order_,
|
| + 1.f,
|
| + viewport_rect,
|
| + viewport_rect,
|
| + false);
|
| + TestRenderPassMaskColorMatrixProgramAA(TexCoordPrecisionMedium, mode);
|
| +
|
| + if (mode < kFirstBlendMode)
|
| + mode = kFirstBlendMode;
|
| + else
|
| + mode = static_cast<SkXfermode::Mode>(mode + 1);
|
| + }
|
| }
|
|
|
| // At this time, the AA code path cannot be taken if the surface's rect would
|
| @@ -1593,8 +1652,12 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadSkipsAAForClippingTransform) {
|
| viewport_rect,
|
| gfx::Transform());
|
|
|
| - AddRenderPassQuad(
|
| - root_pass, child_pass, 0, FilterOperations(), transform_preventing_aa);
|
| + AddRenderPassQuad(root_pass,
|
| + child_pass,
|
| + 0,
|
| + FilterOperations(),
|
| + transform_preventing_aa,
|
| + kDefaultBlendMode);
|
|
|
| renderer_->DecideRenderPassAllocationsForFrame(render_passes_in_draw_order_);
|
| renderer_->DrawFrame(&render_passes_in_draw_order_,
|
| @@ -1605,7 +1668,7 @@ TEST_F(GLRendererShaderTest, DrawRenderPassQuadSkipsAAForClippingTransform) {
|
|
|
| // If use_aa incorrectly ignores clipping, it will use the
|
| // RenderPassProgramAA shader instead of the RenderPassProgram.
|
| - TestRenderPassProgram(TexCoordPrecisionMedium);
|
| + TestRenderPassProgram(TexCoordPrecisionMedium, kDefaultBlendMode);
|
| }
|
|
|
| TEST_F(GLRendererShaderTest, DrawSolidColorShader) {
|
|
|