private void DeclareVarying(MemberInfo member, Type memberType, GlslAst.VaryingKind kind) { if (!member.Name.StartsWith("<>")) { var ai = GetArrayLen(member, memberType); var qualifiers = member.GetQualifiers(); var vary = GlslAst.Vary(kind, qualifiers, ai.Item1, member.Name, ai.Item2); if (!(member.IsBuiltin() || member.IsDefined(typeof(OmitInGlslAttribute), true))) { AddGlobal(vary); } _globalVars.Add(member.Name, vary.Definition); } }
private void DeclareVaryings(Type type, GlslAst.VaryingKind kind) { if (!DefineType(type)) { return; } if (!type.Name.StartsWith("<>")) { foreach (var field in type.GetGLFields()) { DeclareVarying(field, field.FieldType, kind); } } foreach (var prop in type.GetGLProperties()) { DeclareVarying(prop, prop.PropertyType, kind); } }