# HG changeset patch # Parent 438b6d09a9fac42fd66235e626a09a0ea4e88b61 diff --git a/gfx/angle/include/GLSLANG/ShaderLang.h b/gfx/angle/include/GLSLANG/ShaderLang.h --- a/gfx/angle/include/GLSLANG/ShaderLang.h +++ b/gfx/angle/include/GLSLANG/ShaderLang.h @@ -1,16 +1,36 @@ // // Copyright (c) 2002-2010 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. // #ifndef _COMPILER_INTERFACE_INCLUDED_ #define _COMPILER_INTERFACE_INCLUDED_ +#ifdef MOZILLA_VERSION +#include "nscore.h" + +#ifdef WIN32 +# if !defined(MOZ_ENABLE_LIBXUL) && !defined(MOZ_STATIC_BUILD) +# ifdef ANGLE_BUILD +# define ANGLE_API NS_EXPORT +# else +# define ANGLE_API NS_IMPORT +# endif +# else +# define ANGLE_API /*nothing*/ +# endif +#else +# define ANGLE_API NS_EXTERNAL_VIS +#endif +#else +#define ANGLE_API /*nothing*/ +#endif + // // This is the platform independent interface between an OGL driver // and the shading language compiler. // #ifdef __cplusplus extern "C" { #endif @@ -76,22 +96,22 @@ typedef enum { SH_SOURCE_PATH = 0x0200, } ShCompileOptions; // // Driver must call this first, once, before doing any other // compiler operations. // If the function succeeds, the return value is nonzero, else zero. // -int ShInitialize(); +ANGLE_API int ShInitialize(); // // Driver should call this at shutdown. // If the function succeeds, the return value is nonzero, else zero. // -int ShFinalize(); +ANGLE_API int ShFinalize(); // // Implementation dependent built-in resources (constants and extensions). // The names for these resources has been obtained by stripping gl_/GL_. // typedef struct { // Constants. @@ -107,17 +127,17 @@ typedef struct // Extensions. // Set to 1 to enable the extension, else 0. int OES_standard_derivatives; } ShBuiltInResources; // // Initialize built-in resources with minimum expected values. // -void ShInitBuiltInResources(ShBuiltInResources* resources); +ANGLE_API void ShInitBuiltInResources(ShBuiltInResources* resources); // // ShHandle held by but opaque to the driver. It is allocated, // managed, and de-allocated by the compiler. It's contents // are defined by and used by the compiler. // // If handle creation fails, 0 will be returned. // @@ -127,19 +147,19 @@ typedef void* ShHandle; // Driver calls these to create and destroy compiler objects. // // Returns the handle of constructed compiler. // Parameters: // type: Specifies the type of shader - SH_FRAGMENT_SHADER or SH_VERTEX_SHADER. // spec: Specifies the language spec the compiler must conform to - // SH_GLES2_SPEC or SH_WEBGL_SPEC. // resources: Specifies the built-in resources. -ShHandle ShConstructCompiler(ShShaderType type, ShShaderSpec spec, +ANGLE_API ShHandle ShConstructCompiler(ShShaderType type, ShShaderSpec spec, const ShBuiltInResources* resources); -void ShDestruct(ShHandle handle); +ANGLE_API void ShDestruct(ShHandle handle); // // Compiles the given shader source. // If the function succeeds, the return value is nonzero, else zero. // Parameters: // handle: Specifies the handle of compiler to be used. // shaderStrings: Specifies an array of pointers to null-terminated strings // containing the shader source code. @@ -156,17 +176,17 @@ void ShDestruct(ShHandle handle); // SH_INTERMEDIATE_TREE: Writes intermediate tree to info log. // Can be queried by calling ShGetInfoLog(). // SH_OBJECT_CODE: Translates intermediate tree to glsl or hlsl shader. // Can be queried by calling ShGetObjectCode(). // SH_ATTRIBUTES_UNIFORMS: Extracts attributes and uniforms. // Can be queried by calling ShGetActiveAttrib() and // ShGetActiveUniform(). // -int ShCompile( +ANGLE_API int ShCompile( const ShHandle handle, const char* const shaderStrings[], const int numStrings, int compileOptions ); // Returns a parameter from a compiled shader. // Parameters: @@ -182,53 +202,53 @@ int ShCompile( // variable name including the null // termination character. // SH_ACTIVE_UNIFORMS: the number of active uniform variables. // SH_ACTIVE_UNIFORM_MAX_LENGTH: the length of the longest active uniform // variable name including the null // termination character. // // params: Requested parameter -void ShGetInfo(const ShHandle handle, ShShaderInfo pname, int* params); +ANGLE_API void ShGetInfo(const ShHandle handle, ShShaderInfo pname, int* params); // Returns nul-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. -void ShGetInfoLog(const ShHandle handle, char* infoLog); +ANGLE_API void ShGetInfoLog(const ShHandle handle, char* infoLog); // 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. -void ShGetObjectCode(const ShHandle handle, char* objCode); +ANGLE_API void ShGetObjectCode(const ShHandle handle, char* objCode); // Returns information about an active attribute variable. // Parameters: // handle: Specifies the compiler // index: Specifies the index of the attribute variable to be queried. // length: Returns the number of characters actually written in the string // indicated by name (excluding the null terminator) if a value other // than NULL is passed. // size: Returns the size of the attribute variable. // type: Returns the data type of the attribute variable. // name: Returns a null terminated string containing the name of the // attribute variable. It is assumed that name has enough memory to // accomodate the attribute variable name. The size of the buffer // required to store the attribute variable name can be obtained by // calling ShGetInfo with SH_ACTIVE_ATTRIBUTE_MAX_LENGTH. -void ShGetActiveAttrib(const ShHandle handle, +ANGLE_API void ShGetActiveAttrib(const ShHandle handle, int index, int* length, int* size, ShDataType* type, char* name); // Returns information about an active uniform variable. // Parameters: @@ -239,17 +259,17 @@ void ShGetActiveAttrib(const ShHandle ha // other than NULL is passed. // size: Returns the size of the uniform variable. // type: Returns the data type of the uniform variable. // name: Returns a null terminated string containing the name of the // uniform variable. It is assumed that name has enough memory to // accomodate the uniform variable name. The size of the buffer required // to store the uniform variable name can be obtained by calling // ShGetInfo with SH_ACTIVE_UNIFORMS_MAX_LENGTH. -void ShGetActiveUniform(const ShHandle handle, +ANGLE_API void ShGetActiveUniform(const ShHandle handle, int index, int* length, int* size, ShDataType* type, char* name); #ifdef __cplusplus }