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

EmitBuiltinAppArg() private method

private EmitBuiltinAppArg ( MidVal midVal, Span span ) : EmitValHLSL
midVal MidVal
span Span
return EmitValHLSL
        private EmitValHLSL EmitBuiltinAppArg(
            MidVal midVal,
            Span span)
        {
            var emitVal = EmitVal(midVal, span);

            // If passing a "connector" into
            // a builtin function, we need to
            // make sure to change from record
            // value to simple value
            if (emitVal is TupleValHLSL)
            {
                var tupleVal = (TupleValHLSL)emitVal;
                if (tupleVal.Type is RealTypeHLSL)
                {
                    var realType = (RealTypeHLSL)tupleVal.Type;
                    var newVal = realType.CreateVal(_shared.GenerateName("__record"));
                    DeclareAndInitLocal(newVal, emitVal, span);
                    return newVal;
                }
            }

            return emitVal;
        }