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/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