forked from flutter/engine
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
+ adds query for GL_MAX_TEXTURE_UNITS BUG=angleproject:2306 Change-Id: Ie89fa6a067551170856bf0f7e6d7b4452b3da132 Reviewed-on: https://chromium-review.googlesource.com/984894 Commit-Queue: Lingfeng Yang <lfy@google.com> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>
- Loading branch information
Showing
10 changed files
with
128 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
// | ||
// 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. | ||
// | ||
|
||
// ClientActiveTextureTest.cpp: Tests basic usage of glClientActiveTexture. | ||
|
||
#include "test_utils/ANGLETest.h" | ||
#include "test_utils/gl_raii.h" | ||
|
||
#include "random_utils.h" | ||
|
||
#include <stdint.h> | ||
|
||
using namespace angle; | ||
|
||
class ClientActiveTextureTest : public ANGLETest | ||
{ | ||
protected: | ||
ClientActiveTextureTest() | ||
{ | ||
setWindowWidth(32); | ||
setWindowHeight(32); | ||
setConfigRedBits(8); | ||
setConfigGreenBits(8); | ||
setConfigBlueBits(8); | ||
setConfigAlphaBits(8); | ||
setConfigDepthBits(24); | ||
} | ||
}; | ||
|
||
// State query: Checks the initial state is correct. | ||
TEST_P(ClientActiveTextureTest, InitialState) | ||
{ | ||
GLint clientActiveTexture = 0; | ||
glGetIntegerv(GL_CLIENT_ACTIVE_TEXTURE, &clientActiveTexture); | ||
EXPECT_GL_NO_ERROR(); | ||
EXPECT_GLENUM_EQ(GL_TEXTURE0, clientActiveTexture); | ||
} | ||
|
||
// Negative test: Checks against invalid use of glClientActiveTexture. | ||
TEST_P(ClientActiveTextureTest, Negative) | ||
{ | ||
glClientActiveTexture(0); | ||
EXPECT_GL_ERROR(GL_INVALID_ENUM); | ||
|
||
GLint maxTextureUnits = 0; | ||
glGetIntegerv(GL_MAX_TEXTURE_UNITS, &maxTextureUnits); | ||
|
||
glClientActiveTexture(GL_TEXTURE0 + maxTextureUnits); | ||
EXPECT_GL_ERROR(GL_INVALID_ENUM); | ||
} | ||
|
||
// Checks that the number of multitexturing units is above spec minimum. | ||
TEST_P(ClientActiveTextureTest, Limits) | ||
{ | ||
GLint maxTextureUnits = 0; | ||
glGetIntegerv(GL_MAX_TEXTURE_UNITS, &maxTextureUnits); | ||
EXPECT_GE(maxTextureUnits, 2); | ||
} | ||
|
||
// Set test: Checks that GL_TEXTURE0..GL_TEXTURE[GL_MAX_TEXTURE_UNITS-1] can be set. | ||
TEST_P(ClientActiveTextureTest, Set) | ||
{ | ||
GLint maxTextureUnits = 0; | ||
glGetIntegerv(GL_MAX_TEXTURE_UNITS, &maxTextureUnits); | ||
|
||
for (GLint i = 0; i < maxTextureUnits; i++) | ||
{ | ||
glClientActiveTexture(GL_TEXTURE0 + i); | ||
EXPECT_GL_NO_ERROR(); | ||
GLint clientActiveTexture = 0; | ||
glGetIntegerv(GL_CLIENT_ACTIVE_TEXTURE, (GLint *)&clientActiveTexture); | ||
EXPECT_GL_NO_ERROR(); | ||
EXPECT_GLENUM_EQ(GL_TEXTURE0 + i, clientActiveTexture); | ||
} | ||
} | ||
|
||
ANGLE_INSTANTIATE_TEST(ClientActiveTextureTest, ES1_D3D11(), ES1_OPENGL(), ES1_OPENGLES()); |