1#ifndef GAME_MAP_RENDER_INTERFACES_H
2#define GAME_MAP_RENDER_INTERFACES_H
3
4#include <engine/graphics.h>
5
6enum EMapImageEntityLayerType
7{
8 MAP_IMAGE_ENTITY_LAYER_TYPE_ALL_EXCEPT_SWITCH = 0,
9 MAP_IMAGE_ENTITY_LAYER_TYPE_SWITCH,
10
11 MAP_IMAGE_ENTITY_LAYER_TYPE_COUNT,
12};
13
14enum ERenderType
15{
16 RENDERTYPE_BACKGROUND = 0,
17 RENDERTYPE_BACKGROUND_FORCE,
18 RENDERTYPE_FOREGROUND,
19 RENDERTYPE_FULL_DESIGN,
20};
21
22class IEnvelopeEval
23{
24public:
25 virtual ~IEnvelopeEval() = default;
26 virtual void EnvelopeEval(int TimeOffsetMillis, int Env, ColorRGBA &Result, size_t Channels) = 0;
27};
28
29class IMapImages
30{
31public:
32 virtual ~IMapImages() = default;
33 virtual IGraphics::CTextureHandle Get(int Index) const = 0;
34 virtual int Num() const = 0;
35 // DDRace
36 virtual IGraphics::CTextureHandle GetEntities(EMapImageEntityLayerType EntityLayerType) = 0;
37 virtual IGraphics::CTextureHandle GetSpeedupArrow() = 0;
38
39 virtual IGraphics::CTextureHandle GetOverlayBottom() = 0;
40 virtual IGraphics::CTextureHandle GetOverlayTop() = 0;
41 virtual IGraphics::CTextureHandle GetOverlayCenter() = 0;
42};
43
44#endif
45