xref: /aosp_15_r20/external/angle/src/tests/gl_tests/gles1/TextureTargetEnableTest.cpp (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1 //
2 // Copyright 2018 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 
7 // TextureTargetEnableTest.cpp: Tests basic usage of built-in vertex attributes of GLES1.
8 
9 #include "test_utils/ANGLETest.h"
10 #include "test_utils/gl_raii.h"
11 
12 using namespace angle;
13 
14 class TextureTargetEnableTest : public ANGLETest<>
15 {
16   protected:
TextureTargetEnableTest()17     TextureTargetEnableTest()
18     {
19         setWindowWidth(32);
20         setWindowHeight(32);
21         setConfigRedBits(8);
22         setConfigGreenBits(8);
23         setConfigBlueBits(8);
24         setConfigAlphaBits(8);
25         setConfigDepthBits(24);
26     }
27 };
28 
29 // Checks that 2D/Cube targets are disabled initially.
TEST_P(TextureTargetEnableTest,InitialState)30 TEST_P(TextureTargetEnableTest, InitialState)
31 {
32     EXPECT_GL_FALSE(glIsEnabled(GL_TEXTURE_2D));
33     EXPECT_GL_NO_ERROR();
34     EXPECT_GL_FALSE(glIsEnabled(GL_TEXTURE_CUBE_MAP));
35     EXPECT_GL_NO_ERROR();
36 }
37 
38 // Checks that 2D/cube targets can be set to enabled or disabled.
TEST_P(TextureTargetEnableTest,Set)39 TEST_P(TextureTargetEnableTest, Set)
40 {
41     glEnable(GL_TEXTURE_2D);
42     EXPECT_GL_NO_ERROR();
43     EXPECT_GL_TRUE(glIsEnabled(GL_TEXTURE_2D));
44 
45     glEnable(GL_TEXTURE_CUBE_MAP);
46     EXPECT_GL_NO_ERROR();
47     EXPECT_GL_TRUE(glIsEnabled(GL_TEXTURE_CUBE_MAP));
48 }
49 
50 // Checks that targets can be set to enabled or disabled and it does not affect the setting of
51 // other texture units.
TEST_P(TextureTargetEnableTest,SetSeparateUnits)52 TEST_P(TextureTargetEnableTest, SetSeparateUnits)
53 {
54     GLint units;
55     glGetIntegerv(GL_MAX_TEXTURE_UNITS, &units);
56 
57     for (int i = 0; i < units; i++)
58     {
59 
60         glActiveTexture(GL_TEXTURE0 + i);
61         EXPECT_GL_NO_ERROR();
62 
63         EXPECT_GL_FALSE(glIsEnabled(GL_TEXTURE_2D));
64         EXPECT_GL_NO_ERROR();
65 
66         EXPECT_GL_FALSE(glIsEnabled(GL_TEXTURE_CUBE_MAP));
67         EXPECT_GL_NO_ERROR();
68 
69         glEnable(GL_TEXTURE_2D);
70         EXPECT_GL_NO_ERROR();
71         EXPECT_GL_TRUE(glIsEnabled(GL_TEXTURE_2D));
72 
73         glEnable(GL_TEXTURE_CUBE_MAP);
74         EXPECT_GL_NO_ERROR();
75         EXPECT_GL_TRUE(glIsEnabled(GL_TEXTURE_CUBE_MAP));
76     }
77 }
78 
79 ANGLE_INSTANTIATE_TEST_ES1(TextureTargetEnableTest);
80