Fix interchange of red and blue content when using rgba_4444_textures

Content is swizzled when texture format has different component order
than expected format by platform. RGBA_4444 implies to use 4444 bits and
does not affect component order. So, no need to swizzle contents.

BUG=399634

Review URL: https://codereview.chromium.org/460563003

Cr-Commit-Position: refs/heads/master@{#289266}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289266 0039d316-1c4b-4281-b951-d872f2087c98
parent aa77269a
......@@ -109,7 +109,7 @@ Dongwoo Joshua Im <dw.im@samsung.com>
Douglas F. Turner <doug.turner@gmail.com>
Eduardo Lima (Etrunko) <eduardo.lima@intel.com>
Edward Crossman <tedoc2000@gmail.com>
Eero Häkkinen <e.hakkinen@partner.samsung.com>
Eero Häkkinen <e.hakkinen@samsung.com>
Egor Starkov <egor.starkov@samsung.com>
Ehsan Akhgari <ehsan.akhgari@gmail.com>
Elan Ruusamäe <elan.ruusamae@gmail.com>
......@@ -366,6 +366,7 @@ Sam McDonald <sam@sammcd.com>
Sanjoy Pal <ncj674@motorola.com>
Sanjoy Pal <sanjoy.pal@samsung.com>
Sanne Wouda <sanne.wouda@gmail.com>
Sarath Singapati <s.singapati@samsung.com>
Sathish Kuppuswamy <sathish.kuppuswamy@intel.com>
Satoshi Matsuzaki <satoshi.matsuzaki@gmail.com>
Sayan Nayak <sayan.nayak@samsung.com>
......
......@@ -2108,6 +2108,48 @@ TYPED_TEST(RendererPixelTest, PictureDrawQuadNonIdentityScale) {
ExactPixelComparator(true)));
}
TEST_F(GLRendererPixelTest, PictureDrawQuadTexture4444) {
gfx::Size pile_tile_size(1000, 1000);
gfx::Rect viewport(this->device_viewport_size_);
ResourceFormat texture_format = RGBA_4444;
RenderPass::Id id(1, 1);
gfx::Transform transform_to_root;
scoped_ptr<RenderPass> pass =
CreateTestRenderPass(id, viewport, transform_to_root);
// One viewport-filling blue quad
scoped_refptr<FakePicturePileImpl> blue_pile =
FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size());
SkPaint blue_paint;
blue_paint.setColor(SK_ColorBLUE);
blue_pile->add_draw_rect_with_paint(viewport, blue_paint);
blue_pile->RerecordPile();
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(),
texture_format,
viewport,
1.f,
PicturePileImpl::CreateFromOther(blue_pile));
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_);
......
......@@ -44,7 +44,7 @@ class PlatformColor {
case SOURCE_FORMAT_RGBA8:
return format == RGBA_8888 || format == RGBA_4444;
case SOURCE_FORMAT_BGRA8:
return format == BGRA_8888;
return format == BGRA_8888 || format == RGBA_4444;
}
NOTREACHED();
return false;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment