diff options
Diffstat (limited to 'src/3rdparty/angle/src/libGLESv2/Shader.h')
-rw-r--r-- | src/3rdparty/angle/src/libGLESv2/Shader.h | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/src/3rdparty/angle/src/libGLESv2/Shader.h b/src/3rdparty/angle/src/libGLESv2/Shader.h index b73fc288a1..f471968550 100644 --- a/src/3rdparty/angle/src/libGLESv2/Shader.h +++ b/src/3rdparty/angle/src/libGLESv2/Shader.h @@ -1,5 +1,5 @@ // -// Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved. +// Copyright (c) 2002-2013 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. // @@ -18,10 +18,18 @@ #include <list> #include <vector> -#include "libGLESv2/ResourceManager.h" +#include "compiler/Uniform.h" +#include "common/angleutils.h" + +namespace rx +{ +class Renderer; +} namespace gl { +class ResourceManager; + struct Varying { Varying(GLenum type, const std::string &name, int size, bool array) @@ -45,7 +53,7 @@ class Shader friend class ProgramBinary; public: - Shader(ResourceManager *manager, GLuint handle); + Shader(ResourceManager *manager, const rx::Renderer *renderer, GLuint handle); virtual ~Shader(); @@ -60,6 +68,7 @@ class Shader void getSource(GLsizei bufSize, GLsizei *length, char *buffer); int getTranslatedSourceLength() const; void getTranslatedSource(GLsizei bufSize, GLsizei *length, char *buffer); + const sh::ActiveUniforms &getUniforms(); virtual void compile() = 0; virtual void uncompile(); @@ -76,6 +85,7 @@ class Shader protected: void parseVaryings(); + void resetVaryingsRegisterAssignment(); void compileToHLSL(void *compiler); @@ -84,8 +94,13 @@ class Shader static GLenum parseType(const std::string &type); static bool compareVarying(const Varying &x, const Varying &y); + const rx::Renderer *const mRenderer; + VaryingList mVaryings; + bool mUsesMultipleRenderTargets; + bool mUsesFragColor; + bool mUsesFragData; bool mUsesFragCoord; bool mUsesFrontFacing; bool mUsesPointSize; @@ -106,6 +121,7 @@ class Shader char *mSource; char *mHlsl; char *mInfoLog; + sh::ActiveUniforms mActiveUniforms; ResourceManager *mResourceManager; }; @@ -131,7 +147,7 @@ class VertexShader : public Shader friend class ProgramBinary; public: - VertexShader(ResourceManager *manager, GLuint handle); + VertexShader(ResourceManager *manager, const rx::Renderer *renderer, GLuint handle); ~VertexShader(); @@ -151,7 +167,7 @@ class VertexShader : public Shader class FragmentShader : public Shader { public: - FragmentShader(ResourceManager *manager, GLuint handle); + FragmentShader(ResourceManager *manager,const rx::Renderer *renderer, GLuint handle); ~FragmentShader(); |