using System;
using System.Collections.Generic;
namespace Artemis.Core.Services
{
///
/// A service that initializes the Core and manages the render loop
///
public interface ICoreService : IArtemisService, IDisposable
{
///
/// Gets whether the or not the core has been initialized
///
bool IsInitialized { get; }
///
/// The time the last frame took to render
///
TimeSpan FrameTime { get; }
///
/// Gets or sets whether profiles are rendered each frame by calling their Render method
///
bool ProfileRenderingDisabled { get; set; }
///
/// Gets or sets a list of startup arguments
///
List StartupArguments { get; set; }
///
/// Gets a boolean indicating whether Artemis is running in an elevated environment (admin permissions)
///
bool IsElevated { get; set; }
///
/// Initializes the core, only call once
///
void Initialize();
///
/// Occurs the core has finished initializing
///
event EventHandler Initialized;
///
/// Occurs whenever a frame is rendering, after modules have rendered
///
event EventHandler FrameRendering;
///
/// Occurs whenever a frame is finished rendering and the render pipeline is closed
///
event EventHandler FrameRendered;
}
}