summarylogtreecommitdiffstats
path: root/commit-4de44cb
diff options
context:
space:
mode:
Diffstat (limited to 'commit-4de44cb')
-rw-r--r--commit-4de44cb747
1 files changed, 0 insertions, 747 deletions
diff --git a/commit-4de44cb b/commit-4de44cb
deleted file mode 100644
index 4c1c63ecbe83..000000000000
--- a/commit-4de44cb
+++ /dev/null
@@ -1,747 +0,0 @@
-commit 4de44cb67e9e36966fb1993c0be35659a47182ef
-Author: Zhenyao Mo <zmo@chromium.org>
-Date: Wed Oct 29 18:03:46 2014 -0700
-
- Change ShaderLang APIs from c style to c++ style.
-
- BUG=angle:816
- TEST=gpu_unittests,angle_unittests,webgl_conformance
-
- Change-Id: I0b46c11f6055a82511bb946a6dc491360835526e
- Reviewed-on: https://chromium-review.googlesource.com/226410
- Reviewed-by: Zhenyao Mo <zmo@chromium.org>
- Tested-by: Zhenyao Mo <zmo@chromium.org>
-
-diff --git a/include/GLSLANG/ShaderLang.h b/include/GLSLANG/ShaderLang.h
-index 0c1f8a0..647fed6 100644
---- a/include/GLSLANG/ShaderLang.h
-+++ b/include/GLSLANG/ShaderLang.h
-@@ -27,6 +27,10 @@
-
- #include "KHR/khrplatform.h"
-
-+#include <map>
-+#include <string>
-+#include <vector>
-+
- //
- // This is the platform independent interface between an OGL driver
- // and the shading language compiler.
-@@ -42,13 +46,9 @@ typedef unsigned int GLenum;
- // Note: make sure to increment ANGLE_SH_VERSION when changing ShaderVars.h
- #include "ShaderVars.h"
-
--#ifdef __cplusplus
--extern "C" {
--#endif
--
- // Version number for shader translation API.
- // It is incremented every time the API changes.
--#define ANGLE_SH_VERSION 131
-+#define ANGLE_SH_VERSION 132
-
- typedef enum {
- SH_GLES2_SPEC = 0x8B40,
-@@ -88,18 +88,6 @@ typedef enum {
- SH_HLSL11_OUTPUT = 0x8B48
- } ShShaderOutput;
-
--typedef enum {
-- SH_INFO_LOG_LENGTH = 0x8B84,
-- SH_OBJECT_CODE_LENGTH = 0x8B88, // GL_SHADER_SOURCE_LENGTH
-- SH_MAPPED_NAME_MAX_LENGTH = 0x6000,
-- SH_NAME_MAX_LENGTH = 0x6001,
-- SH_HASHED_NAME_MAX_LENGTH = 0x6002,
-- SH_HASHED_NAMES_COUNT = 0x6003,
-- SH_SHADER_VERSION = 0x6004,
-- SH_RESOURCES_STRING_LENGTH = 0x6005,
-- SH_OUTPUT_TYPE = 0x6006
--} ShShaderInfo;
--
- // Compile options.
- typedef enum {
- SH_VALIDATE = 0,
-@@ -198,14 +186,14 @@ typedef enum {
- //
- // Driver must call this first, once, before doing any other
- // compiler operations.
--// If the function succeeds, the return value is nonzero, else zero.
-+// If the function succeeds, the return value is true, else false.
- //
--COMPILER_EXPORT int ShInitialize();
-+COMPILER_EXPORT bool ShInitialize();
- //
- // Driver should call this at shutdown.
--// If the function succeeds, the return value is nonzero, else zero.
-+// If the function succeeds, the return value is true, else false.
- //
--COMPILER_EXPORT int ShFinalize();
-+COMPILER_EXPORT bool ShFinalize();
-
- // The 64 bits hash function. The first parameter is the input string; the
- // second parameter is the string length.
-@@ -273,7 +261,7 @@ typedef struct
- // Parameters:
- // resources: The object to initialize. Will be comparable with memcmp.
- //
--COMPILER_EXPORT void ShInitBuiltInResources(ShBuiltInResources* resources);
-+COMPILER_EXPORT void ShInitBuiltInResources(ShBuiltInResources *resources);
-
- //
- // ShHandle held by but opaque to the driver. It is allocated,
-@@ -282,18 +270,15 @@ COMPILER_EXPORT void ShInitBuiltInResources(ShBuiltInResources* resources);
- //
- // If handle creation fails, 0 will be returned.
- //
--typedef void* ShHandle;
-+typedef void *ShHandle;
-
- //
--// Returns the a concatenated list of the items in ShBuiltInResources as a string.
-+// Returns the a concatenated list of the items in ShBuiltInResources as a
-+// null-terminated string.
- // This function must be updated whenever ShBuiltInResources is changed.
- // Parameters:
- // handle: Specifies the handle of the compiler to be used.
--// outStringLen: Specifies the size of the buffer, in number of characters. The size
--// of the buffer required to store the resources string can be obtained
--// by calling ShGetInfo with SH_RESOURCES_STRING_LENGTH.
--// outStr: Returns a null-terminated string representing all the built-in resources.
--COMPILER_EXPORT void ShGetBuiltInResourcesString(const ShHandle handle, size_t outStringLen, char *outStr);
-+COMPILER_EXPORT const std::string &ShGetBuiltInResourcesString(const ShHandle handle);
-
- //
- // Driver calls these to create and destroy compiler objects.
-@@ -311,12 +296,12 @@ COMPILER_EXPORT ShHandle ShConstructCompiler(
- sh::GLenum type,
- ShShaderSpec spec,
- ShShaderOutput output,
-- const ShBuiltInResources* resources);
-+ const ShBuiltInResources *resources);
- COMPILER_EXPORT void ShDestruct(ShHandle handle);
-
- //
- // Compiles the given shader source.
--// If the function succeeds, the return value is nonzero, else zero.
-+// If the function succeeds, the return value is true, else false.
- // Parameters:
- // handle: Specifies the handle of compiler to be used.
- // shaderStrings: Specifies an array of pointers to null-terminated strings
-@@ -338,74 +323,36 @@ COMPILER_EXPORT void ShDestruct(ShHandle handle);
- // SH_VARIABLES: Extracts attributes, uniforms, and varyings.
- // Can be queried by calling ShGetVariableInfo().
- //
--COMPILER_EXPORT int ShCompile(
-+COMPILER_EXPORT bool ShCompile(
- const ShHandle handle,
-- const char* const shaderStrings[],
-+ const char * const shaderStrings[],
- size_t numStrings,
-- int compileOptions
-- );
-+ int compileOptions);
-
--// Returns a parameter from a compiled shader.
--// Parameters:
--// handle: Specifies the compiler
--// pname: Specifies the parameter to query.
--// The following parameters are defined:
--// SH_INFO_LOG_LENGTH: the number of characters in the information log
--// including the null termination character.
--// SH_OBJECT_CODE_LENGTH: the number of characters in the object code
--// including the null termination character.
--// SH_MAPPED_NAME_MAX_LENGTH: the length of the mapped variable name including
--// the null termination character.
--// SH_NAME_MAX_LENGTH: the max length of a user-defined name including the
--// null termination character.
--// SH_HASHED_NAME_MAX_LENGTH: the max length of a hashed name including the
--// null termination character.
--// SH_HASHED_NAMES_COUNT: the number of hashed names from the latest compile.
--// SH_SHADER_VERSION: the version of the shader language
--// SH_OUTPUT_TYPE: the currently set language output type
--//
--// params: Requested parameter
--COMPILER_EXPORT void ShGetInfo(const ShHandle handle,
-- ShShaderInfo pname,
-- size_t* params);
-+// Return the version of the shader language.
-+COMPILER_EXPORT int ShGetShaderVersion(const ShHandle handle);
-+
-+// Return the currently set language output type.
-+COMPILER_EXPORT ShShaderOutput ShGetShaderOutputType(
-+ const ShHandle handle);
-
--// Returns nul-terminated information log for a compiled shader.
-+// Returns null-terminated information log for a compiled shader.
- // Parameters:
- // handle: Specifies the compiler
--// infoLog: Specifies an array of characters that is used to return
--// the information log. It is assumed that infoLog has enough memory
--// to accomodate the information log. The size of the buffer required
--// to store the returned information log can be obtained by calling
--// ShGetInfo with SH_INFO_LOG_LENGTH.
--COMPILER_EXPORT void ShGetInfoLog(const ShHandle handle, char* infoLog);
-+COMPILER_EXPORT const std::string &ShGetInfoLog(const ShHandle handle);
-
- // Returns null-terminated object code for a compiled shader.
- // Parameters:
- // handle: Specifies the compiler
--// infoLog: Specifies an array of characters that is used to return
--// the object code. It is assumed that infoLog has enough memory to
--// accomodate the object code. The size of the buffer required to
--// store the returned object code can be obtained by calling
--// ShGetInfo with SH_OBJECT_CODE_LENGTH.
--COMPILER_EXPORT void ShGetObjectCode(const ShHandle handle, char* objCode);
--
--// Returns information about a name hashing entry from the latest compile.
-+COMPILER_EXPORT const std::string &ShGetObjectCode(const ShHandle handle);
-+
-+// Returns a (original_name, hash) map containing all the user defined
-+// names in the shader, including variable names, function names, struct
-+// names, and struct field names.
- // Parameters:
- // handle: Specifies the compiler
--// index: Specifies the index of the name hashing entry to be queried.
--// name: Returns a null terminated string containing the user defined name.
--// It is assumed that name has enough memory to accomodate the name.
--// The size of the buffer required to store the user defined name can
--// be obtained by calling ShGetInfo with SH_NAME_MAX_LENGTH.
--// hashedName: Returns a null terminated string containing the hashed name of
--// the uniform variable, It is assumed that hashedName has enough
--// memory to accomodate the name. The size of the buffer required
--// to store the name can be obtained by calling ShGetInfo with
--// SH_HASHED_NAME_MAX_LENGTH.
--COMPILER_EXPORT void ShGetNameHashingEntry(const ShHandle handle,
-- int index,
-- char* name,
-- char* hashedName);
-+COMPILER_EXPORT const std::map<std::string, std::string> *ShGetNameHashingMap(
-+ const ShHandle handle);
-
- // Shader variable inspection.
- // Returns a pointer to a list of variables of the designated type.
-@@ -425,17 +372,17 @@ typedef struct
- int size;
- } ShVariableInfo;
-
--// Returns 1 if the passed in variables pack in maxVectors following
-+// Returns true if the passed in variables pack in maxVectors following
- // the packing rules from the GLSL 1.017 spec, Appendix A, section 7.
--// Returns 0 otherwise. Also look at the SH_ENFORCE_PACKING_RESTRICTIONS
-+// Returns false otherwise. Also look at the SH_ENFORCE_PACKING_RESTRICTIONS
- // flag above.
- // Parameters:
- // maxVectors: the available rows of registers.
- // varInfoArray: an array of variable info (types and sizes).
- // varInfoArraySize: the size of the variable array.
--COMPILER_EXPORT int ShCheckVariablesWithinPackingLimits(
-+COMPILER_EXPORT bool ShCheckVariablesWithinPackingLimits(
- int maxVectors,
-- ShVariableInfo* varInfoArray,
-+ ShVariableInfo *varInfoArray,
- size_t varInfoArraySize);
-
- // Gives the compiler-assigned register for an interface block.
-@@ -446,7 +393,7 @@ COMPILER_EXPORT int ShCheckVariablesWithinPackingLimits(
- // interfaceBlockName: Specifies the interface block
- // indexOut: output variable that stores the assigned register
- COMPILER_EXPORT bool ShGetInterfaceBlockRegister(const ShHandle handle,
-- const char *interfaceBlockName,
-+ const std::string &interfaceBlockName,
- unsigned int *indexOut);
-
- // Gives the compiler-assigned register for uniforms in the default
-@@ -458,11 +405,7 @@ COMPILER_EXPORT bool ShGetInterfaceBlockRegister(const ShHandle handle,
- // interfaceBlockName: Specifies the uniform
- // indexOut: output variable that stores the assigned register
- COMPILER_EXPORT bool ShGetUniformRegister(const ShHandle handle,
-- const char *uniformName,
-+ const std::string &uniformName,
- unsigned int *indexOut);
-
--#ifdef __cplusplus
--}
--#endif
--
- #endif // _COMPILER_INTERFACE_INCLUDED_
-diff --git a/src/compiler/translator/Compiler.h b/src/compiler/translator/Compiler.h
-index 145ecb4..b6c9d13 100644
---- a/src/compiler/translator/Compiler.h
-+++ b/src/compiler/translator/Compiler.h
-@@ -80,7 +80,7 @@ class TCompiler : public TShHandleBase
- TSymbolTable& getSymbolTable() { return symbolTable; }
- ShShaderSpec getShaderSpec() const { return shaderSpec; }
- ShShaderOutput getOutputType() const { return outputType; }
-- std::string getBuiltInResourcesString() const { return builtInResourcesString; }
-+ const std::string &getBuiltInResourcesString() const { return builtInResourcesString; }
-
- // Get the resources set by InitBuiltInSymbolTable
- const ShBuiltInResources& getResources() const;
-diff --git a/src/compiler/translator/ShaderLang.cpp b/src/compiler/translator/ShaderLang.cpp
-index 35dac5f..0d6a1d6 100644
---- a/src/compiler/translator/ShaderLang.cpp
-+++ b/src/compiler/translator/ShaderLang.cpp
-@@ -84,32 +84,48 @@ const std::vector<VarT> *GetShaderVariables(const ShHandle handle, ShaderVariabl
- return GetVariableList<VarT>(compiler, variableType);
- }
-
-+TCompiler *GetCompilerFromHandle(ShHandle handle)
-+{
-+ if (!handle)
-+ return NULL;
-+ TShHandleBase *base = static_cast<TShHandleBase *>(handle);
-+ return base->getAsCompiler();
- }
-
-+TranslatorHLSL *GetTranslatorHLSLFromHandle(ShHandle handle)
-+{
-+ if (!handle)
-+ return NULL;
-+ TShHandleBase *base = static_cast<TShHandleBase *>(handle);
-+ return base->getAsTranslatorHLSL();
-+}
-+
-+} // namespace anonymous
-+
- //
- // Driver must call this first, once, before doing any other compiler operations.
- // Subsequent calls to this function are no-op.
- //
--int ShInitialize()
-+bool ShInitialize()
- {
- if (!isInitialized)
- {
- isInitialized = InitProcess();
- }
-- return isInitialized ? 1 : 0;
-+ return isInitialized;
- }
-
- //
- // Cleanup symbol tables
- //
--int ShFinalize()
-+bool ShFinalize()
- {
- if (isInitialized)
- {
- DetachProcess();
- isInitialized = false;
- }
-- return 1;
-+ return true;
- }
-
- //
-@@ -190,23 +206,13 @@ void ShDestruct(ShHandle handle)
- DeleteCompiler(base->getAsCompiler());
- }
-
--void ShGetBuiltInResourcesString(const ShHandle handle, size_t outStringLen, char *outString)
-+const std::string &ShGetBuiltInResourcesString(const ShHandle handle)
- {
-- if (!handle || !outString)
-- {
-- return;
-- }
--
-- TShHandleBase *base = static_cast<TShHandleBase*>(handle);
-- TCompiler *compiler = base->getAsCompiler();
-- if (!compiler)
-- {
-- return;
-- }
--
-- strncpy(outString, compiler->getBuiltInResourcesString().c_str(), outStringLen);
-- outString[outStringLen - 1] = '\0';
-+ TCompiler *compiler = GetCompilerFromHandle(handle);
-+ ASSERT(compiler);
-+ return compiler->getBuiltInResourcesString();
- }
-+
- //
- // Do an actual compile on the given strings. The result is left
- // in the given compile object.
-@@ -214,149 +220,62 @@ void ShGetBuiltInResourcesString(const ShHandle handle, size_t outStringLen, cha
- // Return: The return value of ShCompile is really boolean, indicating
- // success or failure.
- //
--int ShCompile(
-+bool ShCompile(
- const ShHandle handle,
-- const char* const shaderStrings[],
-+ const char *const shaderStrings[],
- size_t numStrings,
- int compileOptions)
- {
-- if (handle == 0)
-- return 0;
--
-- TShHandleBase* base = reinterpret_cast<TShHandleBase*>(handle);
-- TCompiler* compiler = base->getAsCompiler();
-- if (compiler == 0)
-- return 0;
-+ TCompiler *compiler = GetCompilerFromHandle(handle);
-+ ASSERT(compiler);
-
-- bool success = compiler->compile(shaderStrings, numStrings, compileOptions);
-- return success ? 1 : 0;
-+ return compiler->compile(shaderStrings, numStrings, compileOptions);
- }
-
--void ShGetInfo(const ShHandle handle, ShShaderInfo pname, size_t* params)
-+int ShGetShaderVersion(const ShHandle handle)
- {
-- if (!handle || !params)
-- return;
--
-- TShHandleBase* base = static_cast<TShHandleBase*>(handle);
-- TCompiler* compiler = base->getAsCompiler();
-- if (!compiler) return;
-+ TCompiler* compiler = GetCompilerFromHandle(handle);
-+ ASSERT(compiler);
-+ return compiler->getShaderVersion();
-+}
-
-- switch(pname)
-- {
-- case SH_INFO_LOG_LENGTH:
-- *params = compiler->getInfoSink().info.size() + 1;
-- break;
-- case SH_OBJECT_CODE_LENGTH:
-- *params = compiler->getInfoSink().obj.size() + 1;
-- break;
-- case SH_MAPPED_NAME_MAX_LENGTH:
-- // Use longer length than MAX_SHORTENED_IDENTIFIER_SIZE to
-- // handle array and struct dereferences.
-- *params = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec());
-- break;
-- case SH_NAME_MAX_LENGTH:
-- *params = 1 + GetGlobalMaxTokenSize(compiler->getShaderSpec());
-- break;
-- case SH_HASHED_NAME_MAX_LENGTH:
-- if (compiler->getHashFunction() == NULL) {
-- *params = 0;
-- } else {
-- // 64 bits hashing output requires 16 bytes for hex
-- // representation.
-- const char HashedNamePrefix[] = HASHED_NAME_PREFIX;
-- (void)HashedNamePrefix;
-- *params = 16 + sizeof(HashedNamePrefix);
-- }
-- break;
-- case SH_HASHED_NAMES_COUNT:
-- *params = compiler->getNameMap().size();
-- break;
-- case SH_SHADER_VERSION:
-- *params = compiler->getShaderVersion();
-- break;
-- case SH_RESOURCES_STRING_LENGTH:
-- *params = compiler->getBuiltInResourcesString().length() + 1;
-- break;
-- case SH_OUTPUT_TYPE:
-- *params = compiler->getOutputType();
-- break;
-- default: UNREACHABLE();
-- }
-+ShShaderOutput ShGetShaderOutputType(const ShHandle handle)
-+{
-+ TCompiler* compiler = GetCompilerFromHandle(handle);
-+ ASSERT(compiler);
-+ return compiler->getOutputType();
- }
-
- //
- // Return any compiler log of messages for the application.
- //
--void ShGetInfoLog(const ShHandle handle, char* infoLog)
-+const std::string &ShGetInfoLog(const ShHandle handle)
- {
-- if (!handle || !infoLog)
-- return;
-+ TCompiler *compiler = GetCompilerFromHandle(handle);
-+ ASSERT(compiler);
-
-- TShHandleBase* base = static_cast<TShHandleBase*>(handle);
-- TCompiler* compiler = base->getAsCompiler();
-- if (!compiler) return;
--
-- TInfoSink& infoSink = compiler->getInfoSink();
-- strcpy(infoLog, infoSink.info.c_str());
-+ TInfoSink &infoSink = compiler->getInfoSink();
-+ return infoSink.info.str();
- }
-
- //
- // Return any object code.
- //
--void ShGetObjectCode(const ShHandle handle, char* objCode)
-+const std::string &ShGetObjectCode(const ShHandle handle)
- {
-- if (!handle || !objCode)
-- return;
-+ TCompiler *compiler = GetCompilerFromHandle(handle);
-+ ASSERT(compiler);
-
-- TShHandleBase* base = static_cast<TShHandleBase*>(handle);
-- TCompiler* compiler = base->getAsCompiler();
-- if (!compiler) return;
--
-- TInfoSink& infoSink = compiler->getInfoSink();
-- strcpy(objCode, infoSink.obj.c_str());
-+ TInfoSink &infoSink = compiler->getInfoSink();
-+ return infoSink.obj.str();
- }
-
--void ShGetNameHashingEntry(const ShHandle handle,
-- int index,
-- char* name,
-- char* hashedName)
-+const std::map<std::string, std::string> *ShGetNameHashingMap(
-+ const ShHandle handle)
- {
-- if (!handle || !name || !hashedName || index < 0)
-- return;
--
-- TShHandleBase* base = static_cast<TShHandleBase*>(handle);
-- TCompiler* compiler = base->getAsCompiler();
-- if (!compiler) return;
--
-- const NameMap& nameMap = compiler->getNameMap();
-- if (index >= static_cast<int>(nameMap.size()))
-- return;
--
-- NameMap::const_iterator it = nameMap.begin();
-- for (int i = 0; i < index; ++i)
-- ++it;
--
-- size_t len = it->first.length() + 1;
-- size_t max_len = 0;
-- ShGetInfo(handle, SH_NAME_MAX_LENGTH, &max_len);
-- if (len > max_len) {
-- ASSERT(false);
-- len = max_len;
-- }
-- strncpy(name, it->first.c_str(), len);
-- // To be on the safe side in case the source is longer than expected.
-- name[len - 1] = '\0';
--
-- len = it->second.length() + 1;
-- max_len = 0;
-- ShGetInfo(handle, SH_HASHED_NAME_MAX_LENGTH, &max_len);
-- if (len > max_len) {
-- ASSERT(false);
-- len = max_len;
-- }
-- strncpy(hashedName, it->second.c_str(), len);
-- // To be on the safe side in case the source is longer than expected.
-- hashedName[len - 1] = '\0';
-+ TCompiler *compiler = GetCompilerFromHandle(handle);
-+ ASSERT(compiler);
-+ return &(compiler->getNameMap());
- }
-
- const std::vector<sh::Uniform> *ShGetUniforms(const ShHandle handle)
-@@ -384,11 +303,11 @@ const std::vector<sh::InterfaceBlock> *ShGetInterfaceBlocks(const ShHandle handl
- return GetShaderVariables<sh::InterfaceBlock>(handle, SHADERVAR_INTERFACEBLOCK);
- }
-
--int ShCheckVariablesWithinPackingLimits(
-- int maxVectors, ShVariableInfo* varInfoArray, size_t varInfoArraySize)
-+bool ShCheckVariablesWithinPackingLimits(
-+ int maxVectors, ShVariableInfo *varInfoArray, size_t varInfoArraySize)
- {
- if (varInfoArraySize == 0)
-- return 1;
-+ return true;
- ASSERT(varInfoArray);
- std::vector<sh::ShaderVariable> variables;
- for (size_t ii = 0; ii < varInfoArraySize; ++ii)
-@@ -397,24 +316,17 @@ int ShCheckVariablesWithinPackingLimits(
- variables.push_back(var);
- }
- VariablePacker packer;
-- return packer.CheckVariablesWithinPackingLimits(maxVectors, variables) ? 1 : 0;
-+ return packer.CheckVariablesWithinPackingLimits(maxVectors, variables);
- }
-
- bool ShGetInterfaceBlockRegister(const ShHandle handle,
-- const char *interfaceBlockName,
-+ const std::string &interfaceBlockName,
- unsigned int *indexOut)
- {
-- if (!handle || !interfaceBlockName || !indexOut)
-- {
-- return false;
-- }
-+ ASSERT(indexOut);
-
-- TShHandleBase* base = static_cast<TShHandleBase*>(handle);
-- TranslatorHLSL* translator = base->getAsTranslatorHLSL();
-- if (!translator)
-- {
-- return false;
-- }
-+ TranslatorHLSL *translator = GetTranslatorHLSLFromHandle(handle);
-+ ASSERT(translator);
-
- if (!translator->hasInterfaceBlock(interfaceBlockName))
- {
-@@ -426,20 +338,12 @@ bool ShGetInterfaceBlockRegister(const ShHandle handle,
- }
-
- bool ShGetUniformRegister(const ShHandle handle,
-- const char *uniformName,
-+ const std::string &uniformName,
- unsigned int *indexOut)
- {
-- if (!handle || !uniformName || !indexOut)
-- {
-- return false;
-- }
--
-- TShHandleBase* base = static_cast<TShHandleBase*>(handle);
-- TranslatorHLSL* translator = base->getAsTranslatorHLSL();
-- if (!translator)
-- {
-- return false;
-- }
-+ ASSERT(indexOut);
-+ TranslatorHLSL *translator = GetTranslatorHLSLFromHandle(handle);
-+ ASSERT(translator);
-
- if (!translator->hasUniform(uniformName))
- {
-diff --git a/src/libGLESv2/renderer/d3d/ShaderD3D.cpp b/src/libGLESv2/renderer/d3d/ShaderD3D.cpp
-index d08a81d..44e73e5 100644
---- a/src/libGLESv2/renderer/d3d/ShaderD3D.cpp
-+++ b/src/libGLESv2/renderer/d3d/ShaderD3D.cpp
-@@ -102,7 +102,7 @@ void ShaderD3D::initializeCompiler()
- {
- if (!mFragmentCompiler)
- {
-- int result = ShInitialize();
-+ bool result = ShInitialize();
-
- if (result)
- {
-@@ -252,23 +252,16 @@
- result = ShCompile(compiler, sourceStrings, ArraySize(sourceStrings), compileOptions | SH_SOURCE_PATH);
- }
-
-- size_t shaderVersion = 100;
-- ShGetInfo(compiler, SH_SHADER_VERSION, &shaderVersion);
-+ mShaderVersion = ShGetShaderVersion(compiler);
-
-- mShaderVersion = static_cast<int>(shaderVersion);
--
-- if (shaderVersion == 300 && data.clientVersion < 3)
-+ if (mShaderVersion == 300 && data.clientVersion < 3)
- {
- mInfoLog = "GLSL ES 3.00 is not supported by OpenGL ES 2.0 contexts";
- TRACE("\n%s", mInfoLog.c_str());
- }
- else if (result)
- {
-- size_t objCodeLen = 0;
-- ShGetInfo(compiler, SH_OBJECT_CODE_LENGTH, &objCodeLen);
--
-- std::vector<char> outputHLSL(objCodeLen);
-- ShGetObjectCode(compiler, outputHLSL.data());
-+ mHlsl = ShGetObjectCode(compiler);
-
- #ifdef _DEBUG
- // Prefix hlsl shader with commented out glsl shader
-@@ -288,10 +281,8 @@ void ShaderD3D::compileToHLSL(void *compiler, const std::string &source)
- curPos = (nextLine == std::string::npos) ? std::string::npos : (nextLine + 1);
- }
- hlslStream << "\n\n";
-- hlslStream << outputHLSL.data();
-+ hlslStream << mHlsl;
- mHlsl = hlslStream.str();
--#else
-- mHlsl = outputHLSL.data();
- #endif
-
- mUniforms = *GetShaderVariables(ShGetUniforms(compiler));
-@@ -303,7 +294,7 @@ void ShaderD3D::compileToHLSL(void *compiler, const std::string &source)
- if (uniform.staticUse)
- {
- unsigned int index = -1;
-- bool result = ShGetUniformRegister(compiler, uniform.name.c_str(), &index);
-+ bool result = ShGetUniformRegister(compiler, uniform.name, &index);
- UNUSED_ASSERTION_VARIABLE(result);
- ASSERT(result);
-
-@@ -320,7 +311,7 @@ void ShaderD3D::compileToHLSL(void *compiler, const std::string &source)
- if (interfaceBlock.staticUse)
- {
- unsigned int index = -1;
-- bool result = ShGetInterfaceBlockRegister(compiler, interfaceBlock.name.c_str(), &index);
-+ bool result = ShGetInterfaceBlockRegister(compiler, interfaceBlock.name, &index);
- UNUSED_ASSERTION_VARIABLE(result);
- ASSERT(result);
-
-@@ -330,14 +321,9 @@ void ShaderD3D::compileToHLSL(void *compiler, const std::string &source)
- }
- else
- {
-- size_t infoLogLen = 0;
-- ShGetInfo(compiler, SH_INFO_LOG_LENGTH, &infoLogLen);
-+ mInfoLog = ShGetInfoLog(compiler);
-
-- std::vector<char> infoLog(infoLogLen);
-- ShGetInfoLog(compiler, infoLog.data());
-- mInfoLog = infoLog.data();
--
-- TRACE("\n%s", infoLog.data());
-+ TRACE("\n%s", mInfoLog.c_str());
- }
- }
-
-@@ -419,10 +405,7 @@
- default: UNREACHABLE(); return SH_HLSL9_OUTPUT;
- }
-
-- size_t outputType = 0;
-- ShGetInfo(compiler, SH_OUTPUT_TYPE, &outputType);
--
-- return static_cast<ShShaderOutput>(outputType);
-+ return ShGetShaderOutputType(compiler);
- }
-
- bool ShaderD3D::compile(const gl::Data &data, const std::string &source)
-diff --git a/tests/compiler_tests/ExpressionLimit_test.cpp b/tests/compiler_tests/ExpressionLimit_test.cpp
-index 0236064..1dc2be6 100644
---- a/tests/compiler_tests/ExpressionLimit_test.cpp
-+++ b/tests/compiler_tests/ExpressionLimit_test.cpp
-@@ -144,19 +144,18 @@ protected:
- // substring in the error log. This way we know the error is specific
- // to the issue we are testing.
- bool CheckShaderCompilation(ShHandle compiler,
-- const char* source,
-+ const char *source,
- int compileOptions,
-- const char* expected_error) {
-+ const char *expected_error)
-+ {
- bool success = ShCompile(compiler, &source, 1, compileOptions) != 0;
-- if (success) {
-+ if (success)
-+ {
- success = !expected_error;
-- } else {
-- size_t bufferLen = 0;
-- ShGetInfo(compiler, SH_INFO_LOG_LENGTH, &bufferLen);
-- char* buffer(new char [bufferLen]);
-- ShGetInfoLog(compiler, buffer);
-- std::string log(buffer, buffer + bufferLen);
-- delete [] buffer;
-+ }
-+ else
-+ {
-+ std::string log = ShGetInfoLog(compiler);
- if (expected_error)
- success = log.find(expected_error) != std::string::npos;
-