Provide a stub for Renderer11::applyUniforms.
TRAC #22245
Signed-off-by: Daniel Koch
Signed-off-by: Geoff Lang
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1596 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/ProgramBinary.cpp b/src/libGLESv2/ProgramBinary.cpp
index 0de4ae3..e960df7 100644
--- a/src/libGLESv2/ProgramBinary.cpp
+++ b/src/libGLESv2/ProgramBinary.cpp
@@ -15,7 +15,6 @@
#include "libGLESv2/main.h"
#include "libGLESv2/Shader.h"
-#include "libGLESv2/utilities.h"
#include <string>
@@ -31,30 +30,8 @@
return buffer;
}
-Uniform::Uniform(GLenum type, const std::string &_name, unsigned int arraySize)
- : type(type), _name(_name), name(ProgramBinary::undecorateUniform(_name)), arraySize(arraySize)
-{
- int bytes = UniformInternalSize(type) * arraySize;
- data = new unsigned char[bytes];
- memset(data, 0, bytes);
- dirty = true;
-}
-
-Uniform::~Uniform()
-{
- delete[] data;
-}
-
-bool Uniform::isArray()
-{
- size_t dot = _name.find_last_of('.');
- if (dot == std::string::npos) dot = -1;
-
- return _name.compare(dot + 1, dot + 4, "ar_") == 0;
-}
-
UniformLocation::UniformLocation(const std::string &_name, unsigned int element, unsigned int index)
- : name(ProgramBinary::undecorateUniform(_name)), element(element), index(index)
+ : name(Uniform::undecorate(_name)), element(element), index(index)
{
}
@@ -1039,13 +1016,7 @@
}
}
- if (dynamic_cast<rx::Renderer9*>(mRenderer) == NULL) // D3D9_REPLACE
- {
- return; // UNIMPLEMENTED
- }
-
- // Set all other uniforms
- rx::Renderer9::makeRenderer9(mRenderer)->applyUniforms(&mUniforms);
+ mRenderer->applyUniforms(&mUniforms);
}
// Packs varyings into generic varying registers, using the algorithm from [OpenGL ES Shading Language 1.00 rev. 17] appendix A section 7 page 111
@@ -2212,30 +2183,6 @@
return name;
}
-std::string ProgramBinary::undecorateUniform(const std::string &_name)
-{
- std::string name = _name;
-
- // Remove any structure field decoration
- size_t pos = 0;
- while ((pos = name.find("._", pos)) != std::string::npos)
- {
- name.replace(pos, 2, ".");
- }
-
- // Remove the leading decoration
- if (name[0] == '_')
- {
- return name.substr(1);
- }
- else if (name.compare(0, 3, "ar_") == 0)
- {
- return name.substr(3);
- }
-
- return name;
-}
-
bool ProgramBinary::isValidated() const
{
return mValidated;
diff --git a/src/libGLESv2/renderer/Renderer.h b/src/libGLESv2/renderer/Renderer.h
index e89ad72..8dcebe7 100644
--- a/src/libGLESv2/renderer/Renderer.h
+++ b/src/libGLESv2/renderer/Renderer.h
@@ -19,6 +19,7 @@
#include <D3Dcompiler.h>
#include "libGLESv2/Texture.h"
+#include "libGLESv2/Uniform.h"
#include "libGLESv2/angletypes.h"
#include "libGLESv2/renderer/ShaderExecutable.h"
@@ -96,6 +97,7 @@
virtual bool applyRenderTarget(gl::Framebuffer *frameBuffer) = 0;
virtual void applyShaders(gl::ProgramBinary *programBinary) = 0;
+ virtual void applyUniforms(const gl::UniformArray *uniformArray) = 0;
virtual bool applyPrimitiveType(GLenum primitiveType, GLsizei elementCount) = 0;
virtual GLenum applyVertexBuffer(gl::ProgramBinary *programBinary, gl::VertexAttribute vertexAttributes[], GLint first, GLsizei count, GLsizei instances) = 0;
virtual GLenum applyIndexBuffer(const GLvoid *indices, gl::Buffer *elementArrayBuffer, GLsizei count, GLenum mode, GLenum type, TranslatedIndexData *indexInfo) = 0;
diff --git a/src/libGLESv2/renderer/Renderer11.cpp b/src/libGLESv2/renderer/Renderer11.cpp
index 82cb0b9..53b2fdd 100644
--- a/src/libGLESv2/renderer/Renderer11.cpp
+++ b/src/libGLESv2/renderer/Renderer11.cpp
@@ -710,6 +710,15 @@
}
}
+void Renderer11::applyUniforms(const gl::UniformArray *uniformArray)
+{
+ // TODO
+ if (uniformArray->size() != 0)
+ {
+ UNIMPLEMENTED();
+ }
+}
+
void Renderer11::clear(const gl::ClearParameters &clearParams, gl::Framebuffer *frameBuffer)
{
if (clearParams.mask & GL_COLOR_BUFFER_BIT)
diff --git a/src/libGLESv2/renderer/Renderer11.h b/src/libGLESv2/renderer/Renderer11.h
index 3eb7486..0f56294 100644
--- a/src/libGLESv2/renderer/Renderer11.h
+++ b/src/libGLESv2/renderer/Renderer11.h
@@ -62,6 +62,7 @@
virtual bool applyPrimitiveType(GLenum mode, GLsizei count);
virtual bool applyRenderTarget(gl::Framebuffer *frameBuffer);
virtual void applyShaders(gl::ProgramBinary *programBinary);
+ virtual void applyUniforms(const gl::UniformArray *uniformArray);
virtual GLenum applyVertexBuffer(gl::ProgramBinary *programBinary, gl::VertexAttribute vertexAttributes[], GLint first, GLsizei count, GLsizei instances);
virtual GLenum applyIndexBuffer(const GLvoid *indices, gl::Buffer *elementArrayBuffer, GLsizei count, GLenum mode, GLenum type, TranslatedIndexData *indexInfo);
diff --git a/src/libGLESv2/renderer/Renderer9.h b/src/libGLESv2/renderer/Renderer9.h
index aed2a67..47c816a 100644
--- a/src/libGLESv2/renderer/Renderer9.h
+++ b/src/libGLESv2/renderer/Renderer9.h
@@ -24,7 +24,6 @@
#include "common/angleutils.h"
#include "libGLESv2/mathutil.h"
#include "libGLESv2/Context.h"
-#include "libGLESv2/ProgramBinary.h"
#include "libGLESv2/renderer/ShaderCache.h"
#include "libGLESv2/renderer/VertexDeclarationCache.h"
#include "libGLESv2/renderer/Renderer.h"