Spark.Emit.HLSL.EmitContextHLSL.EmitTypeImpl C# (CSharp) Method

EmitTypeImpl() private method

private EmitTypeImpl ( MidBuiltinType type ) : ITypeHLSL
type MidBuiltinType
return ITypeHLSL
        private ITypeHLSL EmitTypeImpl(MidBuiltinType type)
        {
            var template = type.GetTemplate("hlsl");
            if (template == null)
            {
                Diagnostics.Add(
                    Severity.Error,
                    new SourceRange(),
                    "No HLSL equivalent for type {0}", type);
                return new ErrorTypeHLSL();
            }
            if (type.Args == null)
                return new ScalarTypeHLSL(template);

            var args = (from a in type.Args
                        select EmitGenericArg(a)).Eager();

            // I hate hacks... :(
            if (template == "__Array")
            {
                var baseType = (EmitTypeHLSL)args[0];
                var count = (EmitValHLSL)args[1];

                return MakeArrayType(
                    baseType,
                    count);
            }

            return new ScalarTypeHLSL(string.Format(template, args));
        }

Same methods

EmitContextHLSL::EmitTypeImpl ( MidElementType element ) : ITypeHLSL
EmitContextHLSL::EmitTypeImpl ( MidStructRef structRef ) : ITypeHLSL
EmitContextHLSL::EmitTypeImpl ( MidVoidType midType ) : ITypeHLSL