/* * 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 () { /* XXX fix this under Linux */ /*_THROW(out_of_range, "invalid string position");*/ } void _Xlen () { /* XXX fix this under Linux */ /*_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; }