diff options
| author | Michal Krol <mjkrol@gmail.org> | 2005-01-17 15:52:20 +0000 | 
|---|---|---|
| committer | Michal Krol <mjkrol@gmail.org> | 2005-01-17 15:52:20 +0000 | 
| commit | cc9ab78158049cee104101c608d4fa8082079214 (patch) | |
| tree | 9eae642fc2da0c579d96ee98b9439e8ecf5e34a9 /src/mesa/shader | |
| parent | 434f622ede0fa8663025fd858d8f445a1bc3f494 (diff) | |
slang to mesa compatibility, tested only under Windows
Diffstat (limited to 'src/mesa/shader')
| -rw-r--r-- | src/mesa/shader/slang/slang_mesa.cpp | 142 | ||||
| -rw-r--r-- | src/mesa/shader/slang/slang_mesa.h | 36 | 
2 files changed, 178 insertions, 0 deletions
| diff --git a/src/mesa/shader/slang/slang_mesa.cpp b/src/mesa/shader/slang/slang_mesa.cpp new file mode 100644 index 0000000000..ae6e4da301 --- /dev/null +++ b/src/mesa/shader/slang/slang_mesa.cpp @@ -0,0 +1,142 @@ +/*
 + * Mesa 3-D graphics library
 + * Version:  6.3
 + *
 + * Copyright (C) 2005  Brian Paul   All Rights Reserved.
 + *
 + * Permission is hereby granted, free of charge, to any person obtaining a
 + * copy of this software and associated documentation files (the "Software"),
 + * to deal in the Software without restriction, including without limitation
 + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 + * and/or sell copies of the Software, and to permit persons to whom the
 + * Software is furnished to do so, subject to the following conditions:
 + *
 + * The above copyright notice and this permission notice shall be included
 + * in all copies or substantial portions of the Software.
 + *
 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 + */
 +
 +#include "slang_mesa.h"
 +#include "Initialisation.h"
 +#include "Include/Common.h"
 +#include "Include/ShHandle.h"
 +#include "Public/ShaderLang.h"
 +
 +
 +class TGenericCompiler: public TCompiler
 +{
 +public:
 +	TGenericCompiler (EShLanguage l, int dOptions): TCompiler(l, infoSink), debugOptions(dOptions)
 +	{
 +	}
 +public:
 +	virtual bool compile (TIntermNode *root)
 +	{
 +		haveValidObjectCode = true;
 +		return haveValidObjectCode;
 +	}
 +	TInfoSink infoSink;
 +	int debugOptions;
 +};
 +
 +TCompiler *ConstructCompiler (EShLanguage language, int debugOptions)
 +{
 +	return new TGenericCompiler (language, debugOptions);
 +}
 +
 +void DeleteCompiler (TCompiler *compiler)
 +{
 +	delete compiler;
 +}
 +
 +class TGenericLinker: public TLinker
 +{
 +public:
 +	TGenericLinker (EShExecutable e, int dOptions): TLinker(e, infoSink), debugOptions(dOptions)
 +	{
 +	}
 +public:
 +	bool link (TCompilerList &, TUniformMap *)
 +	{
 +		return true;
 +	}
 +	void getAttributeBindings (ShBindingTable const **t) const
 +	{
 +	}
 +	TInfoSink infoSink;
 +	int debugOptions;
 +};
 +
 +TShHandleBase *ConstructLinker (EShExecutable executable, int debugOptions)
 +{
 +	return new TGenericLinker (executable, debugOptions);
 +}
 +
 +void DeleteLinker (TShHandleBase *linker)
 +{
 +	delete linker;
 +}
 +
 +class TUniformLinkedMap: public TUniformMap
 +{
 +public:
 +	TUniformLinkedMap()
 +	{
 +	}
 +public:
 +	virtual int getLocation (const char *name)
 +	{
 +		return 0;
 +	}
 +};
 +
 +TUniformMap *ConstructUniformMap ()
 +{
 +	return new TUniformLinkedMap;
 +}
 +
 +void DeleteUniformMap (TUniformMap *map)
 +{
 +	delete map;
 +}
 +
 +
 +namespace std
 +{
 +
 +void _Xran ()
 +{
 +	_THROW(out_of_range, "invalid string position");
 +}
 +
 +void _Xlen ()
 +{
 +	_THROW(length_error, "string too long");
 +}
 +
 +}
 +
 +
 +/* these functions link with extern "C" */
 +
 +int _mesa_isalnum (char c)
 +{
 +	return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9');
 +}
 +
 +int _glslang_3dlabs_InitProcess ()
 +{
 +	return InitProcess () ? 1 : 0;
 +}
 +
 +int _glslang_3dlabs_ShInitialize ()
 +{
 +	return ShInitialize () ? 1 : 0;
 +}
 +
 diff --git a/src/mesa/shader/slang/slang_mesa.h b/src/mesa/shader/slang/slang_mesa.h new file mode 100644 index 0000000000..41f79aa703 --- /dev/null +++ b/src/mesa/shader/slang/slang_mesa.h @@ -0,0 +1,36 @@ +/*
 + * Mesa 3-D graphics library
 + * Version:  6.3
 + *
 + * Copyright (C) 2005  Brian Paul   All Rights Reserved.
 + *
 + * Permission is hereby granted, free of charge, to any person obtaining a
 + * copy of this software and associated documentation files (the "Software"),
 + * to deal in the Software without restriction, including without limitation
 + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 + * and/or sell copies of the Software, and to permit persons to whom the
 + * Software is furnished to do so, subject to the following conditions:
 + *
 + * The above copyright notice and this permission notice shall be included
 + * in all copies or substantial portions of the Software.
 + *
 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 + */
 +
 +#if defined __cplusplus
 +extern "C" {
 +#endif
 +
 +int _mesa_isalnum (char);
 +int _glslang_3dlabs_InitProcess ();
 +int _glslang_3dlabs_ShInitialize ();
 +
 +#if defined __cplusplus
 +}
 +#endif
 +
 | 
