diff options
Diffstat (limited to 'src/3rdparty/angle/src/libGLESv2/Program.h')
-rw-r--r-- | src/3rdparty/angle/src/libGLESv2/Program.h | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/3rdparty/angle/src/libGLESv2/Program.h b/src/3rdparty/angle/src/libGLESv2/Program.h index a9db83403d..ce821a470b 100644 --- a/src/3rdparty/angle/src/libGLESv2/Program.h +++ b/src/3rdparty/angle/src/libGLESv2/Program.h @@ -1,5 +1,5 @@ // -// Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved. +// Copyright (c) 2002-2014 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. // @@ -16,6 +16,7 @@ #include "common/angleutils.h" #include "common/RefCountObject.h" #include "libGLESv2/Constants.h" +#include "libGLESv2/ProgramBinary.h" namespace rx { @@ -27,7 +28,6 @@ namespace gl class ResourceManager; class FragmentShader; class VertexShader; -class ProgramBinary; class Shader; extern const char * const g_fakepath; @@ -78,7 +78,7 @@ class Program bool link(); bool isLinked(); bool setProgramBinary(const void *binary, GLsizei length); - ProgramBinary *getProgramBinary(); + ProgramBinary *getProgramBinary() const; int getInfoLogLength() const; void getInfoLog(GLsizei bufSize, GLsizei *length, char *infoLog); @@ -92,6 +92,18 @@ class Program GLint getActiveUniformCount(); GLint getActiveUniformMaxLength(); + GLint getActiveUniformBlockCount(); + GLint getActiveUniformBlockMaxLength(); + + void bindUniformBlock(GLuint uniformBlockIndex, GLuint uniformBlockBinding); + GLuint getUniformBlockBinding(GLuint uniformBlockIndex) const; + + void setTransformFeedbackVaryings(GLsizei count, const GLchar *const *varyings, GLenum bufferMode); + void getTransformFeedbackVarying(GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name) const; + GLsizei getTransformFeedbackVaryingCount() const; + GLsizei getTransformFeedbackVaryingMaxLength() const; + GLenum getTransformFeedbackBufferMode() const; + void addRef(); void release(); unsigned int getRefCount() const; @@ -107,12 +119,18 @@ class Program DISALLOW_COPY_AND_ASSIGN(Program); void unlink(bool destroy = false); + void resetUniformBlockBindings(); FragmentShader *mFragmentShader; VertexShader *mVertexShader; AttributeBindings mAttributeBindings; + GLuint mUniformBlockBindings[IMPLEMENTATION_MAX_COMBINED_SHADER_UNIFORM_BUFFERS]; + + std::vector<std::string> mTransformFeedbackVaryings; + GLuint mTransformFeedbackBufferMode; + BindingPointer<ProgramBinary> mProgramBinary; bool mLinked; bool mDeleteStatus; // Flag to indicate that the program can be deleted when no longer in use |