Index: cc/tiled_layer_impl_unittest.cc |
diff --git a/cc/tiled_layer_impl_unittest.cc b/cc/tiled_layer_impl_unittest.cc |
index 323ce891bde9e3032d95f96ca29a9da976b6554e..796c7c550c23cd088ab8a7b56a1320d9d7334e0a 100644 |
--- a/cc/tiled_layer_impl_unittest.cc |
+++ b/cc/tiled_layer_impl_unittest.cc |
@@ -14,9 +14,12 @@ |
#include "cc/tile_draw_quad.h" |
#include "testing/gmock/include/gmock/gmock.h" |
#include "testing/gtest/include/gtest/gtest.h" |
+#include "third_party/khronos/GLES2/gl2.h" |
+#include <public/WebTransformationMatrix.h> |
using namespace cc; |
using namespace LayerTestCommon; |
+using namespace WebKit; |
jamesr
2012/11/09 18:40:09
using statements aren't style guide compliant (nei
Sami
2012/11/11 16:56:27
Done.
|
namespace { |
@@ -134,11 +137,12 @@ TEST(TiledLayerImplTest, checkerboarding) |
} |
} |
-static void getQuads(QuadList& quads, SharedQuadStateList& sharedStates, gfx::Size tileSize, const gfx::Size& layerSize, LayerTilingData::BorderTexelOption borderTexelOption, const gfx::Rect& visibleContentRect) |
+static void getQuads(QuadList& quads, SharedQuadStateList& sharedStates, gfx::Size tileSize, const gfx::Size& layerSize, LayerTilingData::BorderTexelOption borderTexelOption, const gfx::Rect& visibleContentRect, const WebTransformationMatrix drawTransform = WebTransformationMatrix()) |
{ |
scoped_ptr<TiledLayerImpl> layer = createLayer(tileSize, layerSize, borderTexelOption); |
layer->setVisibleContentRect(visibleContentRect); |
layer->setBounds(layerSize); |
+ layer->setDrawTransform(drawTransform); |
MockQuadCuller quadCuller(quads, sharedStates); |
AppendQuadsData data; |
@@ -227,4 +231,58 @@ TEST(TiledLayerImplTest, tileOpaqueRectForLayerNoBorders) |
} |
} |
+TEST(TiledLayerImplTest, nearestFilteringForTranslatedQuads) |
+{ |
+ gfx::Size tileSize(50, 50); |
+ gfx::Size layerSize(250, 250); |
+ QuadList quads; |
+ SharedQuadStateList sharedStates; |
+ getQuads(quads, sharedStates, tileSize, layerSize, LayerTilingData::HasBorderTexels, gfx::Rect(gfx::Point(), layerSize)); |
+ |
+ for (size_t i = 0; i < quads.size(); ++i) { |
+ ASSERT_EQ(quads[i]->material(), DrawQuad::TiledContent) << quadString << i; |
+ TileDrawQuad* quad = static_cast<TileDrawQuad*>(quads[i]); |
+ |
+ EXPECT_EQ(GL_NEAREST, quad->textureFilter()) << quadString << i; |
+ } |
+} |
+ |
+TEST(TiledLayerImplTest, linearFilteringForScaledQuads) |
+{ |
+ gfx::Size tileSize(50, 50); |
+ gfx::Size layerSize(250, 250); |
+ QuadList quads; |
+ SharedQuadStateList sharedStates; |
+ WebTransformationMatrix drawTransform; |
+ |
+ drawTransform.scale(2); |
+ getQuads(quads, sharedStates, tileSize, layerSize, LayerTilingData::HasBorderTexels, gfx::Rect(gfx::Point(), layerSize), drawTransform); |
+ |
+ for (size_t i = 0; i < quads.size(); ++i) { |
+ ASSERT_EQ(quads[i]->material(), DrawQuad::TiledContent) << quadString << i; |
+ TileDrawQuad* quad = static_cast<TileDrawQuad*>(quads[i]); |
+ |
+ EXPECT_EQ(GL_LINEAR, quad->textureFilter()) << quadString << i; |
+ } |
+} |
+ |
+TEST(TiledLayerImplTest, linearFilteringForTransformedQuads) |
+{ |
+ gfx::Size tileSize(50, 50); |
+ gfx::Size layerSize(250, 250); |
+ QuadList quads; |
+ SharedQuadStateList sharedStates; |
+ WebTransformationMatrix drawTransform; |
+ |
+ drawTransform.rotate3d(15, 30, 45); |
+ getQuads(quads, sharedStates, tileSize, layerSize, LayerTilingData::HasBorderTexels, gfx::Rect(gfx::Point(), layerSize), drawTransform); |
+ |
+ for (size_t i = 0; i < quads.size(); ++i) { |
+ ASSERT_EQ(quads[i]->material(), DrawQuad::TiledContent) << quadString << i; |
+ TileDrawQuad* quad = static_cast<TileDrawQuad*>(quads[i]); |
+ |
+ EXPECT_EQ(GL_LINEAR, quad->textureFilter()) << quadString << i; |
+ } |
+} |
+ |
} // anonymous namespace |