Cleaned up translator API. Deleted unsupported dead code.
BUG=9
Review URL: http://codereview.appspot.com/1665050

git-svn-id: https://angleproject.googlecode.com/svn/trunk@348 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/compiler/ShaderLang.cpp b/src/compiler/ShaderLang.cpp
index 5818043..57dddf5 100644
--- a/src/compiler/ShaderLang.cpp
+++ b/src/compiler/ShaderLang.cpp
@@ -5,7 +5,7 @@
 //
 
 //
-// Implement the top-level of interface to the compiler/linker,
+// Implement the top-level of interface to the compiler,
 // as defined in ShaderLang.h
 //
 
@@ -28,12 +28,12 @@
 TPoolAllocator* PerProcessGPA = 0;
 //
 // This is the platform independent interface between an OGL driver
-// and the shading language compiler/linker.
+// and the shading language compiler.
 //
 
 //
 // Driver must call this first, once, before doing any other
-// compiler/linker operations.
+// compiler operations.
 //
 int ShInitialize()
 {
@@ -78,8 +78,7 @@
 }
 
 //
-// Driver calls these to create and destroy compiler/linker
-// objects.
+// Driver calls these to create and destroy compiler objects.
 //
 
 ShHandle ShConstructCompiler(EShLanguage language, EShSpec spec)
@@ -92,26 +91,6 @@
     return reinterpret_cast<void*>(base);
 }
 
-ShHandle ShConstructLinker(const EShExecutable executable, int debugOptions)
-{
-    if (!InitThread())
-        return 0;
-
-    TShHandleBase* base = static_cast<TShHandleBase*>(ConstructLinker(executable, debugOptions));
-
-    return reinterpret_cast<void*>(base);
-}
-
-ShHandle ShConstructUniformMap()
-{
-    if (!InitThread())
-        return 0;
-
-    TShHandleBase* base = static_cast<TShHandleBase*>(ConstructUniformMap());
-
-    return reinterpret_cast<void*>(base);
-}
-
 void ShDestruct(ShHandle handle)
 {
     if (handle == 0)
@@ -121,10 +100,6 @@
 
     if (base->getAsCompiler())
         DeleteCompiler(base->getAsCompiler());
-    else if (base->getAsLinker())
-        DeleteLinker(base->getAsLinker());
-    else if (base->getAsUniformMap())
-        DeleteUniformMap(base->getAsUniformMap());
 }
 
 //
