1#ifndef ADAPTIVERENDERER_H
2#define ADAPTIVERENDERER_H
3
4#include <list>
5
6constexpr int RenderSpeeds = 5;
7
8class AdaptiveRenderer {
9public:
10 void newFrame();
11
12 void refresh();
13
14 int effetsLimit();
15
16 int creaturesLimit();
17
18 int itemsLimit();
19
20 int textsLimit();
21
22 int mapRenderInterval();
23
24 int creaturesRenderInterval();
25
26
27 bool allowFading();
28
29 int getLevel() {
30 return m_speed;
31 }
32
33 int foregroundUpdateInterval();
34
35 std::string getDebugInfo();
36
37 void setForcedLevel(int value) {
38 m_forcedSpeed = value;
39 }
40
41private:
42 int m_forcedSpeed = -1;
43 int m_speed = 0;
44 time_t m_update = 0;
45 std::list<time_t> m_frames;
46};
47
48extern AdaptiveRenderer g_adaptiveRenderer;
49
50#endif