summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/libGLESv2/Shader.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/angle/src/libGLESv2/Shader.h')
-rw-r--r--src/3rdparty/angle/src/libGLESv2/Shader.h26
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();