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

Unified Diff: cc/test/pixel_test.cc

Issue 2769863003: cc: Add pixel tests for transfer function shaders (Closed)
Patch Set: Leave transfer substitutions unchanged Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/test/pixel_test.h ('k') | ui/gfx/color_transform.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/test/pixel_test.cc
diff --git a/cc/test/pixel_test.cc b/cc/test/pixel_test.cc
index 2731c76dba0d08e365fc92fd1be2b9d718664857..6abb7968f5c466e644f006956ec68f36e6ae8e51 100644
--- a/cc/test/pixel_test.cc
+++ b/cc/test/pixel_test.cc
@@ -92,6 +92,43 @@ bool PixelTest::RunPixelTestWithReadbackTargetAndArea(
return PixelsMatchReference(ref_file, comparator);
}
+bool PixelTest::RunPixelTest(RenderPassList* pass_list,
+ std::vector<SkColor>* ref_pixels,
+ const PixelComparator& comparator) {
+ base::RunLoop run_loop;
+ RenderPass* target = pass_list->back().get();
+
+ std::unique_ptr<CopyOutputRequest> request =
+ CopyOutputRequest::CreateBitmapRequest(
+ base::Bind(&PixelTest::ReadbackResult, base::Unretained(this),
+ run_loop.QuitClosure()));
+ target->copy_requests.push_back(std::move(request));
+
+ if (software_renderer_) {
+ software_renderer_->SetDisablePictureQuadImageFiltering(
+ disable_picture_quad_image_filtering_);
+ }
+
+ renderer_->DecideRenderPassAllocationsForFrame(*pass_list);
+ float device_scale_factor = 1.f;
+ renderer_->DrawFrame(pass_list, device_scale_factor, device_viewport_size_);
+
+ // Wait for the readback to complete.
+ if (output_surface_->context_provider())
+ output_surface_->context_provider()->ContextGL()->Finish();
+ run_loop.Run();
+
+ // Need to wrap |ref_pixels| in a SkBitmap.
+ DCHECK_EQ(ref_pixels->size(), static_cast<size_t>(result_bitmap_->width() *
+ result_bitmap_->height()));
+ SkBitmap ref_pixels_bitmap;
+ ref_pixels_bitmap.installPixels(
+ SkImageInfo::MakeN32Premul(result_bitmap_->width(),
+ result_bitmap_->height()),
+ ref_pixels->data(), result_bitmap_->width() * sizeof(SkColor));
+ return comparator.Compare(*result_bitmap_, ref_pixels_bitmap);
+}
+
void PixelTest::ReadbackResult(base::Closure quit_run_loop,
std::unique_ptr<CopyOutputResult> result) {
ASSERT_TRUE(result->HasBitmap());
« no previous file with comments | « cc/test/pixel_test.h ('k') | ui/gfx/color_transform.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698