mirror of
https://github.com/borgesdan/xn65
synced 2024-12-29 21:54:47 +01:00
53 lines
1.6 KiB
C++
53 lines
1.6 KiB
C++
#ifndef XNA_PLATFORM_GAME_DX_HPP
|
|
#define XNA_PLATFORM_GAME_DX_HPP
|
|
|
|
#include "../content/manager.hpp"
|
|
#include "../default.hpp"
|
|
#include "../game/game.hpp"
|
|
#include "dx/StepTimer.hpp"
|
|
#include "dxheaders.hpp"
|
|
|
|
namespace xna {
|
|
class Game : public IGame {
|
|
public:
|
|
Game();
|
|
|
|
void Exit() override;
|
|
int Run() override;
|
|
|
|
inline sptr<GameWindow> Window() override { return _gameWindow; }
|
|
inline sptr<GraphicsDevice> GetGraphicsDevice() override { return graphicsDevice; }
|
|
inline sptr<GameComponentCollection> Components() override { return _gameComponents; }
|
|
inline sptr<GameServiceContainer> Services() override { return services; }
|
|
inline sptr<ContentManager> Content() override { return _contentManager; }
|
|
constexpr void EnableGameComponents(bool value) { _enabledGameComponents = value; }
|
|
|
|
protected:
|
|
virtual void Draw(GameTime const& gameTime) override;
|
|
virtual void Initialize() override;
|
|
virtual void LoadContent() override{}
|
|
virtual void Update(GameTime const& gameTime) override;
|
|
|
|
public:
|
|
sptr<GraphicsDevice> graphicsDevice = nullptr;
|
|
|
|
protected:
|
|
sptr<GameServiceContainer> services = nullptr;
|
|
|
|
private:
|
|
sptr<GameComponentCollection> _gameComponents = nullptr;
|
|
sptr<GameWindow> _gameWindow{ nullptr };
|
|
sptr<AudioEngine> _audioEngine = nullptr;
|
|
sptr<ContentManager> _contentManager;
|
|
std::vector<sptr<IGameComponent>> _drawableGameComponents;
|
|
size_t _drawableGameComponentsCount{ 0 };
|
|
bool _enabledGameComponents{ false };
|
|
GameTime _currentGameTime{};
|
|
DX::StepTimer _stepTimer{};
|
|
|
|
int startLoop();
|
|
void step();
|
|
};
|
|
}
|
|
|
|
#endif |