• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/test/test_gles2_interface.h"
8 #include "cc/test/test_web_graphics_context_3d.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "ui/gfx/geometry/point.h"
11 #include "ui/gfx/geometry/size.h"
12 
13 namespace cc {
14 
TEST(ShaderTest,HighpThresholds)15 TEST(ShaderTest, HighpThresholds) {
16   // The test context always uses a mediump precision of 10 bits which
17   // corresponds to a native highp threshold of 2^10 = 1024
18   scoped_ptr<TestWebGraphicsContext3D> stub_context =
19     TestWebGraphicsContext3D::Create();
20   TestGLES2Interface stub_gl(stub_context.get());
21 
22   int threshold_cache = 0;
23   int threshold_min;
24   gfx::Point closePoint(512, 512);
25   gfx::Size smallSize(512, 512);
26   gfx::Point farPoint(2560, 2560);
27   gfx::Size bigSize(2560, 2560);
28 
29   threshold_min = 0;
30   EXPECT_EQ(TexCoordPrecisionMedium, TexCoordPrecisionRequired(
31       &stub_gl, &threshold_cache, threshold_min, closePoint));
32   EXPECT_EQ(TexCoordPrecisionMedium, TexCoordPrecisionRequired(
33       &stub_gl, &threshold_cache, threshold_min, smallSize));
34   EXPECT_EQ(TexCoordPrecisionHigh, TexCoordPrecisionRequired(
35       &stub_gl, &threshold_cache, threshold_min, farPoint));
36   EXPECT_EQ(TexCoordPrecisionHigh, TexCoordPrecisionRequired(
37       &stub_gl, &threshold_cache, threshold_min, bigSize));
38 
39   threshold_min = 3000;
40   EXPECT_EQ(TexCoordPrecisionMedium, TexCoordPrecisionRequired(
41       &stub_gl, &threshold_cache, threshold_min, closePoint));
42   EXPECT_EQ(TexCoordPrecisionMedium, TexCoordPrecisionRequired(
43       &stub_gl, &threshold_cache, threshold_min, smallSize));
44   EXPECT_EQ(TexCoordPrecisionMedium, TexCoordPrecisionRequired(
45       &stub_gl, &threshold_cache, threshold_min, farPoint));
46   EXPECT_EQ(TexCoordPrecisionMedium, TexCoordPrecisionRequired(
47       &stub_gl, &threshold_cache, threshold_min, bigSize));
48 }
49 
50 }  // namespace cc
51