slang to mesa compatibility, tested only under Windows
authorMichal Krol <mjkrol@gmail.org>
Mon, 17 Jan 2005 15:52:20 +0000 (15:52 +0000)
committerMichal Krol <mjkrol@gmail.org>
Mon, 17 Jan 2005 15:52:20 +0000 (15:52 +0000)
src/mesa/shader/slang/slang_mesa.cpp [new file with mode: 0644]
src/mesa/shader/slang/slang_mesa.h [new file with mode: 0644]

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