/// <summary> /// All sampler types must derive directly or indirectly from the generic SamplerBase type. /// This method takes a sampler type and returns the realized SamplerBase type it derives from. /// </summary> /// <param name="sampler">The sampler type</param> /// <returns></returns> NamedTypeSymbol GetSamplerBase(TypeSymbol sampler) { if (sampler.HasAttribute("SamplerBase")) return sampler as NamedTypeSymbol; if (sampler.BaseType != null) return GetSamplerBase(sampler.BaseType); return null; }