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

Unified Diff: cc/output/renderer_pixeltest.cc

Issue 952893003: Update from https://crrev.com/317530 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Fix gn for nacl Created 5 years, 10 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/output/program_binding.h ('k') | cc/output/shader.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/output/renderer_pixeltest.cc
diff --git a/cc/output/renderer_pixeltest.cc b/cc/output/renderer_pixeltest.cc
index d7d12116d2228c4b44461a3f1e52392ad06b58d1..9e9175e3fd37ce832e4cd8021ede0047dfb73876 100644
--- a/cc/output/renderer_pixeltest.cc
+++ b/cc/output/renderer_pixeltest.cc
@@ -123,19 +123,14 @@ void CreateTestTextureDrawQuad(const gfx::Rect& rect,
SkColorGetR(texel_color),
SkColorGetG(texel_color),
SkColorGetB(texel_color));
- std::vector<uint32_t> pixels(rect.size().GetArea(), pixel_color);
+ size_t num_pixels = static_cast<size_t>(rect.width()) * rect.height();
+ std::vector<uint32_t> pixels(num_pixels, pixel_color);
- ResourceProvider::ResourceId resource =
- resource_provider->CreateResource(rect.size(),
- GL_CLAMP_TO_EDGE,
- ResourceProvider::TextureHintImmutable,
- RGBA_8888);
- resource_provider->SetPixels(
- resource,
- reinterpret_cast<uint8_t*>(&pixels.front()),
- rect,
- rect,
- gfx::Vector2d());
+ ResourceProvider::ResourceId resource = resource_provider->CreateResource(
+ rect.size(), GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE,
+ RGBA_8888);
+ resource_provider->CopyToResource(
+ resource, reinterpret_cast<uint8_t*>(&pixels.front()), rect.size());
float vertex_opacity[4] = {1.0f, 1.0f, 1.0f, 1.0f};
@@ -162,6 +157,13 @@ typedef ::testing::Types<GLRenderer,
TYPED_TEST_CASE(RendererPixelTest, RendererTypes);
template <typename RendererType>
+class SoftwareRendererPixelTest : public RendererPixelTest<RendererType> {};
+
+typedef ::testing::Types<SoftwareRenderer, SoftwareRendererWithExpandedViewport>
+ SoftwareRendererTypes;
+TYPED_TEST_CASE(SoftwareRendererPixelTest, SoftwareRendererTypes);
+
+template <typename RendererType>
class FuzzyForSoftwareOnlyPixelComparator : public PixelComparator {
public:
explicit FuzzyForSoftwareOnlyPixelComparator(bool discard_alpha)
@@ -872,18 +874,13 @@ TYPED_TEST(RendererPixelTest, RenderPassAndMaskWithPartialQuad) {
ResourceProvider::ResourceId mask_resource_id =
this->resource_provider_->CreateResource(
- mask_rect.size(),
- GL_CLAMP_TO_EDGE,
- ResourceProvider::TextureHintImmutable,
- RGBA_8888);
+ mask_rect.size(), GL_CLAMP_TO_EDGE,
+ ResourceProvider::TEXTURE_HINT_IMMUTABLE, RGBA_8888);
{
SkAutoLockPixels lock(bitmap);
- this->resource_provider_->SetPixels(
- mask_resource_id,
- reinterpret_cast<uint8_t*>(bitmap.getPixels()),
- mask_rect,
- mask_rect,
- gfx::Vector2d());
+ this->resource_provider_->CopyToResource(
+ mask_resource_id, reinterpret_cast<uint8_t*>(bitmap.getPixels()),
+ mask_rect.size());
}
// This RenderPassDrawQuad does not include the full |viewport_rect| which is
@@ -1379,7 +1376,7 @@ TEST_F(GLRendererPixelTest, AntiAliasingPerspective) {
FuzzyPixelOffByOneComparator(true)));
}
-TYPED_TEST(RendererPixelTest, PictureDrawQuadIdentityScale) {
+TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadIdentityScale) {
gfx::Size pile_tile_size(1000, 1000);
gfx::Rect viewport(this->device_viewport_size_);
// TODO(enne): the renderer should figure this out on its own.
@@ -1459,7 +1456,7 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadIdentityScale) {
}
// Not WithSkiaGPUBackend since that path currently requires tiles for opacity.
-TYPED_TEST(RendererPixelTest, PictureDrawQuadOpacity) {
+TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadOpacity) {
gfx::Size pile_tile_size(1000, 1000);
gfx::Rect viewport(this->device_viewport_size_);
ResourceFormat texture_format = RGBA_8888;
@@ -1536,7 +1533,7 @@ bool IsSoftwareRenderer<SoftwareRendererWithExpandedViewport>() {
// If we disable image filtering, then a 2x2 bitmap should appear as four
// huge sharp squares.
-TYPED_TEST(RendererPixelTest, PictureDrawQuadDisableImageFiltering) {
+TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadDisableImageFiltering) {
// We only care about this in software mode since bilinear filtering is
// cheap in hardware.
if (!IsSoftwareRenderer<TypeParam>())
@@ -1593,7 +1590,7 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadDisableImageFiltering) {
}
// This disables filtering by setting |nearest_neighbor| on the PictureDrawQuad.
-TYPED_TEST(RendererPixelTest, PictureDrawQuadNearestNeighbor) {
+TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadNearestNeighbor) {
gfx::Size pile_tile_size(1000, 1000);
gfx::Rect viewport(this->device_viewport_size_);
ResourceFormat texture_format = RGBA_8888;
@@ -1662,19 +1659,13 @@ TYPED_TEST(RendererPixelTest, TileDrawQuadNearestNeighbor) {
gfx::Size tile_size(2, 2);
ResourceProvider::ResourceId resource =
this->resource_provider_->CreateResource(
- tile_size,
- GL_CLAMP_TO_EDGE,
- ResourceProvider::TextureHintImmutable,
+ tile_size, GL_CLAMP_TO_EDGE, ResourceProvider::TEXTURE_HINT_IMMUTABLE,
RGBA_8888);
{
SkAutoLockPixels lock(bitmap);
- this->resource_provider_->SetPixels(
- resource,
- static_cast<uint8_t*>(bitmap.getPixels()),
- gfx::Rect(tile_size),
- gfx::Rect(tile_size),
- gfx::Vector2d());
+ this->resource_provider_->CopyToResource(
+ resource, static_cast<uint8_t*>(bitmap.getPixels()), tile_size);
}
RenderPassId id(1, 1);
@@ -1700,7 +1691,7 @@ TYPED_TEST(RendererPixelTest, TileDrawQuadNearestNeighbor) {
ExactPixelComparator(true)));
}
-TYPED_TEST(RendererPixelTest, PictureDrawQuadNonIdentityScale) {
+TYPED_TEST(SoftwareRendererPixelTest, PictureDrawQuadNonIdentityScale) {
gfx::Size pile_tile_size(1000, 1000);
gfx::Rect viewport(this->device_viewport_size_);
// TODO(enne): the renderer should figure this out on its own.
@@ -2001,45 +1992,6 @@ TEST_F(GLRendererPixelTest, CheckReadbackSubset) {
&capture_rect));
}
-TEST_F(GLRendererPixelTest, PictureDrawQuadTexture4444) {
- gfx::Size pile_tile_size(1000, 1000);
- gfx::Rect viewport(this->device_viewport_size_);
- ResourceFormat texture_format = RGBA_4444;
- bool nearest_neighbor = false;
-
- RenderPassId id(1, 1);
- gfx::Transform transform_to_root;
- scoped_ptr<RenderPass> pass =
- CreateTestRenderPass(id, viewport, transform_to_root);
-
- // One viewport-filling blue quad
- scoped_ptr<FakePicturePile> blue_recording =
- FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size());
- SkPaint blue_paint;
- blue_paint.setColor(SK_ColorBLUE);
- blue_recording->add_draw_rect_with_paint(viewport, blue_paint);
- blue_recording->RerecordPile();
- scoped_refptr<FakePicturePileImpl> blue_pile =
- FakePicturePileImpl::CreateFromPile(blue_recording.get(), nullptr);
-
- gfx::Transform blue_content_to_target_transform;
- SharedQuadState* blue_shared_state = CreateTestSharedQuadState(
- blue_content_to_target_transform, viewport, pass.get());
-
- PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
- blue_quad->SetNew(blue_shared_state, viewport, gfx::Rect(), viewport,
- gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(),
- nearest_neighbor, texture_format, viewport, 1.f,
- blue_pile.get());
-
- RenderPassList pass_list;
- pass_list.push_back(pass.Pass());
-
- EXPECT_TRUE(this->RunPixelTest(&pass_list,
- base::FilePath(FILE_PATH_LITERAL("blue.png")),
- ExactPixelComparator(true)));
-}
-
TYPED_TEST(RendererPixelTest, WrapModeRepeat) {
gfx::Rect rect(this->device_viewport_size_);
@@ -2049,7 +2001,7 @@ TYPED_TEST(RendererPixelTest, WrapModeRepeat) {
SharedQuadState* shared_state =
CreateTestSharedQuadState(gfx::Transform(), rect, pass.get());
- gfx::Rect texture_rect(4, 4);
+ gfx::Size texture_size(4, 4);
SkPMColor colors[4] = {
SkPreMultiplyColor(SkColorSetARGB(255, 0, 255, 0)),
SkPreMultiplyColor(SkColorSetARGB(255, 0, 128, 0)),
@@ -2064,33 +2016,23 @@ TYPED_TEST(RendererPixelTest, WrapModeRepeat) {
};
ResourceProvider::ResourceId resource =
this->resource_provider_->CreateResource(
- texture_rect.size(),
- GL_REPEAT,
- ResourceProvider::TextureHintImmutable,
+ texture_size, GL_REPEAT, ResourceProvider::TEXTURE_HINT_IMMUTABLE,
RGBA_8888);
- this->resource_provider_->SetPixels(
- resource,
- reinterpret_cast<uint8_t*>(pixels),
- texture_rect,
- texture_rect,
- gfx::Vector2d());
+ this->resource_provider_->CopyToResource(
+ resource, reinterpret_cast<uint8_t*>(pixels), texture_size);
float vertex_opacity[4] = {1.0f, 1.0f, 1.0f, 1.0f};
TextureDrawQuad* texture_quad =
pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
texture_quad->SetNew(
- shared_state,
- gfx::Rect(this->device_viewport_size_),
- gfx::Rect(),
- gfx::Rect(this->device_viewport_size_),
- resource,
+ shared_state, gfx::Rect(this->device_viewport_size_), gfx::Rect(),
+ gfx::Rect(this->device_viewport_size_), resource,
true, // premultiplied_alpha
gfx::PointF(0.0f, 0.0f), // uv_top_left
gfx::PointF( // uv_bottom_right
- this->device_viewport_size_.width() / texture_rect.width(),
- this->device_viewport_size_.height() / texture_rect.height()),
- SK_ColorWHITE,
- vertex_opacity,
+ this->device_viewport_size_.width() / texture_size.width(),
+ this->device_viewport_size_.height() / texture_size.height()),
+ SK_ColorWHITE, vertex_opacity,
false, // flipped
false); // nearest_neighbor
« no previous file with comments | « cc/output/program_binding.h ('k') | cc/output/shader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698