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.
5 #include "cc/output/shader.h"
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"
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
;
19 int threshold_cache
= 0;
21 gfx::Point
closePoint(512, 512);
22 gfx::Size
smallSize(512, 512);
23 gfx::Point
farPoint(2560, 2560);
24 gfx::Size
bigSize(2560, 2560);
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
));
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
));