@@ -290,7 +265,7 @@
 
     if (success && parseContext.treeRoot) {
         if (optLevel == EShOptNoGeneration)
-            parseContext.infoSink.info.message(EPrefixNone, "No errors.  No code generation or linking was requested.");
+            parseContext.infoSink.info.message(EPrefixNone, "No errors.  No code generation was requested.");
         else {
             success = intermediate.postProcess(parseContext.treeRoot, parseContext.language);
 
@@ -339,105 +314,7 @@
 }
 
 //
-// Do an actual link on the given compile objects.
-//
-// Return:  The return value of is really boolean, indicating
-// success or failure.
-//
-int ShLink(
-    const ShHandle linkHandle,
-    const ShHandle compHandles[],
-    const int numHandles,
-    ShHandle uniformMapHandle,
-    short int** uniformsAccessed,
-    int* numUniformsAccessed)
-
-{
-    if (!InitThread())
-        return 0;
-
-    TShHandleBase* base = reinterpret_cast<TShHandleBase*>(linkHandle);
-    TLinker* linker = static_cast<TLinker*>(base->getAsLinker());
-    if (linker == 0)
-        return 0;
-
-    int returnValue;
-    GlobalPoolAllocator.push();
-    returnValue = ShLinkExt(linkHandle, compHandles, numHandles);
-    GlobalPoolAllocator.pop();
-
-    if (returnValue)
-        return 1;
-
-    return 0;
-}
-//
-// This link method will be eventually used once the ICD supports the new linker interface
-//
-int ShLinkExt(
-    const ShHandle linkHandle,
-    const ShHandle compHandles[],
-    const int numHandles)
-{
-    if (linkHandle == 0 || numHandles == 0)
-        return 0;
-
-    THandleList cObjects;
-
-    {// support MSVC++6.0
-        for (int i = 0; i < numHandles; ++i) {
-            if (compHandles[i] == 0)
-                return 0;
-            TShHandleBase* base = reinterpret_cast<TShHandleBase*>(compHandles[i]);
-            if (base->getAsLinker()) {
-                cObjects.push_back(base->getAsLinker());
-            }
-            if (base->getAsCompiler())
-                cObjects.push_back(base->getAsCompiler());
-    
-    
-            if (cObjects[i] == 0)
-                return 0;
-        }
-    }
-
-    TShHandleBase* base = reinterpret_cast<TShHandleBase*>(linkHandle);
-    TLinker* linker = static_cast<TLinker*>(base->getAsLinker());
-
-    if (linker == 0)
-        return 0;
-
-    linker->infoSink.info.erase();
-    linker->infoSink.obj.erase();
-
-    {// support MSVC++6.0
-        for (int i = 0; i < numHandles; ++i) {
-            if (cObjects[i]->getAsCompiler()) {
-                if (! cObjects[i]->getAsCompiler()->linkable()) {
-                    linker->infoSink.info.message(EPrefixError, "Not all shaders have valid object code.");                
-                    return 0;
-                }
-            }
-        }
-    }
-
-    bool ret = linker->link(cObjects);
-
-    return ret ? 1 : 0;
-}
-
-//
-// ShSetEncrpytionMethod is a place-holder for specifying
-// how source code is encrypted.
-//
-void ShSetEncryptionMethod(ShHandle handle)
-{
-    if (handle == 0)
-        return;
-}
-
-//
-// Return any compiler/linker/uniformmap log of messages for the application.
+// Return any compiler log of messages for the application.
 //
 const char* ShGetInfoLog(const ShHandle handle)
 {
@@ -448,19 +325,17 @@
         return 0;
 
     TShHandleBase* base = static_cast<TShHandleBase*>(handle);
-    TInfoSink* infoSink;
+    TInfoSink* infoSink = 0;
 
     if (base->getAsCompiler())
         infoSink = &(base->getAsCompiler()->getInfoSink());
-    else if (base->getAsLinker())
-        infoSink = &(base->getAsLinker()->getInfoSink());
 
     infoSink->info << infoSink->debug.c_str();
     return infoSink->info.c_str();
 }
 
 //
-// Return any unlinked object code.
+// Return any object code.
 //
 const char* ShGetObjectCode(const ShHandle handle)
 {
@@ -478,116 +353,3 @@
 
     return infoSink->obj.c_str();
 }
-
-//
-// Return the resulting binary code from the link process.  Structure
-// is machine dependent.
-//
-const void* ShGetExecutable(const ShHandle handle)
-{
-    if (!InitThread())
-        return 0;
-
-    if (handle == 0)
-        return 0;
-
-    TShHandleBase* base = reinterpret_cast<TShHandleBase*>(handle);
-    
-    TLinker* linker = static_cast<TLinker*>(base->getAsLinker());
-    if (linker == 0)
-        return 0;
-
-    return linker->getObjectCode();
-}
-
-//
-// Let the linker know where the application said it's attributes are bound.
-// The linker does not use these values, they are remapped by the ICD or
-// hardware.  It just needs them to know what's aliased.
-//
-// Return:  The return value of is really boolean, indicating
-// success or failure.
-//
-int ShSetVirtualAttributeBindings(const ShHandle handle, const ShBindingTable* table)
-{    
-    if (!InitThread())
-        return 0;
-
-    if (handle == 0)
-        return 0;
-
-    TShHandleBase* base = reinterpret_cast<TShHandleBase*>(handle);
-    TLinker* linker = static_cast<TLinker*>(base->getAsLinker());
-
-    if (linker == 0)
-        return 0;
-   
-    linker->setAppAttributeBindings(table);
-
-    return 1;
-}
-
-//
-// Let the linker know where the predefined attributes have to live.
-//
-int ShSetFixedAttributeBindings(const ShHandle handle, const ShBindingTable* table)
-{
-    if (!InitThread())
-        return 0;
-
-    if (handle == 0)
-        return 0;
-
-    TShHandleBase* base = reinterpret_cast<TShHandleBase*>(handle);
-    TLinker* linker = static_cast<TLinker*>(base->getAsLinker());
-
-    if (linker == 0)
-        return 0;
-
-    linker->setFixedAttributeBindings(table);
-    return 1;
-}
-
-//
-// Some attribute locations are off-limits to the linker...
-//
-int ShExcludeAttributes(const ShHandle handle, int *attributes, int count)
-{
-    if (!InitThread())
-        return 0;
-
-    if (handle == 0)
-        return 0;
-
-    TShHandleBase* base = reinterpret_cast<TShHandleBase*>(handle);
-    TLinker* linker = static_cast<TLinker*>(base->getAsLinker());
-    if (linker == 0)
-        return 0;
-
-    linker->setExcludedAttributes(attributes, count);
-
-    return 1;
-}
-
-//
-// Return the index for OpenGL to use for knowing where a uniform lives.
-//
-// Return:  The return value of is really boolean, indicating
-// success or failure.
-//
-int ShGetUniformLocation(const ShHandle handle, const char* name)
-{
-    if (!InitThread())
-        return 0;
-
-    if (handle == 0)
-        return -1;
-
-    TShHandleBase* base = reinterpret_cast<TShHandleBase*>(handle);
-    TUniformMap* uniformMap= base->getAsUniformMap();
-    if (uniformMap == 0)
-        return -1;
-
-    return uniformMap->getLocation(name);
-}
-