SettingsCompiler.SettingsCompiler.GenerateCPP C# (CSharp) Method

GenerateCPP() static private method

static private GenerateCPP ( List settings, string outputName, string outputPath, List enumTypes ) : void
settings List
outputName string
outputPath string
enumTypes List
return void
        static void GenerateCPP(List<Setting> settings, string outputName, string outputPath,
                                List<Type> enumTypes)
        {
            List<string> lines = new List<string>();

            lines.Add("#include \"PCH.h\"");
            lines.Add("#include \"" + outputName + ".h\"");
            lines.Add("");
            lines.Add("using namespace SampleFramework11;");
            lines.Add("");

            WriteEnumLabels(lines, enumTypes);

            lines.Add("namespace " + outputName);
            lines.Add("{");

            uint numCBSettings = 0;
            foreach(Setting setting in settings)
            {
                setting.WriteDefinition(lines);
                if(setting.UseAsShaderConstant)
                    ++numCBSettings;
            }

            if(numCBSettings > 0)
            {
                lines.Add("");
                lines.Add(string.Format("    ConstantBuffer<{0}CBuffer> CBuffer;", outputName));
            }

            lines.Add("");
            lines.Add("    void Initialize(ID3D11Device* device)");
            lines.Add("    {");
            lines.Add("        TwBar* tweakBar = Settings.TweakBar();");
            lines.Add("");

            foreach(Setting setting in settings)
                setting.WriteInitialization(lines);

            if(numCBSettings > 0)
                lines.Add("        CBuffer.Initialize(device);");

            lines.Add("    }");

            lines.Add("");
            lines.Add("    void UpdateCBuffer(ID3D11DeviceContext* context)");
            lines.Add("    {");

            foreach(Setting setting in settings)
                setting.WriteCBufferUpdate(lines);

            if(numCBSettings > 0)
            {
                lines.Add("");
                lines.Add("        CBuffer.ApplyChanges(context);");
                lines.Add("        CBuffer.SetVS(context, 7);");
                lines.Add("        CBuffer.SetHS(context, 7);");
                lines.Add("        CBuffer.SetDS(context, 7);");
                lines.Add("        CBuffer.SetGS(context, 7);");
                lines.Add("        CBuffer.SetPS(context, 7);");
                lines.Add("        CBuffer.SetCS(context, 7);");
            }

            lines.Add("    }");

            lines.Add("}");

            WriteIfChanged(lines, outputPath);
        }