OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/message_loop/message_loop.h" | 5 #include "base/message_loop/message_loop.h" |
6 #include "cc/layers/append_quads_data.h" | 6 #include "cc/layers/append_quads_data.h" |
7 #include "cc/output/gl_renderer.h" | 7 #include "cc/output/gl_renderer.h" |
8 #include "cc/quads/draw_quad.h" | 8 #include "cc/quads/draw_quad.h" |
9 #include "cc/quads/picture_draw_quad.h" | 9 #include "cc/quads/picture_draw_quad.h" |
10 #include "cc/quads/texture_draw_quad.h" | 10 #include "cc/quads/texture_draw_quad.h" |
(...skipping 1825 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1836 | 1836 |
1837 RenderPassId id(1, 1); | 1837 RenderPassId id(1, 1); |
1838 gfx::Transform transform_to_root; | 1838 gfx::Transform transform_to_root; |
1839 scoped_ptr<RenderPass> pass = | 1839 scoped_ptr<RenderPass> pass = |
1840 CreateTestRenderPass(id, viewport, transform_to_root); | 1840 CreateTestRenderPass(id, viewport, transform_to_root); |
1841 | 1841 |
1842 // One clipped blue quad in the lower right corner. Outside the clip | 1842 // One clipped blue quad in the lower right corner. Outside the clip |
1843 // is red, which should not appear. | 1843 // is red, which should not appear. |
1844 gfx::Rect blue_rect(gfx::Size(100, 100)); | 1844 gfx::Rect blue_rect(gfx::Size(100, 100)); |
1845 gfx::Rect blue_clip_rect(gfx::Point(50, 50), gfx::Size(50, 50)); | 1845 gfx::Rect blue_clip_rect(gfx::Point(50, 50), gfx::Size(50, 50)); |
1846 scoped_refptr<FakePicturePileImpl> blue_pile = | 1846 |
1847 FakePicturePileImpl::CreateFilledPile(pile_tile_size, blue_rect.size()); | 1847 scoped_ptr<FakePicturePile> blue_recording = |
| 1848 FakePicturePile::CreateFilledPile(pile_tile_size, blue_rect.size()); |
1848 SkPaint red_paint; | 1849 SkPaint red_paint; |
1849 red_paint.setColor(SK_ColorRED); | 1850 red_paint.setColor(SK_ColorRED); |
1850 blue_pile->add_draw_rect_with_paint(blue_rect, red_paint); | 1851 blue_recording->add_draw_rect_with_paint(blue_rect, red_paint); |
1851 SkPaint blue_paint; | 1852 SkPaint blue_paint; |
1852 blue_paint.setColor(SK_ColorBLUE); | 1853 blue_paint.setColor(SK_ColorBLUE); |
1853 blue_pile->add_draw_rect_with_paint(blue_clip_rect, blue_paint); | 1854 blue_recording->add_draw_rect_with_paint(blue_clip_rect, blue_paint); |
1854 blue_pile->RerecordPile(); | 1855 blue_recording->RerecordPile(); |
| 1856 |
| 1857 scoped_refptr<FakePicturePileImpl> blue_pile = |
| 1858 FakePicturePileImpl::CreateFromPile(blue_recording.get(), nullptr); |
1855 | 1859 |
1856 gfx::Transform blue_content_to_target_transform; | 1860 gfx::Transform blue_content_to_target_transform; |
1857 gfx::Vector2d offset(viewport.bottom_right() - blue_rect.bottom_right()); | 1861 gfx::Vector2d offset(viewport.bottom_right() - blue_rect.bottom_right()); |
1858 blue_content_to_target_transform.Translate(offset.x(), offset.y()); | 1862 blue_content_to_target_transform.Translate(offset.x(), offset.y()); |
1859 gfx::RectF blue_scissor_rect = blue_clip_rect; | 1863 gfx::RectF blue_scissor_rect = blue_clip_rect; |
1860 blue_content_to_target_transform.TransformRect(&blue_scissor_rect); | 1864 blue_content_to_target_transform.TransformRect(&blue_scissor_rect); |
1861 SharedQuadState* blue_shared_state = | 1865 SharedQuadState* blue_shared_state = |
1862 CreateTestSharedQuadStateClipped(blue_content_to_target_transform, | 1866 CreateTestSharedQuadStateClipped(blue_content_to_target_transform, |
1863 blue_rect, | 1867 blue_rect, |
1864 gfx::ToEnclosingRect(blue_scissor_rect), | 1868 gfx::ToEnclosingRect(blue_scissor_rect), |
1865 pass.get()); | 1869 pass.get()); |
1866 | 1870 |
1867 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1871 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1868 | 1872 |
1869 blue_quad->SetNew(blue_shared_state, | 1873 blue_quad->SetNew(blue_shared_state, |
1870 viewport, // Intentionally bigger than clip. | 1874 viewport, // Intentionally bigger than clip. |
1871 gfx::Rect(), viewport, gfx::RectF(viewport), | 1875 gfx::Rect(), viewport, gfx::RectF(viewport), |
1872 viewport.size(), nearest_neighbor, texture_format, viewport, | 1876 viewport.size(), nearest_neighbor, texture_format, viewport, |
1873 1.f, blue_pile.get()); | 1877 1.f, blue_pile.get()); |
1874 | 1878 |
1875 // One viewport-filling green quad. | 1879 // One viewport-filling green quad. |
1876 scoped_refptr<FakePicturePileImpl> green_pile = | 1880 scoped_ptr<FakePicturePile> green_recording = |
1877 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); | 1881 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); |
1878 SkPaint green_paint; | 1882 SkPaint green_paint; |
1879 green_paint.setColor(SK_ColorGREEN); | 1883 green_paint.setColor(SK_ColorGREEN); |
1880 green_pile->add_draw_rect_with_paint(viewport, green_paint); | 1884 green_recording->add_draw_rect_with_paint(viewport, green_paint); |
1881 green_pile->RerecordPile(); | 1885 green_recording->RerecordPile(); |
| 1886 scoped_refptr<FakePicturePileImpl> green_pile = |
| 1887 FakePicturePileImpl::CreateFromPile(green_recording.get(), nullptr); |
1882 | 1888 |
1883 gfx::Transform green_content_to_target_transform; | 1889 gfx::Transform green_content_to_target_transform; |
1884 SharedQuadState* green_shared_state = CreateTestSharedQuadState( | 1890 SharedQuadState* green_shared_state = CreateTestSharedQuadState( |
1885 green_content_to_target_transform, viewport, pass.get()); | 1891 green_content_to_target_transform, viewport, pass.get()); |
1886 | 1892 |
1887 PictureDrawQuad* green_quad = | 1893 PictureDrawQuad* green_quad = |
1888 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1894 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1889 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, | 1895 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, |
1890 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(), | 1896 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(), |
1891 nearest_neighbor, texture_format, viewport, 1.f, | 1897 nearest_neighbor, texture_format, viewport, 1.f, |
(...skipping 14 matching lines...) Expand all Loading... |
1906 gfx::Rect viewport(this->device_viewport_size_); | 1912 gfx::Rect viewport(this->device_viewport_size_); |
1907 ResourceFormat texture_format = RGBA_8888; | 1913 ResourceFormat texture_format = RGBA_8888; |
1908 bool nearest_neighbor = false; | 1914 bool nearest_neighbor = false; |
1909 | 1915 |
1910 RenderPassId id(1, 1); | 1916 RenderPassId id(1, 1); |
1911 gfx::Transform transform_to_root; | 1917 gfx::Transform transform_to_root; |
1912 scoped_ptr<RenderPass> pass = | 1918 scoped_ptr<RenderPass> pass = |
1913 CreateTestRenderPass(id, viewport, transform_to_root); | 1919 CreateTestRenderPass(id, viewport, transform_to_root); |
1914 | 1920 |
1915 // One viewport-filling 0.5-opacity green quad. | 1921 // One viewport-filling 0.5-opacity green quad. |
1916 scoped_refptr<FakePicturePileImpl> green_pile = | 1922 scoped_ptr<FakePicturePile> green_recording = |
1917 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); | 1923 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); |
1918 SkPaint green_paint; | 1924 SkPaint green_paint; |
1919 green_paint.setColor(SK_ColorGREEN); | 1925 green_paint.setColor(SK_ColorGREEN); |
1920 green_pile->add_draw_rect_with_paint(viewport, green_paint); | 1926 green_recording->add_draw_rect_with_paint(viewport, green_paint); |
1921 green_pile->RerecordPile(); | 1927 green_recording->RerecordPile(); |
| 1928 scoped_refptr<FakePicturePileImpl> green_pile = |
| 1929 FakePicturePileImpl::CreateFromPile(green_recording.get(), nullptr); |
1922 | 1930 |
1923 gfx::Transform green_content_to_target_transform; | 1931 gfx::Transform green_content_to_target_transform; |
1924 SharedQuadState* green_shared_state = CreateTestSharedQuadState( | 1932 SharedQuadState* green_shared_state = CreateTestSharedQuadState( |
1925 green_content_to_target_transform, viewport, pass.get()); | 1933 green_content_to_target_transform, viewport, pass.get()); |
1926 green_shared_state->opacity = 0.5f; | 1934 green_shared_state->opacity = 0.5f; |
1927 | 1935 |
1928 PictureDrawQuad* green_quad = | 1936 PictureDrawQuad* green_quad = |
1929 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1937 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1930 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, | 1938 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, |
1931 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor, | 1939 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor, |
1932 texture_format, viewport, 1.f, green_pile.get()); | 1940 texture_format, viewport, 1.f, green_pile.get()); |
1933 | 1941 |
1934 // One viewport-filling white quad. | 1942 // One viewport-filling white quad. |
1935 scoped_refptr<FakePicturePileImpl> white_pile = | 1943 scoped_ptr<FakePicturePile> white_recording = |
1936 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); | 1944 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); |
1937 SkPaint white_paint; | 1945 SkPaint white_paint; |
1938 white_paint.setColor(SK_ColorWHITE); | 1946 white_paint.setColor(SK_ColorWHITE); |
1939 white_pile->add_draw_rect_with_paint(viewport, white_paint); | 1947 white_recording->add_draw_rect_with_paint(viewport, white_paint); |
1940 white_pile->RerecordPile(); | 1948 white_recording->RerecordPile(); |
| 1949 scoped_refptr<FakePicturePileImpl> white_pile = |
| 1950 FakePicturePileImpl::CreateFromPile(white_recording.get(), nullptr); |
1941 | 1951 |
1942 gfx::Transform white_content_to_target_transform; | 1952 gfx::Transform white_content_to_target_transform; |
1943 SharedQuadState* white_shared_state = CreateTestSharedQuadState( | 1953 SharedQuadState* white_shared_state = CreateTestSharedQuadState( |
1944 white_content_to_target_transform, viewport, pass.get()); | 1954 white_content_to_target_transform, viewport, pass.get()); |
1945 | 1955 |
1946 PictureDrawQuad* white_quad = | 1956 PictureDrawQuad* white_quad = |
1947 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 1957 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
1948 white_quad->SetNew(white_shared_state, viewport, gfx::Rect(), viewport, | 1958 white_quad->SetNew(white_shared_state, viewport, gfx::Rect(), viewport, |
1949 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor, | 1959 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor, |
1950 texture_format, viewport, 1.f, white_pile.get()); | 1960 texture_format, viewport, 1.f, white_pile.get()); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1994 bitmap.allocN32Pixels(2, 2); | 2004 bitmap.allocN32Pixels(2, 2); |
1995 { | 2005 { |
1996 SkAutoLockPixels lock(bitmap); | 2006 SkAutoLockPixels lock(bitmap); |
1997 SkCanvas canvas(bitmap); | 2007 SkCanvas canvas(bitmap); |
1998 canvas.drawPoint(0, 0, SK_ColorGREEN); | 2008 canvas.drawPoint(0, 0, SK_ColorGREEN); |
1999 canvas.drawPoint(0, 1, SK_ColorBLUE); | 2009 canvas.drawPoint(0, 1, SK_ColorBLUE); |
2000 canvas.drawPoint(1, 0, SK_ColorBLUE); | 2010 canvas.drawPoint(1, 0, SK_ColorBLUE); |
2001 canvas.drawPoint(1, 1, SK_ColorGREEN); | 2011 canvas.drawPoint(1, 1, SK_ColorGREEN); |
2002 } | 2012 } |
2003 | 2013 |
2004 scoped_refptr<FakePicturePileImpl> pile = | 2014 scoped_ptr<FakePicturePile> recording = |
2005 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); | 2015 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); |
2006 SkPaint paint; | 2016 SkPaint paint; |
2007 paint.setFilterLevel(SkPaint::kLow_FilterLevel); | 2017 paint.setFilterLevel(SkPaint::kLow_FilterLevel); |
2008 pile->add_draw_bitmap_with_paint(bitmap, gfx::Point(), paint); | 2018 recording->add_draw_bitmap_with_paint(bitmap, gfx::Point(), paint); |
2009 pile->RerecordPile(); | 2019 recording->RerecordPile(); |
| 2020 scoped_refptr<FakePicturePileImpl> pile = |
| 2021 FakePicturePileImpl::CreateFromPile(recording.get(), nullptr); |
2010 | 2022 |
2011 gfx::Transform content_to_target_transform; | 2023 gfx::Transform content_to_target_transform; |
2012 SharedQuadState* shared_state = CreateTestSharedQuadState( | 2024 SharedQuadState* shared_state = CreateTestSharedQuadState( |
2013 content_to_target_transform, viewport, pass.get()); | 2025 content_to_target_transform, viewport, pass.get()); |
2014 | 2026 |
2015 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2027 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
2016 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, | 2028 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, |
2017 gfx::RectF(0, 0, 2, 2), viewport.size(), nearest_neighbor, | 2029 gfx::RectF(0, 0, 2, 2), viewport.size(), nearest_neighbor, |
2018 texture_format, viewport, 1.f, pile.get()); | 2030 texture_format, viewport, 1.f, pile.get()); |
2019 | 2031 |
(...skipping 24 matching lines...) Expand all Loading... |
2044 bitmap.allocN32Pixels(2, 2); | 2056 bitmap.allocN32Pixels(2, 2); |
2045 { | 2057 { |
2046 SkAutoLockPixels lock(bitmap); | 2058 SkAutoLockPixels lock(bitmap); |
2047 SkCanvas canvas(bitmap); | 2059 SkCanvas canvas(bitmap); |
2048 canvas.drawPoint(0, 0, SK_ColorGREEN); | 2060 canvas.drawPoint(0, 0, SK_ColorGREEN); |
2049 canvas.drawPoint(0, 1, SK_ColorBLUE); | 2061 canvas.drawPoint(0, 1, SK_ColorBLUE); |
2050 canvas.drawPoint(1, 0, SK_ColorBLUE); | 2062 canvas.drawPoint(1, 0, SK_ColorBLUE); |
2051 canvas.drawPoint(1, 1, SK_ColorGREEN); | 2063 canvas.drawPoint(1, 1, SK_ColorGREEN); |
2052 } | 2064 } |
2053 | 2065 |
2054 scoped_refptr<FakePicturePileImpl> pile = | 2066 scoped_ptr<FakePicturePile> recording = |
2055 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); | 2067 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); |
2056 SkPaint paint; | 2068 SkPaint paint; |
2057 paint.setFilterLevel(SkPaint::kLow_FilterLevel); | 2069 paint.setFilterLevel(SkPaint::kLow_FilterLevel); |
2058 pile->add_draw_bitmap_with_paint(bitmap, gfx::Point(), paint); | 2070 recording->add_draw_bitmap_with_paint(bitmap, gfx::Point(), paint); |
2059 pile->RerecordPile(); | 2071 recording->RerecordPile(); |
| 2072 scoped_refptr<FakePicturePileImpl> pile = |
| 2073 FakePicturePileImpl::CreateFromPile(recording.get(), nullptr); |
2060 | 2074 |
2061 gfx::Transform content_to_target_transform; | 2075 gfx::Transform content_to_target_transform; |
2062 SharedQuadState* shared_state = CreateTestSharedQuadState( | 2076 SharedQuadState* shared_state = CreateTestSharedQuadState( |
2063 content_to_target_transform, viewport, pass.get()); | 2077 content_to_target_transform, viewport, pass.get()); |
2064 | 2078 |
2065 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2079 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
2066 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, | 2080 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, |
2067 gfx::RectF(0, 0, 2, 2), viewport.size(), nearest_neighbor, | 2081 gfx::RectF(0, 0, 2, 2), viewport.size(), nearest_neighbor, |
2068 texture_format, viewport, 1.f, pile.get()); | 2082 texture_format, viewport, 1.f, pile.get()); |
2069 | 2083 |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2146 scoped_ptr<RenderPass> pass = | 2160 scoped_ptr<RenderPass> pass = |
2147 CreateTestRenderPass(id, viewport, transform_to_root); | 2161 CreateTestRenderPass(id, viewport, transform_to_root); |
2148 | 2162 |
2149 // As scaling up the blue checkerboards will cause sampling on the GPU, | 2163 // As scaling up the blue checkerboards will cause sampling on the GPU, |
2150 // a few extra "cleanup rects" need to be added to clobber the blending | 2164 // a few extra "cleanup rects" need to be added to clobber the blending |
2151 // to make the output image more clean. This will also test subrects | 2165 // to make the output image more clean. This will also test subrects |
2152 // of the layer. | 2166 // of the layer. |
2153 gfx::Transform green_content_to_target_transform; | 2167 gfx::Transform green_content_to_target_transform; |
2154 gfx::Rect green_rect1(gfx::Point(80, 0), gfx::Size(20, 100)); | 2168 gfx::Rect green_rect1(gfx::Point(80, 0), gfx::Size(20, 100)); |
2155 gfx::Rect green_rect2(gfx::Point(0, 80), gfx::Size(100, 20)); | 2169 gfx::Rect green_rect2(gfx::Point(0, 80), gfx::Size(100, 20)); |
2156 scoped_refptr<FakePicturePileImpl> green_pile = | 2170 |
2157 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); | 2171 scoped_ptr<FakePicturePile> green_recording = |
| 2172 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); |
| 2173 |
2158 SkPaint red_paint; | 2174 SkPaint red_paint; |
2159 red_paint.setColor(SK_ColorRED); | 2175 red_paint.setColor(SK_ColorRED); |
2160 green_pile->add_draw_rect_with_paint(viewport, red_paint); | 2176 green_recording->add_draw_rect_with_paint(viewport, red_paint); |
2161 SkPaint green_paint; | 2177 SkPaint green_paint; |
2162 green_paint.setColor(SK_ColorGREEN); | 2178 green_paint.setColor(SK_ColorGREEN); |
2163 green_pile->add_draw_rect_with_paint(green_rect1, green_paint); | 2179 green_recording->add_draw_rect_with_paint(green_rect1, green_paint); |
2164 green_pile->add_draw_rect_with_paint(green_rect2, green_paint); | 2180 green_recording->add_draw_rect_with_paint(green_rect2, green_paint); |
2165 green_pile->RerecordPile(); | 2181 green_recording->RerecordPile(); |
| 2182 scoped_refptr<FakePicturePileImpl> green_pile = |
| 2183 FakePicturePileImpl::CreateFromPile(green_recording.get(), nullptr); |
2166 | 2184 |
2167 SharedQuadState* top_right_green_shared_quad_state = | 2185 SharedQuadState* top_right_green_shared_quad_state = |
2168 CreateTestSharedQuadState( | 2186 CreateTestSharedQuadState( |
2169 green_content_to_target_transform, viewport, pass.get()); | 2187 green_content_to_target_transform, viewport, pass.get()); |
2170 | 2188 |
2171 PictureDrawQuad* green_quad1 = | 2189 PictureDrawQuad* green_quad1 = |
2172 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2190 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
2173 green_quad1->SetNew(top_right_green_shared_quad_state, green_rect1, | 2191 green_quad1->SetNew(top_right_green_shared_quad_state, green_rect1, |
2174 gfx::Rect(), green_rect1, gfx::RectF(green_rect1.size()), | 2192 gfx::Rect(), green_rect1, gfx::RectF(green_rect1.size()), |
2175 green_rect1.size(), nearest_neighbor, texture_format, | 2193 green_rect1.size(), nearest_neighbor, texture_format, |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2210 gfx::RectF blue_layer_rect2(gfx::PointF(8.0f, 6.5f), gfx::SizeF(2.5f, 2.5f)); | 2228 gfx::RectF blue_layer_rect2(gfx::PointF(8.0f, 6.5f), gfx::SizeF(2.5f, 2.5f)); |
2211 gfx::RectF union_layer_rect = blue_layer_rect1; | 2229 gfx::RectF union_layer_rect = blue_layer_rect1; |
2212 union_layer_rect.Union(blue_layer_rect2); | 2230 union_layer_rect.Union(blue_layer_rect2); |
2213 | 2231 |
2214 // Because scaling up will cause sampling outside the rects, add one extra | 2232 // Because scaling up will cause sampling outside the rects, add one extra |
2215 // pixel of buffer at the final content scale. | 2233 // pixel of buffer at the final content scale. |
2216 float inset = -1.f / contents_scale; | 2234 float inset = -1.f / contents_scale; |
2217 blue_layer_rect1.Inset(inset, inset, inset, inset); | 2235 blue_layer_rect1.Inset(inset, inset, inset, inset); |
2218 blue_layer_rect2.Inset(inset, inset, inset, inset); | 2236 blue_layer_rect2.Inset(inset, inset, inset, inset); |
2219 | 2237 |
2220 scoped_refptr<FakePicturePileImpl> pile = | 2238 scoped_ptr<FakePicturePile> recording = |
2221 FakePicturePileImpl::CreateFilledPile(pile_tile_size, layer_rect.size()); | 2239 FakePicturePile::CreateFilledPile(pile_tile_size, layer_rect.size()); |
2222 | 2240 |
2223 Region outside(layer_rect); | 2241 Region outside(layer_rect); |
2224 outside.Subtract(gfx::ToEnclosingRect(union_layer_rect)); | 2242 outside.Subtract(gfx::ToEnclosingRect(union_layer_rect)); |
2225 for (Region::Iterator iter(outside); iter.has_rect(); iter.next()) { | 2243 for (Region::Iterator iter(outside); iter.has_rect(); iter.next()) { |
2226 pile->add_draw_rect_with_paint(iter.rect(), red_paint); | 2244 recording->add_draw_rect_with_paint(iter.rect(), red_paint); |
2227 } | 2245 } |
2228 | 2246 |
2229 SkPaint blue_paint; | 2247 SkPaint blue_paint; |
2230 blue_paint.setColor(SK_ColorBLUE); | 2248 blue_paint.setColor(SK_ColorBLUE); |
2231 pile->add_draw_rect_with_paint(blue_layer_rect1, blue_paint); | 2249 recording->add_draw_rect_with_paint(blue_layer_rect1, blue_paint); |
2232 pile->add_draw_rect_with_paint(blue_layer_rect2, blue_paint); | 2250 recording->add_draw_rect_with_paint(blue_layer_rect2, blue_paint); |
2233 pile->RerecordPile(); | 2251 recording->RerecordPile(); |
| 2252 scoped_refptr<FakePicturePileImpl> pile = |
| 2253 FakePicturePileImpl::CreateFromPile(recording.get(), nullptr); |
2234 | 2254 |
2235 gfx::Rect content_rect( | 2255 gfx::Rect content_rect( |
2236 gfx::ScaleToEnclosingRect(layer_rect, contents_scale)); | 2256 gfx::ScaleToEnclosingRect(layer_rect, contents_scale)); |
2237 gfx::Rect content_union_rect( | 2257 gfx::Rect content_union_rect( |
2238 gfx::ToEnclosingRect(gfx::ScaleRect(union_layer_rect, contents_scale))); | 2258 gfx::ToEnclosingRect(gfx::ScaleRect(union_layer_rect, contents_scale))); |
2239 | 2259 |
2240 // At a scale of 4x the rectangles with a width of 2.5 will take up 10 pixels, | 2260 // At a scale of 4x the rectangles with a width of 2.5 will take up 10 pixels, |
2241 // so scale an additional 10x to make them 100x100. | 2261 // so scale an additional 10x to make them 100x100. |
2242 gfx::Transform content_to_target_transform; | 2262 gfx::Transform content_to_target_transform; |
2243 content_to_target_transform.Scale(10.0, 10.0); | 2263 content_to_target_transform.Scale(10.0, 10.0); |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2434 gfx::Rect viewport(this->device_viewport_size_); | 2454 gfx::Rect viewport(this->device_viewport_size_); |
2435 ResourceFormat texture_format = RGBA_4444; | 2455 ResourceFormat texture_format = RGBA_4444; |
2436 bool nearest_neighbor = false; | 2456 bool nearest_neighbor = false; |
2437 | 2457 |
2438 RenderPassId id(1, 1); | 2458 RenderPassId id(1, 1); |
2439 gfx::Transform transform_to_root; | 2459 gfx::Transform transform_to_root; |
2440 scoped_ptr<RenderPass> pass = | 2460 scoped_ptr<RenderPass> pass = |
2441 CreateTestRenderPass(id, viewport, transform_to_root); | 2461 CreateTestRenderPass(id, viewport, transform_to_root); |
2442 | 2462 |
2443 // One viewport-filling blue quad | 2463 // One viewport-filling blue quad |
2444 scoped_refptr<FakePicturePileImpl> blue_pile = | 2464 scoped_ptr<FakePicturePile> blue_recording = |
2445 FakePicturePileImpl::CreateFilledPile(pile_tile_size, viewport.size()); | 2465 FakePicturePile::CreateFilledPile(pile_tile_size, viewport.size()); |
2446 SkPaint blue_paint; | 2466 SkPaint blue_paint; |
2447 blue_paint.setColor(SK_ColorBLUE); | 2467 blue_paint.setColor(SK_ColorBLUE); |
2448 blue_pile->add_draw_rect_with_paint(viewport, blue_paint); | 2468 blue_recording->add_draw_rect_with_paint(viewport, blue_paint); |
2449 blue_pile->RerecordPile(); | 2469 blue_recording->RerecordPile(); |
| 2470 scoped_refptr<FakePicturePileImpl> blue_pile = |
| 2471 FakePicturePileImpl::CreateFromPile(blue_recording.get(), nullptr); |
2450 | 2472 |
2451 gfx::Transform blue_content_to_target_transform; | 2473 gfx::Transform blue_content_to_target_transform; |
2452 SharedQuadState* blue_shared_state = CreateTestSharedQuadState( | 2474 SharedQuadState* blue_shared_state = CreateTestSharedQuadState( |
2453 blue_content_to_target_transform, viewport, pass.get()); | 2475 blue_content_to_target_transform, viewport, pass.get()); |
2454 | 2476 |
2455 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2477 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
2456 blue_quad->SetNew(blue_shared_state, viewport, gfx::Rect(), viewport, | 2478 blue_quad->SetNew(blue_shared_state, viewport, gfx::Rect(), viewport, |
2457 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(), | 2479 gfx::RectF(0.f, 0.f, 1.f, 1.f), viewport.size(), |
2458 nearest_neighbor, texture_format, viewport, 1.f, | 2480 nearest_neighbor, texture_format, viewport, 1.f, |
2459 blue_pile.get()); | 2481 blue_pile.get()); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2526 EXPECT_TRUE(this->RunPixelTest( | 2548 EXPECT_TRUE(this->RunPixelTest( |
2527 &pass_list, | 2549 &pass_list, |
2528 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), | 2550 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), |
2529 FuzzyPixelOffByOneComparator(true))); | 2551 FuzzyPixelOffByOneComparator(true))); |
2530 } | 2552 } |
2531 | 2553 |
2532 #endif // !defined(OS_ANDROID) | 2554 #endif // !defined(OS_ANDROID) |
2533 | 2555 |
2534 } // namespace | 2556 } // namespace |
2535 } // namespace cc | 2557 } // namespace cc |
OLD | NEW |