string GetDeclarationString(Type type, Settings.Legacy settings) { var t = type.QualifiedType; if ((settings & Settings.Legacy.ConstIntEnums) != 0) { if (type.IsEnum) { t = "System.Int32"; } } return String.Format("{0}{1}{2}", t, pointer_levels[type.Pointer], array_levels[type.Array]); }
string GetDeclarationString(ParameterCollection parameters, Settings.Legacy settings) { StringBuilder sb = new StringBuilder(); sb.Append("("); if (parameters.Count > 0) { foreach (Parameter p in parameters) { sb.Append(GetDeclarationString(p, false, settings)); sb.Append(", "); } sb.Replace(", ", ")", sb.Length - 2, 2); } else { sb.Append(")"); } return sb.ToString(); }
string GetDeclarationString(Parameter p, bool override_unsafe_setting, Settings.Legacy settings) { StringBuilder sb = new StringBuilder(); if (p.Flow == FlowDirection.Out) sb.Append("[OutAttribute] "); else if (p.Flow == FlowDirection.Undefined) sb.Append("[InAttribute, OutAttribute] "); if (p.Reference) { if (p.Flow == FlowDirection.Out) sb.Append("out "); else sb.Append("ref "); } if (!override_unsafe_setting && ((Settings.Compatibility & Settings.Legacy.NoPublicUnsafeFunctions) != Settings.Legacy.None)) { if (p.Pointer != 0) { sb.Append("IntPtr"); } else { sb.Append(GetDeclarationString(p as Type, settings)); } } else { sb.Append(GetDeclarationString(p as Type, settings)); } if (!String.IsNullOrEmpty(p.Name)) { sb.Append(" "); sb.Append(p.Name); } return sb.ToString(); }
string GetDeclarationString(Function f, Settings.Legacy settings) { StringBuilder sb = new StringBuilder(); sb.Append(f.Unsafe ? "unsafe " : ""); sb.Append(GetDeclarationString(f.ReturnType, settings)); sb.Append(" "); if ((Settings.Compatibility & Settings.Legacy.NoTrimFunctionEnding) != Settings.Legacy.None) { sb.Append(Settings.FunctionPrefix); } sb.Append(!String.IsNullOrEmpty(f.TrimmedName) ? f.TrimmedName : f.Name); if (f.Parameters.HasGenericParameters) { sb.Append("<"); foreach (Parameter p in f.Parameters) { if (p.Generic) { sb.Append(p.CurrentType); sb.Append(","); } } sb.Remove(sb.Length - 1, 1); sb.Append(">"); } sb.Append(GetDeclarationString(f.Parameters, settings)); if (f.Parameters.HasGenericParameters) { sb.AppendLine(); foreach (Parameter p in f.Parameters) { if (p.Generic) sb.AppendLine(String.Format(" where {0} : struct", p.CurrentType)); } } return sb.ToString(); }
public XmlSpecReader(Settings settings) { if (settings == null) throw new ArgumentNullException("settings"); Settings = settings; }
public static bool RequiresSlot(this Delegate d, Settings settings) { double version; Double.TryParse( d.Version, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out version); return !settings.IsEnabled(Settings.Legacy.UseDllImports) || (settings.IsEnabled(Settings.Legacy.UseWindowsCompatibleGL) && version > 1.1) || d.Extension != "Core"; }