diff options
author | e.hakkinen@samsung.com <e.hakkinen@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-13 11:27:32 +0000 |
---|---|---|
committer | e.hakkinen@samsung.com <e.hakkinen@samsung.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-13 11:28:35 +0000 |
commit | 63c6624b516b83d16a35e392b8185e43a4da344e (patch) | |
tree | a54160e9e79f058555c5ecdb8b43d736e933ba38 | |
parent | aa77269a36070dec1e748e21b4b4ef7506633a93 (diff) | |
download | chromium_src-63c6624b516b83d16a35e392b8185e43a4da344e.zip chromium_src-63c6624b516b83d16a35e392b8185e43a4da344e.tar.gz chromium_src-63c6624b516b83d16a35e392b8185e43a4da344e.tar.bz2 |
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
-rw-r--r-- | AUTHORS | 3 | ||||
-rw-r--r-- | cc/output/renderer_pixeltest.cc | 42 | ||||
-rw-r--r-- | cc/resources/platform_color.h | 2 | ||||
-rw-r--r-- | cc/test/data/blue.png | bin | 0 -> 590 bytes |
4 files changed, 45 insertions, 2 deletions
@@ -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> diff --git a/cc/output/renderer_pixeltest.cc b/cc/output/renderer_pixeltest.cc index cd1acde..d4885d3 100644 --- a/cc/output/renderer_pixeltest.cc +++ b/cc/output/renderer_pixeltest.cc @@ -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_); diff --git a/cc/resources/platform_color.h b/cc/resources/platform_color.h index ecdf7c1..4945dcc 100644 --- a/cc/resources/platform_color.h +++ b/cc/resources/platform_color.h @@ -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; diff --git a/cc/test/data/blue.png b/cc/test/data/blue.png Binary files differnew file mode 100644 index 0000000..48a2680 --- /dev/null +++ b/cc/test/data/blue.png |