1 // 2 // Copyright (c) 2010-2013 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 #ifndef LIBGLESV2_UNIFORM_H_ 8 #define LIBGLESV2_UNIFORM_H_ 9 10 #include <string> 11 #include <vector> 12 13 #define GL_APICALL 14 #include <GLES2/gl2.h> 15 16 #include "common/debug.h" 17 18 namespace gl 19 { 20 21 // Helper struct representing a single shader uniform 22 struct Uniform 23 { 24 Uniform(GLenum type, GLenum precision, const std::string &name, unsigned int arraySize); 25 26 ~Uniform(); 27 28 bool isArray() const; 29 unsigned int elementCount() const; 30 31 const GLenum type; 32 const GLenum precision; 33 const std::string name; 34 const unsigned int arraySize; 35 36 unsigned char *data; 37 bool dirty; 38 39 int psRegisterIndex; 40 int vsRegisterIndex; 41 unsigned int registerCount; 42 }; 43 44 typedef std::vector<Uniform*> UniformArray; 45 46 } 47 48 #endif // LIBGLESV2_UNIFORM_H_ 49