1*35238bceSAndroid Build Coastguard Worker #ifndef _GLSATTRIBUTELOCATIONTESTS_HPP 2*35238bceSAndroid Build Coastguard Worker #define _GLSATTRIBUTELOCATIONTESTS_HPP 3*35238bceSAndroid Build Coastguard Worker /*------------------------------------------------------------------------- 4*35238bceSAndroid Build Coastguard Worker * drawElements Quality Program OpenGL (ES) Module 5*35238bceSAndroid Build Coastguard Worker * ----------------------------------------------- 6*35238bceSAndroid Build Coastguard Worker * 7*35238bceSAndroid Build Coastguard Worker * Copyright 2014 The Android Open Source Project 8*35238bceSAndroid Build Coastguard Worker * 9*35238bceSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 10*35238bceSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 11*35238bceSAndroid Build Coastguard Worker * You may obtain a copy of the License at 12*35238bceSAndroid Build Coastguard Worker * 13*35238bceSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 14*35238bceSAndroid Build Coastguard Worker * 15*35238bceSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 16*35238bceSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 17*35238bceSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18*35238bceSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 19*35238bceSAndroid Build Coastguard Worker * limitations under the License. 20*35238bceSAndroid Build Coastguard Worker * 21*35238bceSAndroid Build Coastguard Worker *//*! 22*35238bceSAndroid Build Coastguard Worker * \file 23*35238bceSAndroid Build Coastguard Worker * \brief Attribute location tests 24*35238bceSAndroid Build Coastguard Worker *//*--------------------------------------------------------------------*/ 25*35238bceSAndroid Build Coastguard Worker 26*35238bceSAndroid Build Coastguard Worker #include "tcuDefs.hpp" 27*35238bceSAndroid Build Coastguard Worker #include "tcuTestCase.hpp" 28*35238bceSAndroid Build Coastguard Worker 29*35238bceSAndroid Build Coastguard Worker #include <string> 30*35238bceSAndroid Build Coastguard Worker #include <vector> 31*35238bceSAndroid Build Coastguard Worker 32*35238bceSAndroid Build Coastguard Worker namespace glu 33*35238bceSAndroid Build Coastguard Worker { 34*35238bceSAndroid Build Coastguard Worker class ShaderProgram; 35*35238bceSAndroid Build Coastguard Worker class RenderContext; 36*35238bceSAndroid Build Coastguard Worker } // namespace glu 37*35238bceSAndroid Build Coastguard Worker 38*35238bceSAndroid Build Coastguard Worker namespace deqp 39*35238bceSAndroid Build Coastguard Worker { 40*35238bceSAndroid Build Coastguard Worker namespace gls 41*35238bceSAndroid Build Coastguard Worker { 42*35238bceSAndroid Build Coastguard Worker namespace AttributeLocationTestUtil 43*35238bceSAndroid Build Coastguard Worker { 44*35238bceSAndroid Build Coastguard Worker 45*35238bceSAndroid Build Coastguard Worker class AttribType 46*35238bceSAndroid Build Coastguard Worker { 47*35238bceSAndroid Build Coastguard Worker public: 48*35238bceSAndroid Build Coastguard Worker AttribType(const std::string &name, uint32_t locationSize, uint32_t typeEnum); 49*35238bceSAndroid Build Coastguard Worker getName(void) const50*35238bceSAndroid Build Coastguard Worker const std::string &getName(void) const 51*35238bceSAndroid Build Coastguard Worker { 52*35238bceSAndroid Build Coastguard Worker return m_name; 53*35238bceSAndroid Build Coastguard Worker } getLocationSize(void) const54*35238bceSAndroid Build Coastguard Worker uint32_t getLocationSize(void) const 55*35238bceSAndroid Build Coastguard Worker { 56*35238bceSAndroid Build Coastguard Worker return m_locationSize; 57*35238bceSAndroid Build Coastguard Worker } getGLTypeEnum(void) const58*35238bceSAndroid Build Coastguard Worker uint32_t getGLTypeEnum(void) const 59*35238bceSAndroid Build Coastguard Worker { 60*35238bceSAndroid Build Coastguard Worker return m_glTypeEnum; 61*35238bceSAndroid Build Coastguard Worker } 62*35238bceSAndroid Build Coastguard Worker 63*35238bceSAndroid Build Coastguard Worker private: 64*35238bceSAndroid Build Coastguard Worker std::string m_name; 65*35238bceSAndroid Build Coastguard Worker uint32_t m_locationSize; 66*35238bceSAndroid Build Coastguard Worker uint32_t m_glTypeEnum; 67*35238bceSAndroid Build Coastguard Worker }; 68*35238bceSAndroid Build Coastguard Worker 69*35238bceSAndroid Build Coastguard Worker class Cond 70*35238bceSAndroid Build Coastguard Worker { 71*35238bceSAndroid Build Coastguard Worker public: 72*35238bceSAndroid Build Coastguard Worker enum ConstCond 73*35238bceSAndroid Build Coastguard Worker { 74*35238bceSAndroid Build Coastguard Worker COND_ALWAYS, 75*35238bceSAndroid Build Coastguard Worker COND_NEVER 76*35238bceSAndroid Build Coastguard Worker }; 77*35238bceSAndroid Build Coastguard Worker 78*35238bceSAndroid Build Coastguard Worker Cond(ConstCond cond); 79*35238bceSAndroid Build Coastguard Worker explicit Cond(const std::string &name, bool negate = true); operator ==(const Cond & other) const80*35238bceSAndroid Build Coastguard Worker bool operator==(const Cond &other) const 81*35238bceSAndroid Build Coastguard Worker { 82*35238bceSAndroid Build Coastguard Worker return m_negate == other.m_negate && m_name == other.m_name; 83*35238bceSAndroid Build Coastguard Worker } operator !=(const Cond & other) const84*35238bceSAndroid Build Coastguard Worker bool operator!=(const Cond &other) const 85*35238bceSAndroid Build Coastguard Worker { 86*35238bceSAndroid Build Coastguard Worker return !(*this == other); 87*35238bceSAndroid Build Coastguard Worker } getName(void) const88*35238bceSAndroid Build Coastguard Worker const std::string getName(void) const 89*35238bceSAndroid Build Coastguard Worker { 90*35238bceSAndroid Build Coastguard Worker return m_name; 91*35238bceSAndroid Build Coastguard Worker } getNegate(void) const92*35238bceSAndroid Build Coastguard Worker bool getNegate(void) const 93*35238bceSAndroid Build Coastguard Worker { 94*35238bceSAndroid Build Coastguard Worker return m_negate; 95*35238bceSAndroid Build Coastguard Worker } 96*35238bceSAndroid Build Coastguard Worker 97*35238bceSAndroid Build Coastguard Worker private: 98*35238bceSAndroid Build Coastguard Worker bool m_negate; 99*35238bceSAndroid Build Coastguard Worker std::string m_name; 100*35238bceSAndroid Build Coastguard Worker }; 101*35238bceSAndroid Build Coastguard Worker 102*35238bceSAndroid Build Coastguard Worker class Attribute 103*35238bceSAndroid Build Coastguard Worker { 104*35238bceSAndroid Build Coastguard Worker public: 105*35238bceSAndroid Build Coastguard Worker enum 106*35238bceSAndroid Build Coastguard Worker { 107*35238bceSAndroid Build Coastguard Worker // Location is not defined 108*35238bceSAndroid Build Coastguard Worker LOC_UNDEF = -1 109*35238bceSAndroid Build Coastguard Worker }; 110*35238bceSAndroid Build Coastguard Worker 111*35238bceSAndroid Build Coastguard Worker enum 112*35238bceSAndroid Build Coastguard Worker { 113*35238bceSAndroid Build Coastguard Worker // Not an array 114*35238bceSAndroid Build Coastguard Worker NOT_ARRAY = -1 115*35238bceSAndroid Build Coastguard Worker }; 116*35238bceSAndroid Build Coastguard Worker 117*35238bceSAndroid Build Coastguard Worker Attribute(const AttribType &type, const std::string &name, int32_t layoutLocation = LOC_UNDEF, 118*35238bceSAndroid Build Coastguard Worker const Cond &cond = Cond::COND_ALWAYS, int arraySize = NOT_ARRAY); 119*35238bceSAndroid Build Coastguard Worker getType(void) const120*35238bceSAndroid Build Coastguard Worker const AttribType getType(void) const 121*35238bceSAndroid Build Coastguard Worker { 122*35238bceSAndroid Build Coastguard Worker return m_type; 123*35238bceSAndroid Build Coastguard Worker } getName(void) const124*35238bceSAndroid Build Coastguard Worker const std::string &getName(void) const 125*35238bceSAndroid Build Coastguard Worker { 126*35238bceSAndroid Build Coastguard Worker return m_name; 127*35238bceSAndroid Build Coastguard Worker } getLayoutLocation(void) const128*35238bceSAndroid Build Coastguard Worker int32_t getLayoutLocation(void) const 129*35238bceSAndroid Build Coastguard Worker { 130*35238bceSAndroid Build Coastguard Worker return m_layoutLocation; 131*35238bceSAndroid Build Coastguard Worker } getCondition(void) const132*35238bceSAndroid Build Coastguard Worker const Cond &getCondition(void) const 133*35238bceSAndroid Build Coastguard Worker { 134*35238bceSAndroid Build Coastguard Worker return m_cond; 135*35238bceSAndroid Build Coastguard Worker } getArraySize(void) const136*35238bceSAndroid Build Coastguard Worker int getArraySize(void) const 137*35238bceSAndroid Build Coastguard Worker { 138*35238bceSAndroid Build Coastguard Worker return m_arraySize; 139*35238bceSAndroid Build Coastguard Worker } 140*35238bceSAndroid Build Coastguard Worker 141*35238bceSAndroid Build Coastguard Worker private: 142*35238bceSAndroid Build Coastguard Worker AttribType m_type; 143*35238bceSAndroid Build Coastguard Worker std::string m_name; 144*35238bceSAndroid Build Coastguard Worker int32_t m_layoutLocation; 145*35238bceSAndroid Build Coastguard Worker Cond m_cond; 146*35238bceSAndroid Build Coastguard Worker int m_arraySize; 147*35238bceSAndroid Build Coastguard Worker }; 148*35238bceSAndroid Build Coastguard Worker 149*35238bceSAndroid Build Coastguard Worker class Bind 150*35238bceSAndroid Build Coastguard Worker { 151*35238bceSAndroid Build Coastguard Worker public: 152*35238bceSAndroid Build Coastguard Worker Bind(const std::string &attribute, uint32_t location); 153*35238bceSAndroid Build Coastguard Worker getAttributeName(void) const154*35238bceSAndroid Build Coastguard Worker const std::string &getAttributeName(void) const 155*35238bceSAndroid Build Coastguard Worker { 156*35238bceSAndroid Build Coastguard Worker return m_attribute; 157*35238bceSAndroid Build Coastguard Worker } getLocation(void) const158*35238bceSAndroid Build Coastguard Worker uint32_t getLocation(void) const 159*35238bceSAndroid Build Coastguard Worker { 160*35238bceSAndroid Build Coastguard Worker return m_location; 161*35238bceSAndroid Build Coastguard Worker } 162*35238bceSAndroid Build Coastguard Worker 163*35238bceSAndroid Build Coastguard Worker private: 164*35238bceSAndroid Build Coastguard Worker std::string m_attribute; 165*35238bceSAndroid Build Coastguard Worker uint32_t m_location; 166*35238bceSAndroid Build Coastguard Worker }; 167*35238bceSAndroid Build Coastguard Worker 168*35238bceSAndroid Build Coastguard Worker } // namespace AttributeLocationTestUtil 169*35238bceSAndroid Build Coastguard Worker 170*35238bceSAndroid Build Coastguard Worker // Simple bind attribute test 171*35238bceSAndroid Build Coastguard Worker class BindAttributeTest : public tcu::TestCase 172*35238bceSAndroid Build Coastguard Worker { 173*35238bceSAndroid Build Coastguard Worker public: 174*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 175*35238bceSAndroid Build Coastguard Worker 176*35238bceSAndroid Build Coastguard Worker BindAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx, const AttribType &type, 177*35238bceSAndroid Build Coastguard Worker int arraySize = AttributeLocationTestUtil::Attribute::NOT_ARRAY); 178*35238bceSAndroid Build Coastguard Worker 179*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 180*35238bceSAndroid Build Coastguard Worker 181*35238bceSAndroid Build Coastguard Worker private: 182*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 183*35238bceSAndroid Build Coastguard Worker const AttribType m_type; 184*35238bceSAndroid Build Coastguard Worker const int m_arraySize; 185*35238bceSAndroid Build Coastguard Worker }; 186*35238bceSAndroid Build Coastguard Worker 187*35238bceSAndroid Build Coastguard Worker // Bind maximum number of attributes 188*35238bceSAndroid Build Coastguard Worker class BindMaxAttributesTest : public tcu::TestCase 189*35238bceSAndroid Build Coastguard Worker { 190*35238bceSAndroid Build Coastguard Worker public: 191*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 192*35238bceSAndroid Build Coastguard Worker 193*35238bceSAndroid Build Coastguard Worker BindMaxAttributesTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx, const AttribType &type, 194*35238bceSAndroid Build Coastguard Worker int arraySize = AttributeLocationTestUtil::Attribute::NOT_ARRAY); 195*35238bceSAndroid Build Coastguard Worker 196*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 197*35238bceSAndroid Build Coastguard Worker 198*35238bceSAndroid Build Coastguard Worker private: 199*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 200*35238bceSAndroid Build Coastguard Worker const AttribType m_type; 201*35238bceSAndroid Build Coastguard Worker const int m_arraySize; 202*35238bceSAndroid Build Coastguard Worker }; 203*35238bceSAndroid Build Coastguard Worker 204*35238bceSAndroid Build Coastguard Worker class BindAliasingAttributeTest : public tcu::TestCase 205*35238bceSAndroid Build Coastguard Worker { 206*35238bceSAndroid Build Coastguard Worker public: 207*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 208*35238bceSAndroid Build Coastguard Worker 209*35238bceSAndroid Build Coastguard Worker BindAliasingAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx, const AttribType &type, 210*35238bceSAndroid Build Coastguard Worker int offset = 0, int arraySize = AttributeLocationTestUtil::Attribute::NOT_ARRAY); 211*35238bceSAndroid Build Coastguard Worker 212*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 213*35238bceSAndroid Build Coastguard Worker 214*35238bceSAndroid Build Coastguard Worker private: 215*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 216*35238bceSAndroid Build Coastguard Worker const AttribType m_type; 217*35238bceSAndroid Build Coastguard Worker const int m_offset; 218*35238bceSAndroid Build Coastguard Worker const int m_arraySize; 219*35238bceSAndroid Build Coastguard Worker }; 220*35238bceSAndroid Build Coastguard Worker 221*35238bceSAndroid Build Coastguard Worker class BindMaxAliasingAttributeTest : public tcu::TestCase 222*35238bceSAndroid Build Coastguard Worker { 223*35238bceSAndroid Build Coastguard Worker public: 224*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 225*35238bceSAndroid Build Coastguard Worker 226*35238bceSAndroid Build Coastguard Worker BindMaxAliasingAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx, const AttribType &type, 227*35238bceSAndroid Build Coastguard Worker int arraySize = AttributeLocationTestUtil::Attribute::NOT_ARRAY); 228*35238bceSAndroid Build Coastguard Worker 229*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 230*35238bceSAndroid Build Coastguard Worker 231*35238bceSAndroid Build Coastguard Worker private: 232*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 233*35238bceSAndroid Build Coastguard Worker const AttribType m_type; 234*35238bceSAndroid Build Coastguard Worker const int m_arraySize; 235*35238bceSAndroid Build Coastguard Worker }; 236*35238bceSAndroid Build Coastguard Worker 237*35238bceSAndroid Build Coastguard Worker class BindInactiveAliasingAttributeTest : public tcu::TestCase 238*35238bceSAndroid Build Coastguard Worker { 239*35238bceSAndroid Build Coastguard Worker public: 240*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 241*35238bceSAndroid Build Coastguard Worker 242*35238bceSAndroid Build Coastguard Worker BindInactiveAliasingAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx, const AttribType &type, 243*35238bceSAndroid Build Coastguard Worker int arraySize = AttributeLocationTestUtil::Attribute::NOT_ARRAY); 244*35238bceSAndroid Build Coastguard Worker 245*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 246*35238bceSAndroid Build Coastguard Worker 247*35238bceSAndroid Build Coastguard Worker private: 248*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 249*35238bceSAndroid Build Coastguard Worker const AttribType m_type; 250*35238bceSAndroid Build Coastguard Worker const int m_arraySize; 251*35238bceSAndroid Build Coastguard Worker }; 252*35238bceSAndroid Build Coastguard Worker 253*35238bceSAndroid Build Coastguard Worker class BindHoleAttributeTest : public tcu::TestCase 254*35238bceSAndroid Build Coastguard Worker { 255*35238bceSAndroid Build Coastguard Worker public: 256*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 257*35238bceSAndroid Build Coastguard Worker 258*35238bceSAndroid Build Coastguard Worker BindHoleAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx, const AttribType &type, 259*35238bceSAndroid Build Coastguard Worker int arraySize = AttributeLocationTestUtil::Attribute::NOT_ARRAY); 260*35238bceSAndroid Build Coastguard Worker 261*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 262*35238bceSAndroid Build Coastguard Worker 263*35238bceSAndroid Build Coastguard Worker private: 264*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 265*35238bceSAndroid Build Coastguard Worker const AttribType m_type; 266*35238bceSAndroid Build Coastguard Worker const int m_arraySize; 267*35238bceSAndroid Build Coastguard Worker }; 268*35238bceSAndroid Build Coastguard Worker 269*35238bceSAndroid Build Coastguard Worker class PreAttachBindAttributeTest : public tcu::TestCase 270*35238bceSAndroid Build Coastguard Worker { 271*35238bceSAndroid Build Coastguard Worker public: 272*35238bceSAndroid Build Coastguard Worker PreAttachBindAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx); 273*35238bceSAndroid Build Coastguard Worker 274*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 275*35238bceSAndroid Build Coastguard Worker 276*35238bceSAndroid Build Coastguard Worker private: 277*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 278*35238bceSAndroid Build Coastguard Worker }; 279*35238bceSAndroid Build Coastguard Worker 280*35238bceSAndroid Build Coastguard Worker class PreLinkBindAttributeTest : public tcu::TestCase 281*35238bceSAndroid Build Coastguard Worker { 282*35238bceSAndroid Build Coastguard Worker public: 283*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 284*35238bceSAndroid Build Coastguard Worker 285*35238bceSAndroid Build Coastguard Worker PreLinkBindAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx); 286*35238bceSAndroid Build Coastguard Worker 287*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 288*35238bceSAndroid Build Coastguard Worker 289*35238bceSAndroid Build Coastguard Worker private: 290*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 291*35238bceSAndroid Build Coastguard Worker }; 292*35238bceSAndroid Build Coastguard Worker 293*35238bceSAndroid Build Coastguard Worker class PostLinkBindAttributeTest : public tcu::TestCase 294*35238bceSAndroid Build Coastguard Worker { 295*35238bceSAndroid Build Coastguard Worker public: 296*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 297*35238bceSAndroid Build Coastguard Worker 298*35238bceSAndroid Build Coastguard Worker PostLinkBindAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx); 299*35238bceSAndroid Build Coastguard Worker 300*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 301*35238bceSAndroid Build Coastguard Worker 302*35238bceSAndroid Build Coastguard Worker private: 303*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 304*35238bceSAndroid Build Coastguard Worker }; 305*35238bceSAndroid Build Coastguard Worker 306*35238bceSAndroid Build Coastguard Worker class BindReattachAttributeTest : public tcu::TestCase 307*35238bceSAndroid Build Coastguard Worker { 308*35238bceSAndroid Build Coastguard Worker public: 309*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 310*35238bceSAndroid Build Coastguard Worker 311*35238bceSAndroid Build Coastguard Worker BindReattachAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx); 312*35238bceSAndroid Build Coastguard Worker 313*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 314*35238bceSAndroid Build Coastguard Worker 315*35238bceSAndroid Build Coastguard Worker private: 316*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 317*35238bceSAndroid Build Coastguard Worker }; 318*35238bceSAndroid Build Coastguard Worker 319*35238bceSAndroid Build Coastguard Worker class LocationAttributeTest : public tcu::TestCase 320*35238bceSAndroid Build Coastguard Worker { 321*35238bceSAndroid Build Coastguard Worker public: 322*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 323*35238bceSAndroid Build Coastguard Worker 324*35238bceSAndroid Build Coastguard Worker LocationAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx, const AttribType &type, 325*35238bceSAndroid Build Coastguard Worker int arraySize = AttributeLocationTestUtil::Attribute::NOT_ARRAY); 326*35238bceSAndroid Build Coastguard Worker 327*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 328*35238bceSAndroid Build Coastguard Worker 329*35238bceSAndroid Build Coastguard Worker private: 330*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 331*35238bceSAndroid Build Coastguard Worker const AttribType m_type; 332*35238bceSAndroid Build Coastguard Worker const int m_arraySize; 333*35238bceSAndroid Build Coastguard Worker }; 334*35238bceSAndroid Build Coastguard Worker 335*35238bceSAndroid Build Coastguard Worker class LocationMaxAttributesTest : public tcu::TestCase 336*35238bceSAndroid Build Coastguard Worker { 337*35238bceSAndroid Build Coastguard Worker public: 338*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 339*35238bceSAndroid Build Coastguard Worker 340*35238bceSAndroid Build Coastguard Worker LocationMaxAttributesTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx, const AttribType &type, 341*35238bceSAndroid Build Coastguard Worker int arraySize = AttributeLocationTestUtil::Attribute::NOT_ARRAY); 342*35238bceSAndroid Build Coastguard Worker 343*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 344*35238bceSAndroid Build Coastguard Worker 345*35238bceSAndroid Build Coastguard Worker private: 346*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 347*35238bceSAndroid Build Coastguard Worker const AttribType m_type; 348*35238bceSAndroid Build Coastguard Worker const int m_arraySize; 349*35238bceSAndroid Build Coastguard Worker }; 350*35238bceSAndroid Build Coastguard Worker 351*35238bceSAndroid Build Coastguard Worker class LocationHoleAttributeTest : public tcu::TestCase 352*35238bceSAndroid Build Coastguard Worker { 353*35238bceSAndroid Build Coastguard Worker public: 354*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 355*35238bceSAndroid Build Coastguard Worker 356*35238bceSAndroid Build Coastguard Worker LocationHoleAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx, const AttribType &type, 357*35238bceSAndroid Build Coastguard Worker int arraySize = AttributeLocationTestUtil::Attribute::NOT_ARRAY); 358*35238bceSAndroid Build Coastguard Worker 359*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 360*35238bceSAndroid Build Coastguard Worker 361*35238bceSAndroid Build Coastguard Worker private: 362*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 363*35238bceSAndroid Build Coastguard Worker const AttribType m_type; 364*35238bceSAndroid Build Coastguard Worker const int m_arraySize; 365*35238bceSAndroid Build Coastguard Worker }; 366*35238bceSAndroid Build Coastguard Worker 367*35238bceSAndroid Build Coastguard Worker class MixedAttributeTest : public tcu::TestCase 368*35238bceSAndroid Build Coastguard Worker { 369*35238bceSAndroid Build Coastguard Worker public: 370*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 371*35238bceSAndroid Build Coastguard Worker 372*35238bceSAndroid Build Coastguard Worker MixedAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx, const AttribType &type, 373*35238bceSAndroid Build Coastguard Worker int arraySize = AttributeLocationTestUtil::Attribute::NOT_ARRAY); 374*35238bceSAndroid Build Coastguard Worker 375*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 376*35238bceSAndroid Build Coastguard Worker 377*35238bceSAndroid Build Coastguard Worker private: 378*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 379*35238bceSAndroid Build Coastguard Worker const AttribType m_type; 380*35238bceSAndroid Build Coastguard Worker const int m_arraySize; 381*35238bceSAndroid Build Coastguard Worker }; 382*35238bceSAndroid Build Coastguard Worker 383*35238bceSAndroid Build Coastguard Worker class MixedMaxAttributesTest : public tcu::TestCase 384*35238bceSAndroid Build Coastguard Worker { 385*35238bceSAndroid Build Coastguard Worker public: 386*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 387*35238bceSAndroid Build Coastguard Worker 388*35238bceSAndroid Build Coastguard Worker MixedMaxAttributesTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx, const AttribType &type, 389*35238bceSAndroid Build Coastguard Worker int arraySize = AttributeLocationTestUtil::Attribute::NOT_ARRAY); 390*35238bceSAndroid Build Coastguard Worker 391*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 392*35238bceSAndroid Build Coastguard Worker 393*35238bceSAndroid Build Coastguard Worker private: 394*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 395*35238bceSAndroid Build Coastguard Worker const AttribType m_type; 396*35238bceSAndroid Build Coastguard Worker const int m_arraySize; 397*35238bceSAndroid Build Coastguard Worker }; 398*35238bceSAndroid Build Coastguard Worker 399*35238bceSAndroid Build Coastguard Worker class MixedHoleAttributeTest : public tcu::TestCase 400*35238bceSAndroid Build Coastguard Worker { 401*35238bceSAndroid Build Coastguard Worker public: 402*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 403*35238bceSAndroid Build Coastguard Worker 404*35238bceSAndroid Build Coastguard Worker MixedHoleAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx, const AttribType &type, 405*35238bceSAndroid Build Coastguard Worker int arraySize = AttributeLocationTestUtil::Attribute::NOT_ARRAY); 406*35238bceSAndroid Build Coastguard Worker 407*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 408*35238bceSAndroid Build Coastguard Worker 409*35238bceSAndroid Build Coastguard Worker private: 410*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 411*35238bceSAndroid Build Coastguard Worker const AttribType m_type; 412*35238bceSAndroid Build Coastguard Worker const int m_arraySize; 413*35238bceSAndroid Build Coastguard Worker }; 414*35238bceSAndroid Build Coastguard Worker 415*35238bceSAndroid Build Coastguard Worker class BindRelinkAttributeTest : public tcu::TestCase 416*35238bceSAndroid Build Coastguard Worker { 417*35238bceSAndroid Build Coastguard Worker public: 418*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 419*35238bceSAndroid Build Coastguard Worker 420*35238bceSAndroid Build Coastguard Worker BindRelinkAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx); 421*35238bceSAndroid Build Coastguard Worker 422*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 423*35238bceSAndroid Build Coastguard Worker 424*35238bceSAndroid Build Coastguard Worker private: 425*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 426*35238bceSAndroid Build Coastguard Worker }; 427*35238bceSAndroid Build Coastguard Worker 428*35238bceSAndroid Build Coastguard Worker class BindRelinkHoleAttributeTest : public tcu::TestCase 429*35238bceSAndroid Build Coastguard Worker { 430*35238bceSAndroid Build Coastguard Worker public: 431*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 432*35238bceSAndroid Build Coastguard Worker 433*35238bceSAndroid Build Coastguard Worker BindRelinkHoleAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx, const AttribType &type, 434*35238bceSAndroid Build Coastguard Worker int arraySize = AttributeLocationTestUtil::Attribute::NOT_ARRAY); 435*35238bceSAndroid Build Coastguard Worker 436*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 437*35238bceSAndroid Build Coastguard Worker 438*35238bceSAndroid Build Coastguard Worker private: 439*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 440*35238bceSAndroid Build Coastguard Worker const AttribType m_type; 441*35238bceSAndroid Build Coastguard Worker const int m_arraySize; 442*35238bceSAndroid Build Coastguard Worker }; 443*35238bceSAndroid Build Coastguard Worker 444*35238bceSAndroid Build Coastguard Worker class MixedRelinkHoleAttributeTest : public tcu::TestCase 445*35238bceSAndroid Build Coastguard Worker { 446*35238bceSAndroid Build Coastguard Worker public: 447*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 448*35238bceSAndroid Build Coastguard Worker 449*35238bceSAndroid Build Coastguard Worker MixedRelinkHoleAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx, const AttribType &type, 450*35238bceSAndroid Build Coastguard Worker int arraySize = AttributeLocationTestUtil::Attribute::NOT_ARRAY); 451*35238bceSAndroid Build Coastguard Worker 452*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 453*35238bceSAndroid Build Coastguard Worker 454*35238bceSAndroid Build Coastguard Worker private: 455*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 456*35238bceSAndroid Build Coastguard Worker const AttribType m_type; 457*35238bceSAndroid Build Coastguard Worker const int m_arraySize; 458*35238bceSAndroid Build Coastguard Worker }; 459*35238bceSAndroid Build Coastguard Worker 460*35238bceSAndroid Build Coastguard Worker class PreAttachMixedAttributeTest : public tcu::TestCase 461*35238bceSAndroid Build Coastguard Worker { 462*35238bceSAndroid Build Coastguard Worker public: 463*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 464*35238bceSAndroid Build Coastguard Worker 465*35238bceSAndroid Build Coastguard Worker PreAttachMixedAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx); 466*35238bceSAndroid Build Coastguard Worker 467*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 468*35238bceSAndroid Build Coastguard Worker 469*35238bceSAndroid Build Coastguard Worker private: 470*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 471*35238bceSAndroid Build Coastguard Worker }; 472*35238bceSAndroid Build Coastguard Worker 473*35238bceSAndroid Build Coastguard Worker class PreLinkMixedAttributeTest : public tcu::TestCase 474*35238bceSAndroid Build Coastguard Worker { 475*35238bceSAndroid Build Coastguard Worker public: 476*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 477*35238bceSAndroid Build Coastguard Worker 478*35238bceSAndroid Build Coastguard Worker PreLinkMixedAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx); 479*35238bceSAndroid Build Coastguard Worker 480*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 481*35238bceSAndroid Build Coastguard Worker 482*35238bceSAndroid Build Coastguard Worker private: 483*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 484*35238bceSAndroid Build Coastguard Worker }; 485*35238bceSAndroid Build Coastguard Worker 486*35238bceSAndroid Build Coastguard Worker class PostLinkMixedAttributeTest : public tcu::TestCase 487*35238bceSAndroid Build Coastguard Worker { 488*35238bceSAndroid Build Coastguard Worker public: 489*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 490*35238bceSAndroid Build Coastguard Worker 491*35238bceSAndroid Build Coastguard Worker PostLinkMixedAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx); 492*35238bceSAndroid Build Coastguard Worker 493*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 494*35238bceSAndroid Build Coastguard Worker 495*35238bceSAndroid Build Coastguard Worker private: 496*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 497*35238bceSAndroid Build Coastguard Worker }; 498*35238bceSAndroid Build Coastguard Worker 499*35238bceSAndroid Build Coastguard Worker class MixedReattachAttributeTest : public tcu::TestCase 500*35238bceSAndroid Build Coastguard Worker { 501*35238bceSAndroid Build Coastguard Worker public: 502*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 503*35238bceSAndroid Build Coastguard Worker 504*35238bceSAndroid Build Coastguard Worker MixedReattachAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx); 505*35238bceSAndroid Build Coastguard Worker 506*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 507*35238bceSAndroid Build Coastguard Worker 508*35238bceSAndroid Build Coastguard Worker private: 509*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 510*35238bceSAndroid Build Coastguard Worker }; 511*35238bceSAndroid Build Coastguard Worker 512*35238bceSAndroid Build Coastguard Worker class MixedRelinkAttributeTest : public tcu::TestCase 513*35238bceSAndroid Build Coastguard Worker { 514*35238bceSAndroid Build Coastguard Worker public: 515*35238bceSAndroid Build Coastguard Worker typedef AttributeLocationTestUtil::AttribType AttribType; 516*35238bceSAndroid Build Coastguard Worker 517*35238bceSAndroid Build Coastguard Worker MixedRelinkAttributeTest(tcu::TestContext &testCtx, glu::RenderContext &renderCtx); 518*35238bceSAndroid Build Coastguard Worker 519*35238bceSAndroid Build Coastguard Worker virtual IterateResult iterate(void); 520*35238bceSAndroid Build Coastguard Worker 521*35238bceSAndroid Build Coastguard Worker private: 522*35238bceSAndroid Build Coastguard Worker glu::RenderContext &m_renderCtx; 523*35238bceSAndroid Build Coastguard Worker }; 524*35238bceSAndroid Build Coastguard Worker 525*35238bceSAndroid Build Coastguard Worker } // namespace gls 526*35238bceSAndroid Build Coastguard Worker } // namespace deqp 527*35238bceSAndroid Build Coastguard Worker 528*35238bceSAndroid Build Coastguard Worker #endif // _GLSATTRIBUTELOCATIONTESTS_HPP 529