// // 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. // // MatrixModeTest.cpp: Tests basic usage of glMatrixMode. #include "test_utils/ANGLETest.h" #include "test_utils/gl_raii.h" #include using namespace angle; class MatrixModeTest : public ANGLETest<> { protected: MatrixModeTest() { setWindowWidth(32); setWindowHeight(32); setConfigRedBits(8); setConfigGreenBits(8); setConfigBlueBits(8); setConfigAlphaBits(8); setConfigDepthBits(24); } }; // State query: Checks the initial state is correct. TEST_P(MatrixModeTest, InitialState) { GLint matrixMode; glGetIntegerv(GL_MATRIX_MODE, &matrixMode); EXPECT_GL_NO_ERROR(); EXPECT_GLENUM_EQ(GL_MODELVIEW, matrixMode); } // Checks for error-generating cases. TEST_P(MatrixModeTest, Negative) { glMatrixMode(0); EXPECT_GL_ERROR(GL_INVALID_ENUM); glMatrixMode(GL_TEXTURE_2D); EXPECT_GL_ERROR(GL_INVALID_ENUM); } // Checks that matrix mode can be set. TEST_P(MatrixModeTest, Set) { GLint matrixMode; std::vector modes = {GL_PROJECTION, GL_MODELVIEW, GL_TEXTURE}; for (auto mode : modes) { glMatrixMode(mode); EXPECT_GL_NO_ERROR(); glGetIntegerv(GL_MATRIX_MODE, &matrixMode); EXPECT_GLENUM_EQ(mode, matrixMode); } } ANGLE_INSTANTIATE_TEST_ES1(MatrixModeTest);