Exemple #1
0
        static void SamplersProcessor(StringBuilder stringBuilder, PixelShaderMetadata metadata)
        {
            if (metadata.Samplers == null)
            {
                return;
            }

            foreach (var expression in metadata.Samplers)
            {
                // Write type
                if (expression.Type.EndsWith("2D", StringComparison.InvariantCulture) ||
                    expression.Type.EndsWith("Cube", StringComparison.InvariantCulture))
                {
                    stringBuilder.Append("SamplerState");
                }

                // Write name
                stringBuilder.Append(" ");
                stringBuilder.Append(expression.Name);

                // Finalize
                stringBuilder.Append(";");
                stringBuilder.Append(Environment.NewLine);
            }
        }
Exemple #2
0
        static void ResourcesProcessor(StringBuilder stringBuilder, PixelShaderMetadata metadata)
        {
            if (metadata.Resources == null)
            {
                return;
            }

            foreach (var expression in metadata.Resources)
            {
                // Write type
                stringBuilder.Append(expression.Type.Replace("texture", "Texture"));

                // Write name
                stringBuilder.Append(" ");
                stringBuilder.Append(expression.Name);

                // Finalize
                stringBuilder.Append(";");
                stringBuilder.Append(Environment.NewLine);
            }
        }
Exemple #3
0
        protected override void OnPixelProcess(PixelShaderMetadata metadata, out string output)
        {
            StringBuilder builder = new StringBuilder();

            ConstantsProcessor(builder, metadata);
            builder.Append(Environment.NewLine);
            ResourcesProcessor(builder, metadata);
            builder.Append(Environment.NewLine);
            SamplersProcessor(builder, metadata);
            builder.Append(Environment.NewLine);
            SemanticsProcessor(builder, metadata);
            builder.Append(Environment.NewLine);
            if (metadata.ExtendedFunctions != null && metadata.ExtendedFunctions.Count > 0)
            {
                ExtendedFunctionsProcessor(builder, metadata);
                builder.Append(Environment.NewLine);
                builder.Append(Environment.NewLine);
            }
            EntryPointProcessor(builder, metadata);

            output = builder.ToString();
        }