Home | History | Annotate | Download | only in libGLESv2
      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