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

EmitSamplerStateRef() private method

private EmitSamplerStateRef ( MidBuiltinType type, MidVal uniformVal, Span span ) : EmitValHLSL
type Spark.Mid.MidBuiltinType
uniformVal MidVal
span Span
return EmitValHLSL
        private EmitValHLSL EmitSamplerStateRef(
            MidBuiltinType type,
            MidVal uniformVal,
            Span span)
        {
            object key = GetUniformValKey(uniformVal);
            EmitValHLSL result = VoidVal;
            if (_uniformResourceCache.TryGetValue(key, out result))
            {
                return result;
            }

            int index = _samplerStates.Count;
            string name = _shared.GenerateName(uniformVal.ToString());

            DeclareFields(
                EmitType(type),
                _resourceHeaderSpan,
                name,
                suffix: string.Format(" : register(s{0})", index));
            _samplerStates.Add(uniformVal);

            result = new SimpleValHLSL(
                name,
                (SimpleTypeHLSL)EmitType(uniformVal.Type));
            _uniformResourceCache[key] = result;
            return result;
        }