| 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 #include "base/message_loop/message_loop.h" | 5 #include "base/message_loop/message_loop.h" |
| 6 #include "cc/layers/append_quads_data.h" | |
| 7 #include "cc/output/gl_renderer.h" | 6 #include "cc/output/gl_renderer.h" |
| 8 #include "cc/quads/draw_quad.h" | 7 #include "cc/quads/draw_quad.h" |
| 9 #include "cc/quads/picture_draw_quad.h" | 8 #include "cc/quads/picture_draw_quad.h" |
| 10 #include "cc/quads/texture_draw_quad.h" | 9 #include "cc/quads/texture_draw_quad.h" |
| 11 #include "cc/resources/video_resource_updater.h" | 10 #include "cc/resources/video_resource_updater.h" |
| 12 #include "cc/test/fake_picture_pile_impl.h" | 11 #include "cc/test/fake_picture_pile_impl.h" |
| 13 #include "cc/test/pixel_test.h" | 12 #include "cc/test/pixel_test.h" |
| 14 #include "gpu/command_buffer/client/gles2_interface.h" | 13 #include "gpu/command_buffer/client/gles2_interface.h" |
| 15 #include "third_party/skia/include/core/SkColorPriv.h" | 14 #include "third_party/skia/include/core/SkColorPriv.h" |
| 16 #include "third_party/skia/include/core/SkImageFilter.h" | 15 #include "third_party/skia/include/core/SkImageFilter.h" |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 192 } | 191 } |
| 193 | 192 |
| 194 void CreateTestYUVVideoDrawQuad_FromVideoFrame( | 193 void CreateTestYUVVideoDrawQuad_FromVideoFrame( |
| 195 const SharedQuadState* shared_state, | 194 const SharedQuadState* shared_state, |
| 196 scoped_refptr<media::VideoFrame> video_frame, | 195 scoped_refptr<media::VideoFrame> video_frame, |
| 197 uint8 alpha_value, | 196 uint8 alpha_value, |
| 198 const gfx::RectF& tex_coord_rect, | 197 const gfx::RectF& tex_coord_rect, |
| 199 RenderPass* render_pass, | 198 RenderPass* render_pass, |
| 200 VideoResourceUpdater* video_resource_updater, | 199 VideoResourceUpdater* video_resource_updater, |
| 201 const gfx::Rect& rect, | 200 const gfx::Rect& rect, |
| 201 const gfx::Rect& visible_rect, |
| 202 ResourceProvider* resource_provider) { | 202 ResourceProvider* resource_provider) { |
| 203 const bool with_alpha = (video_frame->format() == media::VideoFrame::YV12A); | 203 const bool with_alpha = (video_frame->format() == media::VideoFrame::YV12A); |
| 204 const YUVVideoDrawQuad::ColorSpace color_space = | 204 const YUVVideoDrawQuad::ColorSpace color_space = |
| 205 (video_frame->format() == media::VideoFrame::YV12J | 205 (video_frame->format() == media::VideoFrame::YV12J |
| 206 ? YUVVideoDrawQuad::JPEG | 206 ? YUVVideoDrawQuad::JPEG |
| 207 : YUVVideoDrawQuad::REC_601); | 207 : YUVVideoDrawQuad::REC_601); |
| 208 const gfx::Rect opaque_rect(0, 0, 0, 0); | 208 const gfx::Rect opaque_rect(0, 0, 0, 0); |
| 209 | 209 |
| 210 if (with_alpha) { | 210 if (with_alpha) { |
| 211 memset(video_frame->data(media::VideoFrame::kAPlane), alpha_value, | 211 memset(video_frame->data(media::VideoFrame::kAPlane), alpha_value, |
| (...skipping 29 matching lines...) Expand all Loading... |
| 241 ResourceProvider::ResourceId a_resource = 0; | 241 ResourceProvider::ResourceId a_resource = 0; |
| 242 if (with_alpha) { | 242 if (with_alpha) { |
| 243 a_resource = resource_provider->CreateResourceFromTextureMailbox( | 243 a_resource = resource_provider->CreateResourceFromTextureMailbox( |
| 244 resources.mailboxes[media::VideoFrame::kAPlane], | 244 resources.mailboxes[media::VideoFrame::kAPlane], |
| 245 SingleReleaseCallbackImpl::Create( | 245 SingleReleaseCallbackImpl::Create( |
| 246 resources.release_callbacks[media::VideoFrame::kAPlane])); | 246 resources.release_callbacks[media::VideoFrame::kAPlane])); |
| 247 } | 247 } |
| 248 | 248 |
| 249 YUVVideoDrawQuad* yuv_quad = | 249 YUVVideoDrawQuad* yuv_quad = |
| 250 render_pass->CreateAndAppendDrawQuad<YUVVideoDrawQuad>(); | 250 render_pass->CreateAndAppendDrawQuad<YUVVideoDrawQuad>(); |
| 251 yuv_quad->SetNew(shared_state, rect, opaque_rect, rect, tex_coord_rect, | 251 yuv_quad->SetNew(shared_state, rect, opaque_rect, visible_rect, |
| 252 video_frame->coded_size(), y_resource, u_resource, | 252 tex_coord_rect, video_frame->coded_size(), y_resource, |
| 253 v_resource, a_resource, color_space); | 253 u_resource, v_resource, a_resource, color_space); |
| 254 } | 254 } |
| 255 | 255 |
| 256 void CreateTestYUVVideoDrawQuad_Striped( | 256 void CreateTestYUVVideoDrawQuad_Striped( |
| 257 const SharedQuadState* shared_state, | 257 const SharedQuadState* shared_state, |
| 258 media::VideoFrame::Format format, | 258 media::VideoFrame::Format format, |
| 259 bool is_transparent, | 259 bool is_transparent, |
| 260 const gfx::RectF& tex_coord_rect, | 260 const gfx::RectF& tex_coord_rect, |
| 261 RenderPass* render_pass, | 261 RenderPass* render_pass, |
| 262 VideoResourceUpdater* video_resource_updater, | 262 VideoResourceUpdater* video_resource_updater, |
| 263 const gfx::Rect& rect, | 263 const gfx::Rect& rect, |
| 264 const gfx::Rect& visible_rect, |
| 264 ResourceProvider* resource_provider) { | 265 ResourceProvider* resource_provider) { |
| 265 scoped_refptr<media::VideoFrame> video_frame = media::VideoFrame::CreateFrame( | 266 scoped_refptr<media::VideoFrame> video_frame = media::VideoFrame::CreateFrame( |
| 266 format, rect.size(), rect, rect.size(), base::TimeDelta()); | 267 format, rect.size(), rect, rect.size(), base::TimeDelta()); |
| 267 | 268 |
| 268 // YUV values representing a striped pattern, for validating texture | 269 // YUV values representing a striped pattern, for validating texture |
| 269 // coordinates for sampling. | 270 // coordinates for sampling. |
| 270 uint8_t y_value = 0; | 271 uint8_t y_value = 0; |
| 271 uint8_t u_value = 0; | 272 uint8_t u_value = 0; |
| 272 uint8_t v_value = 0; | 273 uint8_t v_value = 0; |
| 273 for (int i = 0; i < video_frame->rows(media::VideoFrame::kYPlane); ++i) { | 274 for (int i = 0; i < video_frame->rows(media::VideoFrame::kYPlane); ++i) { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 285 video_frame->stride(media::VideoFrame::kVPlane) * i; | 286 video_frame->stride(media::VideoFrame::kVPlane) * i; |
| 286 for (int j = 0; j < video_frame->row_bytes(media::VideoFrame::kUPlane); | 287 for (int j = 0; j < video_frame->row_bytes(media::VideoFrame::kUPlane); |
| 287 ++j) { | 288 ++j) { |
| 288 u_row[j] = (u_value += 3); | 289 u_row[j] = (u_value += 3); |
| 289 v_row[j] = (v_value += 5); | 290 v_row[j] = (v_value += 5); |
| 290 } | 291 } |
| 291 } | 292 } |
| 292 uint8 alpha_value = is_transparent ? 0 : 128; | 293 uint8 alpha_value = is_transparent ? 0 : 128; |
| 293 CreateTestYUVVideoDrawQuad_FromVideoFrame( | 294 CreateTestYUVVideoDrawQuad_FromVideoFrame( |
| 294 shared_state, video_frame, alpha_value, tex_coord_rect, render_pass, | 295 shared_state, video_frame, alpha_value, tex_coord_rect, render_pass, |
| 295 video_resource_updater, rect, resource_provider); | 296 video_resource_updater, rect, visible_rect, resource_provider); |
| 296 } | 297 } |
| 297 | 298 |
| 298 // Creates a video frame of size background_size filled with yuv_background, | 299 // Creates a video frame of size background_size filled with yuv_background, |
| 299 // and then draws a foreground rectangle in a different color on top of | 300 // and then draws a foreground rectangle in a different color on top of |
| 300 // that. The foreground rectangle must have coordinates that are divisible | 301 // that. The foreground rectangle must have coordinates that are divisible |
| 301 // by 2 because YUV is a block format. | 302 // by 2 because YUV is a block format. |
| 302 void CreateTestYUVVideoDrawQuad_TwoColor( | 303 void CreateTestYUVVideoDrawQuad_TwoColor( |
| 303 const SharedQuadState* shared_state, | 304 const SharedQuadState* shared_state, |
| 304 media::VideoFrame::Format format, | 305 media::VideoFrame::Format format, |
| 305 bool is_transparent, | 306 bool is_transparent, |
| 306 const gfx::RectF& tex_coord_rect, | 307 const gfx::RectF& tex_coord_rect, |
| 307 const gfx::Size& background_size, | 308 const gfx::Size& background_size, |
| 309 const gfx::Rect& visible_rect, |
| 308 uint8 y_background, | 310 uint8 y_background, |
| 309 uint8 u_background, | 311 uint8 u_background, |
| 310 uint8 v_background, | 312 uint8 v_background, |
| 311 const gfx::Rect& foreground_rect, | 313 const gfx::Rect& foreground_rect, |
| 312 uint8 y_foreground, | 314 uint8 y_foreground, |
| 313 uint8 u_foreground, | 315 uint8 u_foreground, |
| 314 uint8 v_foreground, | 316 uint8 v_foreground, |
| 315 RenderPass* render_pass, | 317 RenderPass* render_pass, |
| 316 VideoResourceUpdater* video_resource_updater, | 318 VideoResourceUpdater* video_resource_updater, |
| 317 ResourceProvider* resource_provider) { | 319 ResourceProvider* resource_provider) { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 349 for (int x = sample_rect.x(); x < sample_rect.right(); ++x) { | 351 for (int x = sample_rect.x(); x < sample_rect.right(); ++x) { |
| 350 size_t offset = y * video_frame->stride(planes[i]) + x; | 352 size_t offset = y * video_frame->stride(planes[i]) + x; |
| 351 video_frame->data(planes[i])[offset] = yuv_foreground[i]; | 353 video_frame->data(planes[i])[offset] = yuv_foreground[i]; |
| 352 } | 354 } |
| 353 } | 355 } |
| 354 } | 356 } |
| 355 | 357 |
| 356 uint8 alpha_value = 255; | 358 uint8 alpha_value = 255; |
| 357 CreateTestYUVVideoDrawQuad_FromVideoFrame( | 359 CreateTestYUVVideoDrawQuad_FromVideoFrame( |
| 358 shared_state, video_frame, alpha_value, tex_coord_rect, render_pass, | 360 shared_state, video_frame, alpha_value, tex_coord_rect, render_pass, |
| 359 video_resource_updater, rect, resource_provider); | 361 video_resource_updater, rect, visible_rect, resource_provider); |
| 360 } | 362 } |
| 361 | 363 |
| 362 void CreateTestYUVVideoDrawQuad_Solid( | 364 void CreateTestYUVVideoDrawQuad_Solid( |
| 363 const SharedQuadState* shared_state, | 365 const SharedQuadState* shared_state, |
| 364 media::VideoFrame::Format format, | 366 media::VideoFrame::Format format, |
| 365 bool is_transparent, | 367 bool is_transparent, |
| 366 const gfx::RectF& tex_coord_rect, | 368 const gfx::RectF& tex_coord_rect, |
| 367 uint8 y, | 369 uint8 y, |
| 368 uint8 u, | 370 uint8 u, |
| 369 uint8 v, | 371 uint8 v, |
| 370 RenderPass* render_pass, | 372 RenderPass* render_pass, |
| 371 VideoResourceUpdater* video_resource_updater, | 373 VideoResourceUpdater* video_resource_updater, |
| 372 const gfx::Rect& rect, | 374 const gfx::Rect& rect, |
| 375 const gfx::Rect& visible_rect, |
| 373 ResourceProvider* resource_provider) { | 376 ResourceProvider* resource_provider) { |
| 374 scoped_refptr<media::VideoFrame> video_frame = media::VideoFrame::CreateFrame( | 377 scoped_refptr<media::VideoFrame> video_frame = media::VideoFrame::CreateFrame( |
| 375 format, rect.size(), rect, rect.size(), base::TimeDelta()); | 378 format, rect.size(), rect, rect.size(), base::TimeDelta()); |
| 376 | 379 |
| 377 // YUV values of a solid, constant, color. Useful for testing that color | 380 // YUV values of a solid, constant, color. Useful for testing that color |
| 378 // space/color range are being handled properly. | 381 // space/color range are being handled properly. |
| 379 memset(video_frame->data(media::VideoFrame::kYPlane), y, | 382 memset(video_frame->data(media::VideoFrame::kYPlane), y, |
| 380 video_frame->stride(media::VideoFrame::kYPlane) * | 383 video_frame->stride(media::VideoFrame::kYPlane) * |
| 381 video_frame->rows(media::VideoFrame::kYPlane)); | 384 video_frame->rows(media::VideoFrame::kYPlane)); |
| 382 memset(video_frame->data(media::VideoFrame::kUPlane), u, | 385 memset(video_frame->data(media::VideoFrame::kUPlane), u, |
| 383 video_frame->stride(media::VideoFrame::kUPlane) * | 386 video_frame->stride(media::VideoFrame::kUPlane) * |
| 384 video_frame->rows(media::VideoFrame::kUPlane)); | 387 video_frame->rows(media::VideoFrame::kUPlane)); |
| 385 memset(video_frame->data(media::VideoFrame::kVPlane), v, | 388 memset(video_frame->data(media::VideoFrame::kVPlane), v, |
| 386 video_frame->stride(media::VideoFrame::kVPlane) * | 389 video_frame->stride(media::VideoFrame::kVPlane) * |
| 387 video_frame->rows(media::VideoFrame::kVPlane)); | 390 video_frame->rows(media::VideoFrame::kVPlane)); |
| 388 | 391 |
| 389 uint8 alpha_value = is_transparent ? 0 : 128; | 392 uint8 alpha_value = is_transparent ? 0 : 128; |
| 390 CreateTestYUVVideoDrawQuad_FromVideoFrame( | 393 CreateTestYUVVideoDrawQuad_FromVideoFrame( |
| 391 shared_state, video_frame, alpha_value, tex_coord_rect, render_pass, | 394 shared_state, video_frame, alpha_value, tex_coord_rect, render_pass, |
| 392 video_resource_updater, rect, resource_provider); | 395 video_resource_updater, rect, visible_rect, resource_provider); |
| 393 } | 396 } |
| 394 | 397 |
| 395 typedef ::testing::Types<GLRenderer, | 398 typedef ::testing::Types<GLRenderer, |
| 396 SoftwareRenderer, | 399 SoftwareRenderer, |
| 397 GLRendererWithExpandedViewport, | 400 GLRendererWithExpandedViewport, |
| 398 SoftwareRendererWithExpandedViewport> RendererTypes; | 401 SoftwareRendererWithExpandedViewport> RendererTypes; |
| 399 TYPED_TEST_CASE(RendererPixelTest, RendererTypes); | 402 TYPED_TEST_CASE(RendererPixelTest, RendererTypes); |
| 400 | 403 |
| 401 template <typename RendererType> | 404 template <typename RendererType> |
| 402 class SoftwareRendererPixelTest : public RendererPixelTest<RendererType> {}; | 405 class SoftwareRendererPixelTest : public RendererPixelTest<RendererType> {}; |
| (...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 814 TYPED_TEST(IntersectingQuadGLPixelTest, YUVVideoQuads) { | 817 TYPED_TEST(IntersectingQuadGLPixelTest, YUVVideoQuads) { |
| 815 this->SetupQuadStateAndRenderPass(); | 818 this->SetupQuadStateAndRenderPass(); |
| 816 gfx::Rect inner_rect( | 819 gfx::Rect inner_rect( |
| 817 ((this->quad_rect_.x() + (this->quad_rect_.width() / 4)) & ~0xF), | 820 ((this->quad_rect_.x() + (this->quad_rect_.width() / 4)) & ~0xF), |
| 818 ((this->quad_rect_.y() + (this->quad_rect_.height() / 4)) & ~0xF), | 821 ((this->quad_rect_.y() + (this->quad_rect_.height() / 4)) & ~0xF), |
| 819 (this->quad_rect_.width() / 2) & ~0xF, | 822 (this->quad_rect_.width() / 2) & ~0xF, |
| 820 (this->quad_rect_.height() / 2) & ~0xF); | 823 (this->quad_rect_.height() / 2) & ~0xF); |
| 821 | 824 |
| 822 CreateTestYUVVideoDrawQuad_TwoColor( | 825 CreateTestYUVVideoDrawQuad_TwoColor( |
| 823 this->front_quad_state_, media::VideoFrame::YV12J, false, | 826 this->front_quad_state_, media::VideoFrame::YV12J, false, |
| 824 gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), this->quad_rect_.size(), 0, 128, 128, | 827 gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), this->quad_rect_.size(), |
| 825 inner_rect, 29, 255, 107, this->render_pass_.get(), | 828 this->quad_rect_, 0, 128, 128, inner_rect, 29, 255, 107, |
| 826 this->video_resource_updater_.get(), this->resource_provider_.get()); | 829 this->render_pass_.get(), this->video_resource_updater_.get(), |
| 830 this->resource_provider_.get()); |
| 827 | 831 |
| 828 CreateTestYUVVideoDrawQuad_TwoColor( | 832 CreateTestYUVVideoDrawQuad_TwoColor( |
| 829 this->back_quad_state_, media::VideoFrame::YV12J, false, | 833 this->back_quad_state_, media::VideoFrame::YV12J, false, |
| 830 gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), this->quad_rect_.size(), 149, 43, 21, | 834 gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f), this->quad_rect_.size(), |
| 831 inner_rect, 0, 128, 128, this->render_pass_.get(), | 835 this->quad_rect_, 149, 43, 21, inner_rect, 0, 128, 128, |
| 832 this->video_resource_updater2_.get(), this->resource_provider_.get()); | 836 this->render_pass_.get(), this->video_resource_updater2_.get(), |
| 837 this->resource_provider_.get()); |
| 833 | 838 |
| 834 SCOPED_TRACE("IntersectingVideoQuads"); | 839 SCOPED_TRACE("IntersectingVideoQuads"); |
| 835 this->template AppendBackgroundAndRunTest<YUVVideoDrawQuad>( | 840 this->template AppendBackgroundAndRunTest<YUVVideoDrawQuad>( |
| 836 FuzzyPixelOffByOneComparator(false)); | 841 FuzzyPixelOffByOneComparator(false)); |
| 837 } | 842 } |
| 838 | 843 |
| 839 // TODO(skaslev): The software renderer does not support non-premultplied alpha. | 844 // TODO(skaslev): The software renderer does not support non-premultplied alpha. |
| 840 TEST_F(GLRendererPixelTest, NonPremultipliedTextureWithoutBackground) { | 845 TEST_F(GLRendererPixelTest, NonPremultipliedTextureWithoutBackground) { |
| 841 gfx::Rect rect(this->device_viewport_size_); | 846 gfx::Rect rect(this->device_viewport_size_); |
| 842 | 847 |
| (...skipping 1227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2070 SkCanvas canvas(bitmap); | 2075 SkCanvas canvas(bitmap); |
| 2071 canvas.drawPoint(0, 0, SK_ColorGREEN); | 2076 canvas.drawPoint(0, 0, SK_ColorGREEN); |
| 2072 canvas.drawPoint(0, 1, SK_ColorBLUE); | 2077 canvas.drawPoint(0, 1, SK_ColorBLUE); |
| 2073 canvas.drawPoint(1, 0, SK_ColorBLUE); | 2078 canvas.drawPoint(1, 0, SK_ColorBLUE); |
| 2074 canvas.drawPoint(1, 1, SK_ColorGREEN); | 2079 canvas.drawPoint(1, 1, SK_ColorGREEN); |
| 2075 } | 2080 } |
| 2076 | 2081 |
| 2077 scoped_ptr<FakePicturePile> recording = | 2082 scoped_ptr<FakePicturePile> recording = |
| 2078 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); | 2083 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); |
| 2079 SkPaint paint; | 2084 SkPaint paint; |
| 2080 paint.setFilterLevel(SkPaint::kLow_FilterLevel); | 2085 paint.setFilterQuality(kLow_SkFilterQuality); |
| 2081 recording->add_draw_bitmap_with_paint(bitmap, gfx::Point(), paint); | 2086 recording->add_draw_bitmap_with_paint(bitmap, gfx::Point(), paint); |
| 2082 recording->RerecordPile(); | 2087 recording->RerecordPile(); |
| 2083 scoped_refptr<FakePicturePileImpl> pile = | 2088 scoped_refptr<FakePicturePileImpl> pile = |
| 2084 FakePicturePileImpl::CreateFromPile(recording.get(), nullptr); | 2089 FakePicturePileImpl::CreateFromPile(recording.get(), nullptr); |
| 2085 | 2090 |
| 2086 gfx::Transform content_to_target_transform; | 2091 gfx::Transform content_to_target_transform; |
| 2087 SharedQuadState* shared_state = CreateTestSharedQuadState( | 2092 SharedQuadState* shared_state = CreateTestSharedQuadState( |
| 2088 content_to_target_transform, viewport, pass.get()); | 2093 content_to_target_transform, viewport, pass.get()); |
| 2089 | 2094 |
| 2090 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2095 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2122 SkCanvas canvas(bitmap); | 2127 SkCanvas canvas(bitmap); |
| 2123 canvas.drawPoint(0, 0, SK_ColorGREEN); | 2128 canvas.drawPoint(0, 0, SK_ColorGREEN); |
| 2124 canvas.drawPoint(0, 1, SK_ColorBLUE); | 2129 canvas.drawPoint(0, 1, SK_ColorBLUE); |
| 2125 canvas.drawPoint(1, 0, SK_ColorBLUE); | 2130 canvas.drawPoint(1, 0, SK_ColorBLUE); |
| 2126 canvas.drawPoint(1, 1, SK_ColorGREEN); | 2131 canvas.drawPoint(1, 1, SK_ColorGREEN); |
| 2127 } | 2132 } |
| 2128 | 2133 |
| 2129 scoped_ptr<FakePicturePile> recording = | 2134 scoped_ptr<FakePicturePile> recording = |
| 2130 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); | 2135 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); |
| 2131 SkPaint paint; | 2136 SkPaint paint; |
| 2132 paint.setFilterLevel(SkPaint::kLow_FilterLevel); | 2137 paint.setFilterQuality(kLow_SkFilterQuality); |
| 2133 recording->add_draw_bitmap_with_paint(bitmap, gfx::Point(), paint); | 2138 recording->add_draw_bitmap_with_paint(bitmap, gfx::Point(), paint); |
| 2134 recording->RerecordPile(); | 2139 recording->RerecordPile(); |
| 2135 scoped_refptr<FakePicturePileImpl> pile = | 2140 scoped_refptr<FakePicturePileImpl> pile = |
| 2136 FakePicturePileImpl::CreateFromPile(recording.get(), nullptr); | 2141 FakePicturePileImpl::CreateFromPile(recording.get(), nullptr); |
| 2137 | 2142 |
| 2138 gfx::Transform content_to_target_transform; | 2143 gfx::Transform content_to_target_transform; |
| 2139 SharedQuadState* shared_state = CreateTestSharedQuadState( | 2144 SharedQuadState* shared_state = CreateTestSharedQuadState( |
| 2140 content_to_target_transform, viewport, pass.get()); | 2145 content_to_target_transform, viewport, pass.get()); |
| 2141 | 2146 |
| 2142 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2147 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
| (...skipping 516 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2659 ? FILE_PATH_LITERAL("four_blue_green_checkers.png") | 2664 ? FILE_PATH_LITERAL("four_blue_green_checkers.png") |
| 2660 : FILE_PATH_LITERAL("checkers_big.png"); | 2665 : FILE_PATH_LITERAL("checkers_big.png"); |
| 2661 EXPECT_TRUE(this->RunPixelTest(&pass_list, base::FilePath(path), | 2666 EXPECT_TRUE(this->RunPixelTest(&pass_list, base::FilePath(path), |
| 2662 ExactPixelComparator(true))); | 2667 ExactPixelComparator(true))); |
| 2663 } | 2668 } |
| 2664 | 2669 |
| 2665 #endif // !defined(OS_ANDROID) | 2670 #endif // !defined(OS_ANDROID) |
| 2666 | 2671 |
| 2667 } // namespace | 2672 } // namespace |
| 2668 } // namespace cc | 2673 } // namespace cc |
| OLD | NEW |