1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "cc/output/shader.h" 6 7 #include "cc/debug/fake_web_graphics_context_3d.h" 8 #include "testing/gtest/include/gtest/gtest.h" 9 #include "ui/gfx/point.h" 10 #include "ui/gfx/size.h" 11 12 namespace cc { 13 14 TEST(ShaderTest, HighpThresholds) { 15 // The FakeWebGraphicsContext3D always uses a mediump precision of 10 bits 16 // which corresponds to a native highp threshold of 2^10 = 1024 17 FakeWebGraphicsContext3D context; 18 19 int threshold_cache = 0; 20 int threshold_min; 21 gfx::Point closePoint(512, 512); 22 gfx::Size smallSize(512, 512); 23 gfx::Point farPoint(2560, 2560); 24 gfx::Size bigSize(2560, 2560); 25 26 threshold_min = 0; 27 EXPECT_EQ(TexCoordPrecisionMedium, TexCoordPrecisionRequired( 28 &context, &threshold_cache, threshold_min, closePoint)); 29 EXPECT_EQ(TexCoordPrecisionMedium, TexCoordPrecisionRequired( 30 &context, &threshold_cache, threshold_min, smallSize)); 31 EXPECT_EQ(TexCoordPrecisionHigh, TexCoordPrecisionRequired( 32 &context, &threshold_cache, threshold_min, farPoint)); 33 EXPECT_EQ(TexCoordPrecisionHigh, TexCoordPrecisionRequired( 34 &context, &threshold_cache, threshold_min, bigSize)); 35 36 threshold_min = 3000; 37 EXPECT_EQ(TexCoordPrecisionMedium, TexCoordPrecisionRequired( 38 &context, &threshold_cache, threshold_min, closePoint)); 39 EXPECT_EQ(TexCoordPrecisionMedium, TexCoordPrecisionRequired( 40 &context, &threshold_cache, threshold_min, smallSize)); 41 EXPECT_EQ(TexCoordPrecisionMedium, TexCoordPrecisionRequired( 42 &context, &threshold_cache, threshold_min, farPoint)); 43 EXPECT_EQ(TexCoordPrecisionMedium, TexCoordPrecisionRequired( 44 &context, &threshold_cache, threshold_min, bigSize)); 45 } 46 47 } // namespace cc 48