diff --git a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/FlatGuiVisualizer.cs b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/FlatGuiVisualizer.cs index f2145842..4bbdcfcd 100644 --- a/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/FlatGuiVisualizer.cs +++ b/Source/MonoGame.Extended.NuclexGui/Visuals/Flat/FlatGuiVisualizer.cs @@ -30,6 +30,9 @@ namespace MonoGame.Extended.NuclexGui.Visuals.Flat /// Avaiable renderers private readonly Dictionary _renderers; + /// Assemblies which has renderer implementations + public static readonly List ExternalAssembliesWithRenderers = new List(); + /// Initializes a new gui painter for traditional GUIs /// Content manager that will be used to load the skin resources /// Stream from which the GUI Visualizer will read the skin description @@ -118,10 +121,17 @@ namespace MonoGame.Extended.NuclexGui.Visuals.Flat } private void FetchRenderers() + { + FetchRenderers(typeof(FlatGuiVisualizer).GetTypeInfo().Assembly); + foreach(var assembly in ExternalAssembliesWithRenderers) + FetchRenderers(assembly); + } + + private void FetchRenderers(Assembly assembly) { foreach ( var typeinfo in - typeof(FlatGuiVisualizer).GetTypeInfo().Assembly.DefinedTypes.Where(e => e.IsPublic && !e.IsAbstract)) + assembly.DefinedTypes.Where(e => e.IsPublic && !e.IsAbstract)) { // If the type doesn't implement the IFlatcontrolRenderer interface, there's // no chance that it will implement one of the generic control drawers