public MyGuiScreenRenderModule(MyRenderStage renderStage, string name) : base(0.35f * Color.Yellow.ToVector4(), false) { m_closeOnEsc = true; m_drawEvenWithoutFocus = true; m_isTopMostScreen = false; m_canHaveFocus = false; m_renderStage = renderStage; m_name = name; RecreateControls(true); }
private static void DrawRenderModules(MyRenderStage renderStage) { if (CurrentRenderSetup.EnabledRenderStages == null || CurrentRenderSetup.EnabledRenderStages.Contains(renderStage)) { List<MyRenderModuleItem> renderModules = m_renderModules[(int)renderStage]; foreach (MyRenderModuleItem moduleItem in renderModules) { if (moduleItem.Enabled && (CurrentRenderSetup.EnabledModules == null || CurrentRenderSetup.EnabledModules.Contains(moduleItem.Name))) { GetRenderProfiler().StartProfilingBlock(moduleItem.DisplayName); moduleItem.Handler(); GetRenderProfiler().EndProfilingBlock(); } } } }
internal static bool IsModuleEnabled(MyRenderStage stage, MyRenderModuleEnum module) { if (!(CurrentRenderSetup.EnabledRenderStages == null || CurrentRenderSetup.EnabledRenderStages.Contains(stage))) return false; List<MyRenderModuleItem> renderModules = m_renderModules[(int)stage]; if (!(CurrentRenderSetup.EnabledModules == null || CurrentRenderSetup.EnabledModules.Contains(module))) return false; foreach (var moduleItem in renderModules) { if (moduleItem.Name == module) { return moduleItem.Enabled; } } return false; }
/// <summary> /// Returns enumerator for render modules of current render stage /// </summary> /// <param name="renderStage"></param> /// <returns></returns> internal static List<MyRenderModuleItem> GetRenderModules(MyRenderStage renderStage) { return m_renderModules[(int)renderStage]; }
/// <summary> /// Register renderer event handler to make specific behaviour in several render stage /// </summary> /// <param name="displayName"></param> /// <param name="handler"></param> /// <param name="renderStage"></param> /// <param name="priority">0 - first item, higher number means lower priority</param> internal static void RegisterRenderModule(MyRenderModuleEnum module, string displayName, DrawEventHandler handler, MyRenderStage renderStage, int priority, bool enabled) { Debug.Assert(!m_renderModules[(int)renderStage].Any(x => x.Name == module)); m_renderModules[(int)renderStage].Add(new MyRenderModuleItem { Name = module, DisplayName = displayName, Priority = priority, Handler = handler, Enabled = enabled }); m_renderModules[(int)renderStage].Sort((p1, p2) => p1.Priority.CompareTo(p2.Priority)); }
internal static void RegisterRenderModule(MyRenderModuleEnum module, string displayName, DrawEventHandler handler, MyRenderStage renderStage, bool enabled) { RegisterRenderModule(module, displayName, handler, renderStage, MyRenderConstants.DEFAULT_RENDER_MODULE_PRIORITY, enabled); }
/// <summary> /// Register renderer event handler to make specific behaviour in several render stage /// </summary> /// <param name="displayName"></param> /// <param name="handler"></param> /// <param name="renderStage"></param> /// <param name="priority"></param> public static void RegisterRenderModule(MyRenderModuleEnum module, string displayName, DrawEventHandler handler, MyRenderStage renderStage) { RegisterRenderModule(module, displayName, handler, renderStage, MyRenderConstants.DEFAULT_RENDER_MODULE_PRIORITY, true); }