Compiler - implement proper varying linking
TRAC #11716
Signed-off-by: Shannon Woods
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/trunk@97 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Shader.cpp b/src/libGLESv2/Shader.cpp
index 90ce10f..7144a8f 100644
--- a/src/libGLESv2/Shader.cpp
+++ b/src/libGLESv2/Shader.cpp
@@ -171,7 +171,7 @@
return mHlsl != NULL;
}
-const char *Shader::linkHLSL()
+const char *Shader::getHLSL()
{
return mHlsl;
}
@@ -306,45 +306,6 @@
parseAttributes();
}
-const char *VertexShader::linkHLSL(const char *pixelHLSL)
-{
- if (mHlsl && pixelHLSL)
- {
- const char *input = strstr(pixelHLSL, "struct PS_INPUT");
- char *output = strstr(mHlsl, "struct VS_OUTPUT");
-
- while (*input != '}' && output)
- {
- char varyingName[100];
- unsigned int semanticIndex;
- int matches = sscanf(input, "%s : TEXCOORD%d;", varyingName, &semanticIndex);
-
- if (matches == 2 && semanticIndex != sh::HLSL_FRAG_COORD_SEMANTIC)
- {
- ASSERT(semanticIndex < MAX_VARYING_VECTORS);
- char *varying = strstr(output, varyingName);
-
- if (varying)
- {
- ASSERT(semanticIndex <= 9); // Single character
- varying = strstr(varying, " : TEXCOORD0;");
- varying[11] = '0' + semanticIndex;
- }
- else
- {
- return NULL;
- }
-
- input = strstr(input, ";");
- }
-
- input++;
- }
- }
-
- return mHlsl;
-}
-
const char *VertexShader::getAttributeName(unsigned int attributeIndex)
{
if (attributeIndex < MAX_VERTEX_ATTRIBS)