| // |
| // Copyright 2018 The ANGLE Project Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| // |
| |
| // ShadeModelTest.cpp: Tests the shade model API. |
| |
| #include "test_utils/ANGLETest.h" |
| #include "test_utils/gl_raii.h" |
| |
| #include "util/random_utils.h" |
| |
| #include <stdint.h> |
| |
| using namespace angle; |
| |
| class ShadeModelTest : public ANGLETest |
| { |
| protected: |
| ShadeModelTest() |
| { |
| setWindowWidth(32); |
| setWindowHeight(32); |
| setConfigRedBits(8); |
| setConfigGreenBits(8); |
| setConfigBlueBits(8); |
| setConfigAlphaBits(8); |
| setConfigDepthBits(24); |
| } |
| }; |
| |
| // Checks that the initial state is correct. |
| TEST_P(ShadeModelTest, InitialState) |
| { |
| GLint shadeModel = 0; |
| glGetIntegerv(GL_SHADE_MODEL, &shadeModel); |
| EXPECT_GL_NO_ERROR(); |
| |
| EXPECT_GLENUM_EQ(GL_SMOOTH, shadeModel); |
| } |
| |
| // Negative test for shade model. |
| TEST_P(ShadeModelTest, Negative) |
| { |
| glShadeModel(GL_TEXTURE_2D); |
| EXPECT_GL_ERROR(GL_INVALID_ENUM); |
| } |
| |
| // Checks that the state can be set. |
| TEST_P(ShadeModelTest, Set) |
| { |
| glShadeModel(GL_FLAT); |
| EXPECT_GL_NO_ERROR(); |
| |
| GLint shadeModel; |
| glGetIntegerv(GL_SHADE_MODEL, &shadeModel); |
| EXPECT_GL_NO_ERROR(); |
| |
| EXPECT_GLENUM_EQ(GL_FLAT, shadeModel); |
| |
| glShadeModel(GL_SMOOTH); |
| EXPECT_GL_NO_ERROR(); |
| |
| glGetIntegerv(GL_SHADE_MODEL, &shadeModel); |
| EXPECT_GL_NO_ERROR(); |
| |
| EXPECT_GLENUM_EQ(GL_SMOOTH, shadeModel); |
| } |
| |
| ANGLE_INSTANTIATE_TEST_ES1(ShadeModelTest); |