private EntityProcessor CreateRenderProcessor(RegisteredRenderProcessors registeredRenderProcessor, VisibilityGroup visibilityGroup) { // Create var processor = (EntityProcessor)Activator.CreateInstance(registeredRenderProcessor.Type); // Set visibility group ((IEntityComponentRenderProcessor)processor).VisibilityGroup = visibilityGroup; // Add processor Processors.Add(processor); registeredRenderProcessor.Instances.Add(new KeyValuePair <VisibilityGroup, EntityProcessor>(visibilityGroup, processor)); return(processor); }
private void EntitySystemOnComponentTypeAdded(object sender, TypeInfo type) { var rendererTypeAttributes = type.GetCustomAttributes <DefaultEntityComponentRendererAttribute>(); foreach (var rendererTypeAttribute in rendererTypeAttributes) { var processorType = AssemblyRegistry.GetType(rendererTypeAttribute.TypeName); if (processorType == null || !typeof(IEntityComponentRenderProcessor).GetTypeInfo().IsAssignableFrom(processorType.GetTypeInfo())) { continue; } var registeredProcessors = new RegisteredRenderProcessors(processorType, VisibilityGroups.Count); registeredRenderProcessorTypes.Add(type, registeredProcessors); // Create a render processor for each visibility group foreach (var visibilityGroup in VisibilityGroups) { CreateRenderProcessor(registeredProcessors, visibilityGroup); } } }
private EntityProcessor CreateRenderProcessor(RegisteredRenderProcessors registeredRenderProcessor, VisibilityGroup visibilityGroup) { // Create var processor = (EntityProcessor)Activator.CreateInstance(registeredRenderProcessor.Type); // Set visibility group ((IEntityComponentRenderProcessor)processor).VisibilityGroup = visibilityGroup; // Add processor Processors.Add(processor); registeredRenderProcessor.Instances.Add(new KeyValuePair<VisibilityGroup, EntityProcessor>(visibilityGroup, processor)); return processor; }
private void EntitySystemOnComponentTypeAdded(object sender, TypeInfo type) { var rendererTypeAttributes = type.GetCustomAttributes<DefaultEntityComponentRendererAttribute>(); foreach (var rendererTypeAttribute in rendererTypeAttributes) { var processorType = AssemblyRegistry.GetType(rendererTypeAttribute.TypeName); if (processorType == null || !typeof(IEntityComponentRenderProcessor).GetTypeInfo().IsAssignableFrom(processorType.GetTypeInfo())) { continue; } var registeredProcessors = new RegisteredRenderProcessors(processorType, VisibilityGroups.Count); registeredRenderProcessorTypes.Add(type, registeredProcessors); // Create a render processor for each visibility group foreach (var visibilityGroup in VisibilityGroups) { CreateRenderProcessor(registeredProcessors, visibilityGroup); } } }