/******************************************************** * Interfaces.h * * * * XFX interfaces definition file * * Copyright © XFX Team. All Rights Reserved * ********************************************************/ #ifndef _XFX_INTERFACES_ #define _XFX_INTERFACES_ #include <System/Types.h> namespace XFX { class GameTime; /// <summary> /// Defines the interface for a drawable game component. /// </summary> interface IDrawable { public: virtual int DrawOrder()=0; virtual bool Visible()=0; virtual void Draw(GameTime gameTime)=0; virtual ~IDrawable(); EventHandler DrawOrderChanged; EventHandler VisibleChanged; }; /// <summary> /// Defines an interface for game components. /// </summary> interface IGameComponent { public: virtual void Initialize()=0; virtual ~IGameComponent(); }; /// <summary> /// Defines the interface for an object that manages a Graphics.GraphicsDevice. /// </summary> interface IGraphicsDeviceManager { public: virtual bool BeginDraw()=0; virtual void CreateDevice()=0; virtual void EndDraw()=0; virtual ~IGraphicsDeviceManager(); }; /// <summary> /// Defines an interface for a game component that should be updated in Game.Update. /// </summary> interface IUpdateable { public: virtual bool Enabled()=0; virtual void Enabled(int value)=0; virtual int UpdateOrder()=0; virtual void UpdateOrder(int value)=0; virtual ~IUpdateable(); virtual void Update(GameTime gameTime)=0; EventHandler EnabledChanged; EventHandler UpdateOrderChanged; }; } #endif //_XFX_INTERFACES_