// // 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. // // ANGLE_draw_id.cpp: // Test for ANGLE_draw_id extension // #include "GLSLANG/ShaderLang.h" #include "angle_gl.h" #include "compiler/translator/tree_ops/EmulateMultiDrawShaderBuiltins.h" #include "gtest/gtest.h" #include "tests/test_utils/compiler_test.h" usingnamespacesh; class EmulateGLDrawIDTest : public MatchOutputCodeTest { … }; // Check that compilation fails if the compile option to emulate gl_DrawID // is not set TEST_F(EmulateGLDrawIDTest, RequiresEmulation) { … } // Check that compiling with emulation with gl_DrawID works with different shader versions TEST_F(EmulateGLDrawIDTest, CheckCompile) { … } // Check that gl_DrawID is properly emulated TEST_F(EmulateGLDrawIDTest, EmulatesUniform) { … } // Check that a user-defined "gl_DrawID" is not permitted TEST_F(EmulateGLDrawIDTest, DisallowsUserDefinedGLDrawID) { … } // gl_DrawID is translated to angle_DrawID internally. Check that a user-defined // angle_DrawID is permitted TEST_F(EmulateGLDrawIDTest, AllowsUserDefinedANGLEDrawID) { … }