• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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