зеркало из https://github.com/mozilla/gecko-dev.git
Fix ANGLE on gcc shared non-libxul builds, r=irc, and I know it's a CLOSED TREE
This commit is contained in:
Родитель
286ba76cc0
Коммит
832bc06216
|
@ -1,50 +1,74 @@
|
|||
# HG changeset patch
|
||||
# Parent 42029b6d627ee8c0d5face9cafa2bf7fe8950305
|
||||
|
||||
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
|
||||
@@ -9,10 +9,25 @@
|
||||
@@ -1,42 +1,54 @@
|
||||
//
|
||||
// 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_
|
||||
|
||||
+#include "nscore.h"
|
||||
+
|
||||
#include "ResourceLimits.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
+
|
||||
#define C_DECL __cdecl
|
||||
+
|
||||
+#ifndef MOZ_ENABLE_LIBXUL
|
||||
+#ifdef ANGLE_BUILD
|
||||
+#define ANGLE_EXPORT __declspec(dllexport)
|
||||
-#define C_DECL __cdecl
|
||||
+# ifndef MOZ_ENABLE_LIBXUL
|
||||
+# ifdef ANGLE_BUILD
|
||||
+# define ANGLE_API NS_EXPORT
|
||||
+# else
|
||||
+# define ANGLE_API NS_IMPORT
|
||||
+# endif
|
||||
+# else
|
||||
+# define ANGLE_API /*nothing*/
|
||||
+# endif
|
||||
+# define C_DECL __cdecl
|
||||
#else
|
||||
+#define ANGLE_EXPORT __declspec(dllimport)
|
||||
+#endif
|
||||
+#else
|
||||
+#define ANGLE_EXPORT
|
||||
+#endif
|
||||
+
|
||||
+#else
|
||||
+
|
||||
+#define ANGLE_EXPORT
|
||||
#define __fastcall
|
||||
#define C_DECL
|
||||
+
|
||||
-#define __fastcall
|
||||
-#define C_DECL
|
||||
+# define ANGLE_API NS_EXTERNAL_VIS
|
||||
+# define __fastcall
|
||||
+# define C_DECL
|
||||
#endif
|
||||
|
||||
//
|
||||
@@ -27,11 +42,11 @@
|
||||
// This is the platform independent interface between an OGL driver
|
||||
// and the shading language compiler/linker.
|
||||
//
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
//
|
||||
// Driver must call this first, once, before doing any other
|
||||
// compiler/linker operations.
|
||||
//
|
||||
-int ShInitialize();
|
||||
+ANGLE_EXPORT int ShInitialize();
|
||||
+ANGLE_API int ShInitialize();
|
||||
//
|
||||
// Driver should call this at shutdown.
|
||||
//
|
||||
-int __fastcall ShFinalize();
|
||||
+ANGLE_EXPORT int ShFinalize();
|
||||
+ANGLE_API int ShFinalize();
|
||||
//
|
||||
// Types of languages the compiler can consume.
|
||||
//
|
||||
@@ -88,10 +103,10 @@ typedef void* ShHandle;
|
||||
typedef enum {
|
||||
EShLangVertex,
|
||||
EShLangFragment,
|
||||
EShLangCount
|
||||
} EShLanguage;
|
||||
@@ -83,88 +95,88 @@ typedef struct {
|
||||
// If handle creation fails, 0 will be returned.
|
||||
//
|
||||
typedef void* ShHandle;
|
||||
|
||||
//
|
||||
// Driver calls these to create and destroy compiler/linker
|
||||
// objects.
|
||||
//
|
||||
|
@ -52,28 +76,35 @@ diff --git a/gfx/angle/include/GLSLANG/ShaderLang.h b/gfx/angle/include/GLSLANG/
|
|||
-ShHandle ShConstructLinker(const EShExecutable, int debugOptions); // one per shader pair
|
||||
-ShHandle ShConstructUniformMap(); // one per uniform namespace (currently entire program object)
|
||||
-void ShDestruct(ShHandle);
|
||||
+ANGLE_EXPORT ShHandle ShConstructCompiler(const EShLanguage, int debugOptions); // one per shader
|
||||
+ANGLE_EXPORT ShHandle ShConstructLinker(const EShExecutable, int debugOptions); // one per shader pair
|
||||
+ANGLE_EXPORT ShHandle ShConstructUniformMap(); // one per uniform namespace (currently entire program object)
|
||||
+ANGLE_EXPORT void ShDestruct(ShHandle);
|
||||
+ANGLE_API ShHandle ShConstructCompiler(const EShLanguage, int debugOptions); // one per shader
|
||||
+ANGLE_API ShHandle ShConstructLinker(const EShExecutable, int debugOptions); // one per shader pair
|
||||
+ANGLE_API ShHandle ShConstructUniformMap(); // one per uniform namespace (currently entire program object)
|
||||
+ANGLE_API void ShDestruct(ShHandle);
|
||||
|
||||
//
|
||||
// The return value of ShCompile is boolean, indicating
|
||||
@@ -100,7 +115,7 @@ void ShDestruct(ShHandle);
|
||||
// success or failure.
|
||||
//
|
||||
// The info-log should be written by ShCompile into
|
||||
// ShHandle, so it can answer future queries.
|
||||
//
|
||||
-int ShCompile(
|
||||
+ANGLE_EXPORT int ShCompile(
|
||||
+ANGLE_API int ShCompile(
|
||||
const ShHandle,
|
||||
const char* const shaderStrings[],
|
||||
const int numStrings,
|
||||
@@ -114,14 +129,14 @@ int ShCompile(
|
||||
const EShOptimizationLevel,
|
||||
const TBuiltInResource *resources,
|
||||
int debugOptions
|
||||
);
|
||||
|
||||
|
||||
//
|
||||
// Similar to ShCompile, but accepts an opaque handle to an
|
||||
// intermediate language structure.
|
||||
//
|
||||
-int ShCompileIntermediate(
|
||||
+ANGLE_EXPORT int ShCompileIntermediate(
|
||||
+ANGLE_API int ShCompileIntermediate(
|
||||
ShHandle compiler,
|
||||
ShHandle intermediate,
|
||||
const EShOptimizationLevel,
|
||||
|
@ -81,25 +112,26 @@ diff --git a/gfx/angle/include/GLSLANG/ShaderLang.h b/gfx/angle/include/GLSLANG/
|
|||
);
|
||||
|
||||
-int ShLink(
|
||||
+ANGLE_EXPORT int ShLink(
|
||||
+ANGLE_API int ShLink(
|
||||
const ShHandle, // linker object
|
||||
const ShHandle h[], // compiler objects to link together
|
||||
const int numHandles,
|
||||
@@ -129,7 +144,7 @@ int ShLink(
|
||||
ShHandle uniformMap, // updated with new uniforms
|
||||
short int** uniformsAccessed, // returned with indexes of uniforms accessed
|
||||
int* numUniformsAccessed);
|
||||
|
||||
-int ShLinkExt(
|
||||
+ANGLE_EXPORT int ShLinkExt(
|
||||
+ANGLE_API int ShLinkExt(
|
||||
const ShHandle, // linker object
|
||||
const ShHandle h[], // compiler objects to link together
|
||||
const int numHandles);
|
||||
@@ -138,28 +153,28 @@ int ShLinkExt(
|
||||
|
||||
//
|
||||
// ShSetEncrpytionMethod is a place-holder for specifying
|
||||
// how source code is encrypted.
|
||||
//
|
||||
-void ShSetEncryptionMethod(ShHandle);
|
||||
+ANGLE_EXPORT void ShSetEncryptionMethod(ShHandle);
|
||||
+ANGLE_API void ShSetEncryptionMethod(ShHandle);
|
||||
|
||||
//
|
||||
// All the following return 0 if the information is not
|
||||
|
@ -111,27 +143,32 @@ diff --git a/gfx/angle/include/GLSLANG/ShaderLang.h b/gfx/angle/include/GLSLANG/
|
|||
-int ShSetVirtualAttributeBindings(const ShHandle, const ShBindingTable*); // to detect user aliasing
|
||||
-int ShSetFixedAttributeBindings(const ShHandle, const ShBindingTable*); // to force any physical mappings
|
||||
-int ShGetPhysicalAttributeBindings(const ShHandle, const ShBindingTable**); // for all attributes
|
||||
+ANGLE_EXPORT const char* ShGetInfoLog(const ShHandle);
|
||||
+ANGLE_EXPORT const char* ShGetObjectCode(const ShHandle);
|
||||
+ANGLE_EXPORT const void* ShGetExecutable(const ShHandle);
|
||||
+ANGLE_EXPORT int ShSetVirtualAttributeBindings(const ShHandle, const ShBindingTable*); // to detect user aliasing
|
||||
+ANGLE_EXPORT int ShSetFixedAttributeBindings(const ShHandle, const ShBindingTable*); // to force any physical mappings
|
||||
+ANGLE_EXPORT int ShGetPhysicalAttributeBindings(const ShHandle, const ShBindingTable**); // for all attributes
|
||||
+ANGLE_API const char* ShGetInfoLog(const ShHandle);
|
||||
+ANGLE_API const char* ShGetObjectCode(const ShHandle);
|
||||
+ANGLE_API const void* ShGetExecutable(const ShHandle);
|
||||
+ANGLE_API int ShSetVirtualAttributeBindings(const ShHandle, const ShBindingTable*); // to detect user aliasing
|
||||
+ANGLE_API int ShSetFixedAttributeBindings(const ShHandle, const ShBindingTable*); // to force any physical mappings
|
||||
+ANGLE_API int ShGetPhysicalAttributeBindings(const ShHandle, const ShBindingTable**); // for all attributes
|
||||
//
|
||||
// Tell the linker to never assign a vertex attribute to this list of physical attributes
|
||||
//
|
||||
-int ShExcludeAttributes(const ShHandle, int *attributes, int count);
|
||||
+ANGLE_EXPORT int ShExcludeAttributes(const ShHandle, int *attributes, int count);
|
||||
+ANGLE_API int ShExcludeAttributes(const ShHandle, int *attributes, int count);
|
||||
|
||||
//
|
||||
// Returns the location ID of the named uniform.
|
||||
// Returns -1 if error.
|
||||
//
|
||||
-int ShGetUniformLocation(const ShHandle uniformMap, const char* name);
|
||||
+ANGLE_EXPORT int ShGetUniformLocation(const ShHandle uniformMap, const char* name);
|
||||
+ANGLE_API int ShGetUniformLocation(const ShHandle uniformMap, const char* name);
|
||||
|
||||
enum TDebugOptions {
|
||||
EDebugOpNone = 0x000,
|
||||
EDebugOpIntermediate = 0x001,
|
||||
EDebugOpAssembly = 0x002,
|
||||
EDebugOpObjectCode = 0x004,
|
||||
EDebugOpLinkMaps = 0x008
|
||||
};
|
||||
diff --git a/gfx/angle/src/compiler/ShaderLang.cpp b/gfx/angle/src/compiler/ShaderLang.cpp
|
||||
--- a/gfx/angle/src/compiler/ShaderLang.cpp
|
||||
+++ b/gfx/angle/src/compiler/ShaderLang.cpp
|
||||
|
|
|
@ -6,28 +6,25 @@
|
|||
#ifndef _COMPILER_INTERFACE_INCLUDED_
|
||||
#define _COMPILER_INTERFACE_INCLUDED_
|
||||
|
||||
#include "nscore.h"
|
||||
|
||||
#include "ResourceLimits.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
#define C_DECL __cdecl
|
||||
|
||||
#ifndef MOZ_ENABLE_LIBXUL
|
||||
#ifdef ANGLE_BUILD
|
||||
#define ANGLE_EXPORT __declspec(dllexport)
|
||||
# ifndef MOZ_ENABLE_LIBXUL
|
||||
# ifdef ANGLE_BUILD
|
||||
# define ANGLE_API NS_EXPORT
|
||||
# else
|
||||
# define ANGLE_API NS_IMPORT
|
||||
# endif
|
||||
# else
|
||||
# define ANGLE_API /*nothing*/
|
||||
# endif
|
||||
# define C_DECL __cdecl
|
||||
#else
|
||||
#define ANGLE_EXPORT __declspec(dllimport)
|
||||
#endif
|
||||
#else
|
||||
#define ANGLE_EXPORT
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#define ANGLE_EXPORT
|
||||
#define __fastcall
|
||||
#define C_DECL
|
||||
|
||||
# define ANGLE_API NS_EXTERNAL_VIS
|
||||
# define __fastcall
|
||||
# define C_DECL
|
||||
#endif
|
||||
|
||||
//
|
||||
|
@ -42,11 +39,11 @@
|
|||
// Driver must call this first, once, before doing any other
|
||||
// compiler/linker operations.
|
||||
//
|
||||
ANGLE_EXPORT int ShInitialize();
|
||||
ANGLE_API int ShInitialize();
|
||||
//
|
||||
// Driver should call this at shutdown.
|
||||
//
|
||||
ANGLE_EXPORT int ShFinalize();
|
||||
ANGLE_API int ShFinalize();
|
||||
//
|
||||
// Types of languages the compiler can consume.
|
||||
//
|
||||
|
@ -103,10 +100,10 @@ typedef void* ShHandle;
|
|||
// Driver calls these to create and destroy compiler/linker
|
||||
// objects.
|
||||
//
|
||||
ANGLE_EXPORT ShHandle ShConstructCompiler(const EShLanguage, int debugOptions); // one per shader
|
||||
ANGLE_EXPORT ShHandle ShConstructLinker(const EShExecutable, int debugOptions); // one per shader pair
|
||||
ANGLE_EXPORT ShHandle ShConstructUniformMap(); // one per uniform namespace (currently entire program object)
|
||||
ANGLE_EXPORT void ShDestruct(ShHandle);
|
||||
ANGLE_API ShHandle ShConstructCompiler(const EShLanguage, int debugOptions); // one per shader
|
||||
ANGLE_API ShHandle ShConstructLinker(const EShExecutable, int debugOptions); // one per shader pair
|
||||
ANGLE_API ShHandle ShConstructUniformMap(); // one per uniform namespace (currently entire program object)
|
||||
ANGLE_API void ShDestruct(ShHandle);
|
||||
|
||||
//
|
||||
// The return value of ShCompile is boolean, indicating
|
||||
|
@ -115,7 +112,7 @@ ANGLE_EXPORT void ShDestruct(ShHandle);
|
|||
// The info-log should be written by ShCompile into
|
||||
// ShHandle, so it can answer future queries.
|
||||
//
|
||||
ANGLE_EXPORT int ShCompile(
|
||||
ANGLE_API int ShCompile(
|
||||
const ShHandle,
|
||||
const char* const shaderStrings[],
|
||||
const int numStrings,
|
||||
|
@ -129,14 +126,14 @@ ANGLE_EXPORT int ShCompile(
|
|||
// Similar to ShCompile, but accepts an opaque handle to an
|
||||
// intermediate language structure.
|
||||
//
|
||||
ANGLE_EXPORT int ShCompileIntermediate(
|
||||
ANGLE_API int ShCompileIntermediate(
|
||||
ShHandle compiler,
|
||||
ShHandle intermediate,
|
||||
const EShOptimizationLevel,
|
||||
int debuggable // boolean
|
||||
);
|
||||
|
||||
ANGLE_EXPORT int ShLink(
|
||||
ANGLE_API int ShLink(
|
||||
const ShHandle, // linker object
|
||||
const ShHandle h[], // compiler objects to link together
|
||||
const int numHandles,
|
||||
|
@ -144,7 +141,7 @@ ANGLE_EXPORT int ShLink(
|
|||
short int** uniformsAccessed, // returned with indexes of uniforms accessed
|
||||
int* numUniformsAccessed);
|
||||
|
||||
ANGLE_EXPORT int ShLinkExt(
|
||||
ANGLE_API int ShLinkExt(
|
||||
const ShHandle, // linker object
|
||||
const ShHandle h[], // compiler objects to link together
|
||||
const int numHandles);
|
||||
|
@ -153,28 +150,28 @@ ANGLE_EXPORT int ShLinkExt(
|
|||
// ShSetEncrpytionMethod is a place-holder for specifying
|
||||
// how source code is encrypted.
|
||||
//
|
||||
ANGLE_EXPORT void ShSetEncryptionMethod(ShHandle);
|
||||
ANGLE_API void ShSetEncryptionMethod(ShHandle);
|
||||
|
||||
//
|
||||
// All the following return 0 if the information is not
|
||||
// available in the object passed down, or the object is bad.
|
||||
//
|
||||
ANGLE_EXPORT const char* ShGetInfoLog(const ShHandle);
|
||||
ANGLE_EXPORT const char* ShGetObjectCode(const ShHandle);
|
||||
ANGLE_EXPORT const void* ShGetExecutable(const ShHandle);
|
||||
ANGLE_EXPORT int ShSetVirtualAttributeBindings(const ShHandle, const ShBindingTable*); // to detect user aliasing
|
||||
ANGLE_EXPORT int ShSetFixedAttributeBindings(const ShHandle, const ShBindingTable*); // to force any physical mappings
|
||||
ANGLE_EXPORT int ShGetPhysicalAttributeBindings(const ShHandle, const ShBindingTable**); // for all attributes
|
||||
ANGLE_API const char* ShGetInfoLog(const ShHandle);
|
||||
ANGLE_API const char* ShGetObjectCode(const ShHandle);
|
||||
ANGLE_API const void* ShGetExecutable(const ShHandle);
|
||||
ANGLE_API int ShSetVirtualAttributeBindings(const ShHandle, const ShBindingTable*); // to detect user aliasing
|
||||
ANGLE_API int ShSetFixedAttributeBindings(const ShHandle, const ShBindingTable*); // to force any physical mappings
|
||||
ANGLE_API int ShGetPhysicalAttributeBindings(const ShHandle, const ShBindingTable**); // for all attributes
|
||||
//
|
||||
// Tell the linker to never assign a vertex attribute to this list of physical attributes
|
||||
//
|
||||
ANGLE_EXPORT int ShExcludeAttributes(const ShHandle, int *attributes, int count);
|
||||
ANGLE_API int ShExcludeAttributes(const ShHandle, int *attributes, int count);
|
||||
|
||||
//
|
||||
// Returns the location ID of the named uniform.
|
||||
// Returns -1 if error.
|
||||
//
|
||||
ANGLE_EXPORT int ShGetUniformLocation(const ShHandle uniformMap, const char* name);
|
||||
ANGLE_API int ShGetUniformLocation(const ShHandle uniformMap, const char* name);
|
||||
|
||||
enum TDebugOptions {
|
||||
EDebugOpNone = 0x000,
|
||||
|
|
Загрузка…
Ссылка в новой задаче