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 |