Example #1
0
        private static string TransformTemplate(
            string filePath,
            NumDefine[] defines,
            PasteToken[] attributeTypes
            )
        {
            var debug        = new InfoSinkBase(SinkType.String);
            var info         = new InfoSinkBase(SinkType.String);
            var infoSink     = new InfoSink(info, debug);
            var intermediate = new GLSLIntermediate();
            var symbols      = new SymbolLookup();

            symbols.SetPreambleManually(Profile.CoreProfile);

            foreach (var x in defines)
            {
                symbols.DefineAs(x.Name, x.Value);
            }

            foreach (var t in attributeTypes)
            {
                symbols.AddPasteToken(t.Name, t.Value);
            }

            var preprocessor = new Standalone(infoSink, intermediate, symbols);

            preprocessor.Run(filePath, out string result);
            return(result);
        }
Example #2
0
        static Standalone InitialisePreprocessor(InfoSink infoSink)
        {
            var intermediate = new GLSLIntermediate();
            var symbols      = new SymbolLookup();

            symbols.SetPreambleManually(Profile.CoreProfile);
            symbols.DefineAs("GL_ARB_shader_storage_buffer_object", 1);
            return(new Standalone(infoSink, intermediate, symbols));
        }
Example #3
0
        public void TestCase()
        {
            var debug        = new InfoSinkBase(SinkType.String);
            var info         = new InfoSinkBase(SinkType.String);
            var infoSink     = new InfoSink(info, debug);
            var intermediate = new GLSLIntermediate();
            var symbols      = new SymbolLookup();

            symbols.SetPreambleManually(Profile.CoreProfile);
            symbols.DefineAs("GL_ARB_shader_storage_buffer_object", 1);
            var    preprocessor = new Standalone(infoSink, intermediate, symbols);
            string result;

            Assert.IsTrue(preprocessor.Run("Sample.vert", out result));
            Assert.IsNotNull(result);
        }