TazGraph Project v0.1.0
Loading...
Searching...
No Matches
AppInterface.h
1#pragma once
2
3#include "../InputManager/InputManager.h"
4#include "../Window/Window.h"
5#include <memory>
6#include <iostream>
7
8#include "SceneList.h"
9#include "../BaseFPSLimiter/BaseFPSLimiter.h"
10
11#include "../AudioEngine/AudioEngine.h"
12
13#include "../Threader/Threader.h"
14
15
16class SceneList;
17class IScene;
18
20public:
21 AppInterface(int threadCount);
22 virtual ~AppInterface();
23
24 void run();
25 void exitSimulator();
26
27 virtual void onInit() = 0;
28 virtual void addScenes() = 0;
29 virtual void onExit() = 0;
30
31 void onSDLEvent(SDL_Event& evnt);
32
33 InputManager _inputManager;
35
36 BaseFPSLimiter& getFPSLimiter() { return _limiter; }
37 AudioEngine& getAudioEngine() { return _audioEngine; }
38
39 Threader threadPool;
40
41protected:
42 virtual void checkInput();
43 virtual void update(float deltaTime);
44 virtual void draw();
45 virtual void updateUI();
46
47 bool init();
48 bool initSystems();
49
50 BaseFPSLimiter _limiter;
51 AudioEngine _audioEngine;
52
53 std::unique_ptr<SceneList> _sceneList = nullptr;
54 IScene* _currentScene = nullptr;
55 bool _isRunning = false;
56
57 const float SCALE_SPEED = 0.1f;
58};
Definition AppInterface.h:19
Definition AudioEngine.h:37
Definition BaseFPSLimiter.h:5
Definition IScene.h:21
Definition InputManager.h:10
Definition SceneList.h:8
Definition Window.h:18
Definition Threader.h:84