fix comments; disable DLL linkage for WIN32

This commit is contained in:
Michal Krol
2005-03-25 12:03:58 +00:00
parent 116986bad5
commit 675f802542
+51 -49
View File
@@ -1,4 +1,4 @@
//
/*
//Copyright (C) 2002-2005 3Dlabs Inc. Ltd.
//All rights reserved.
//
@@ -30,7 +30,7 @@
//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
//POSSIBILITY OF SUCH DAMAGE.
//
*/
#ifndef _COMPILER_INTERFACE_INCLUDED_
#define _COMPILER_INTERFACE_INCLUDED_
@@ -38,39 +38,41 @@
#ifdef _WIN32
#define C_DECL __cdecl
#ifdef SH_EXPORTING
/*#ifdef SH_EXPORTING
#define SH_IMPORT_EXPORT __declspec(dllexport)
#else
#define SH_IMPORT_EXPORT __declspec(dllimport)
#endif
#endif*/
/* disable DLL linking */
#define SH_IMPORT_EXPORT
#else
#define SH_IMPORT_EXPORT
#define __fastcall
#define C_DECL
#endif
//
/*
// 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.
//
*/
SH_IMPORT_EXPORT int ShInitialize();
//
/*
// Driver should call this at shutdown.
//
*/
SH_IMPORT_EXPORT int __fastcall ShFinalize();
//
/*
// Types of languages the compiler can consume.
//
*/
typedef enum {
EShLangVertex,
EShLangFragment,
@@ -79,9 +81,9 @@ typedef enum {
EShLangCount
} EShLanguage;
//
/*
// Types of output the linker will create.
//
*/
typedef enum {
EShExVertexFragment,
EShExPackFragment,
@@ -89,20 +91,20 @@ typedef enum {
EShExFragment
} EShExecutable;
//
/*
// Optimization level for the compiler.
//
*/
typedef enum {
EShOptNoGeneration,
EShOptNone,
EShOptSimple, // Optimizations that can be done quickly
EShOptFull // Optimizations that will take more time
EShOptSimple, /* Optimizations that can be done quickly */
EShOptFull /* Optimizations that will take more time */
} EShOptimizationLevel;
//
/*
// Build a table for bindings. This can be used for locating
// attributes, uniforms, globals, etc., as needed.
//
*/
typedef struct {
char* name;
int binding;
@@ -110,10 +112,10 @@ typedef struct {
typedef struct {
int numBindings;
ShBinding* bindings; // array of bindings
ShBinding* bindings; /* array of bindings */
} ShBindingTable;
//
/*
// ShHandle held by but opaque to the driver. It is allocated,
// managed, and de-allocated by the compiler/linker. It's contents
// are defined by and used by the compiler and linker. For example,
@@ -121,25 +123,25 @@ typedef struct {
// to the linker can be stored where ShHandle points.
//
// If handle creation fails, 0 will be returned.
//
*/
typedef void* ShHandle;
//
/*
// Driver calls these to create and destroy compiler/linker
// objects.
//
SH_IMPORT_EXPORT ShHandle ShConstructCompiler(const EShLanguage, int debugOptions); // one per shader
SH_IMPORT_EXPORT ShHandle ShConstructLinker(const EShExecutable, int debugOptions); // one per shader pair
SH_IMPORT_EXPORT ShHandle ShConstructUniformMap(); // one per uniform namespace (currently entire program object)
*/
SH_IMPORT_EXPORT ShHandle ShConstructCompiler(const EShLanguage, int debugOptions); /* one per shader */
SH_IMPORT_EXPORT ShHandle ShConstructLinker(const EShExecutable, int debugOptions); /* one per shader pair */
SH_IMPORT_EXPORT ShHandle ShConstructUniformMap(); /* one per uniform namespace (currently entire program object) */
SH_IMPORT_EXPORT void ShDestruct(ShHandle);
//
/*
// The return value of ShCompile is boolean, indicating
// success or failure.
//
// The info-log should be written by ShCompile into
// ShHandle, so it can answer future queries.
//
*/
SH_IMPORT_EXPORT int ShCompile(
const ShHandle,
const char* const shaderStrings[],
@@ -150,49 +152,49 @@ SH_IMPORT_EXPORT int ShCompile(
);
//
/*
// Similar to ShCompile, but accepts an opaque handle to an
// intermediate language structure.
//
*/
SH_IMPORT_EXPORT int ShCompileIntermediate(
ShHandle compiler,
ShHandle intermediate,
const EShOptimizationLevel,
int debuggable // boolean
int debuggable /* boolean */
);
SH_IMPORT_EXPORT int ShLink(
const ShHandle, // linker object
const ShHandle h[], // compiler objects to link together
const ShHandle, /* linker object */
const ShHandle h[], /* compiler objects to link together */
const int numHandles,
ShHandle uniformMap, // updated with new uniforms
short int** uniformsAccessed, // returned with indexes of uniforms accessed
ShHandle uniformMap, /* updated with new uniforms */
short int** uniformsAccessed, /* returned with indexes of uniforms accessed */
int* numUniformsAccessed);
//
/*
// ShSetEncrpytionMethod is a place-holder for specifying
// how source code is encrypted.
//
*/
SH_IMPORT_EXPORT void ShSetEncryptionMethod(ShHandle);
//
/*
// All the following return 0 if the information is not
// available in the object passed down, or the object is bad.
//
*/
SH_IMPORT_EXPORT const char* ShGetInfoLog(const ShHandle);
SH_IMPORT_EXPORT const void* ShGetExecutable(const ShHandle);
SH_IMPORT_EXPORT int ShSetVirtualAttributeBindings(const ShHandle, const ShBindingTable*); // to detect user aliasing
SH_IMPORT_EXPORT int ShSetFixedAttributeBindings(const ShHandle, const ShBindingTable*); // to force any physical mappings
SH_IMPORT_EXPORT int ShGetPhysicalAttributeBindings(const ShHandle, const ShBindingTable**); // for all attributes
//
SH_IMPORT_EXPORT int ShSetVirtualAttributeBindings(const ShHandle, const ShBindingTable*); /* to detect user aliasing */
SH_IMPORT_EXPORT int ShSetFixedAttributeBindings(const ShHandle, const ShBindingTable*); /* to force any physical mappings */
SH_IMPORT_EXPORT int ShGetPhysicalAttributeBindings(const ShHandle, const ShBindingTable**); /* for all attributes */
/*
// Tell the linker to never assign a vertex attribute to this list of physical attributes
//
*/
SH_IMPORT_EXPORT int ShExcludeAttributes(const ShHandle, int *attributes, int count);
//
/*
// Returns the location ID of the named uniform.
// Returns -1 if error.
//
*/
SH_IMPORT_EXPORT int ShGetUniformLocation(const ShHandle uniformMap, const char* name);
enum TDebugOptions {
@@ -207,4 +209,4 @@ enum TDebugOptions {
}
#endif
#endif // _COMPILER_INTERFACE_INCLUDED_
#endif /* _COMPILER_INTERFACE_INCLUDED_ */