Home | History | Annotate | Download | only in output
      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/point.h"
     11 #include "ui/gfx/size.h"
     12 
     13 namespace cc {
     14 
     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