DDraceNetwork Documentation
Loading...
Searching...
No Matches
render_layer.h
Go to the documentation of this file.
1#ifndef GAME_MAP_RENDER_LAYER_H
2#define GAME_MAP_RENDER_LAYER_H
3
4#include <cstdint>
5
6using offset_ptr_size = char *;
7using offset_ptr = uintptr_t;
8using offset_ptr32 = unsigned int;
9
10#include <base/color.h>
11
12#include <engine/graphics.h>
13
16#include <game/map/render_map.h>
17#include <game/mapitems.h>
18#include <game/mapitems_ex.h>
19
20#include <memory>
21#include <optional>
22#include <vector>
23
24class CMapLayers;
27class IMap;
28class CMapImages;
29
30typedef std::function<void(const char *pCaption, const char *pContent, int IncreaseCounter)> FRenderUploadCallback;
31
32constexpr int BorderRenderDistance = 201;
33
35{
36public:
37 CClipRegion() = default;
38 CClipRegion(float X, float Y, float Width, float Height) :
39 m_X(X), m_Y(Y), m_Width(Width), m_Height(Height) {}
40
41 float m_X;
42 float m_Y;
43 float m_Width;
44 float m_Height;
45};
46
63
65{
66public:
67 CRenderLayer(int GroupId, int LayerId, int Flags);
68 virtual void OnInit(IGraphics *pGraphics, ITextRender *pTextRender, CRenderMap *pRenderMap, std::shared_ptr<CEnvelopeManager> &pEnvelopeManager, IMap *pMap, IMapImages *pMapImages, std::optional<FRenderUploadCallback> &FRenderUploadCallbackOptional);
69
70 virtual void Init() = 0;
71 virtual void Render(const CRenderLayerParams &Params) = 0;
72 virtual bool DoRender(const CRenderLayerParams &Params) = 0;
73 virtual bool IsValid() const { return true; }
74 virtual bool IsGroup() const { return false; }
75 virtual void Unload() = 0;
76
77 bool IsVisibleInClipRegion(const std::optional<CClipRegion> &ClipRegion) const;
78 int GetGroup() const { return m_GroupId; }
79
80protected:
84
85 void UseTexture(IGraphics::CTextureHandle TextureHandle);
87 void RenderLoading() const;
88
89 class IMap *m_pMap = nullptr;
91 std::shared_ptr<CEnvelopeManager> m_pEnvelopeManager;
92 std::optional<FRenderUploadCallback> m_RenderUploadCallback;
93 std::optional<CClipRegion> m_LayerClip;
94};
95
97{
98public:
99 CRenderLayerGroup(int GroupId, CMapItemGroup *pGroup);
100 ~CRenderLayerGroup() override = default;
101 void Init() override {}
102 void Render(const CRenderLayerParams &Params) override;
103 bool DoRender(const CRenderLayerParams &Params) override;
104 bool IsValid() const override { return m_pGroup != nullptr; }
105 bool IsGroup() const override { return true; }
106 void Unload() override {}
107
108protected:
110
112};
113
115{
116public:
117 CRenderLayerTile(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap);
118 ~CRenderLayerTile() override = default;
119 void Render(const CRenderLayerParams &Params) override;
120 bool DoRender(const CRenderLayerParams &Params) override;
121 void Init() override;
122 void OnInit(IGraphics *pGraphics, ITextRender *pTextRender, CRenderMap *pRenderMap, std::shared_ptr<CEnvelopeManager> &pEnvelopeManager, IMap *pMap, IMapImages *pMapImages, std::optional<FRenderUploadCallback> &FRenderUploadCallbackOptional) override;
123
124 virtual int GetDataIndex(unsigned int &TileSize) const;
125 bool IsValid() const override { return GetRawData() != nullptr; }
126 void Unload() override;
127
128protected:
129 virtual void *GetRawData() const;
130 template<class T>
131 T *GetData() const;
132
133 virtual ColorRGBA GetRenderColor(const CRenderLayerParams &Params) const;
134 virtual void InitTileData();
135 virtual void GetTileData(unsigned char *pIndex, unsigned char *pFlags, int *pAngleRotate, unsigned int x, unsigned int y, int CurOverlay) const;
138
139private:
141
142protected:
144 {
145 public:
147 {
148 m_Width = 0;
149 m_Height = 0;
151 m_IsTextured = false;
152 }
153
154 bool Init(unsigned int Width, unsigned int Height);
155 void Unload();
156
158 {
159 public:
162
163 private:
165
166 public:
167 bool DoDraw() const
168 {
169 return (m_IndexBufferByteOffset & 0x10000000) != 0;
170 }
171
172 void Draw(bool SetDraw)
173 {
174 m_IndexBufferByteOffset = (SetDraw ? 0x10000000 : (offset_ptr32)0) | (m_IndexBufferByteOffset & 0xEFFFFFFF);
175 }
176
178 {
179 return ((offset_ptr)(m_IndexBufferByteOffset & 0xEFFFFFFF) * 6 * sizeof(uint32_t));
180 }
181
182 void SetIndexBufferByteOffset(offset_ptr32 IndexBufferByteOff)
183 {
184 m_IndexBufferByteOffset = IndexBufferByteOff | (m_IndexBufferByteOffset & 0x10000000);
185 }
186
187 void AddIndexBufferByteOffset(offset_ptr32 IndexBufferByteOff)
188 {
189 m_IndexBufferByteOffset = ((m_IndexBufferByteOffset & 0xEFFFFFFF) + IndexBufferByteOff) | (m_IndexBufferByteOffset & 0x10000000);
190 }
191 };
192
193 std::vector<CTileVisual> m_vTilesOfLayer;
194
199
200 CTileVisual m_BorderKillTile; // end of map kill tile -- game layer only
201
202 std::vector<CTileVisual> m_vBorderTop;
203 std::vector<CTileVisual> m_vBorderLeft;
204 std::vector<CTileVisual> m_vBorderRight;
205 std::vector<CTileVisual> m_vBorderBottom;
206
207 unsigned int m_Width;
208 unsigned int m_Height;
211 };
212
213 void UploadTileData(std::optional<CTileLayerVisuals> &VisualsOptional, int CurOverlay, bool AddAsSpeedup, bool IsGameLayer = false);
214
215 virtual void RenderTileLayerWithTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params);
216 virtual void RenderTileLayerNoTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params);
217
218 void RenderTileLayer(const ColorRGBA &Color, const CRenderLayerParams &Params, CTileLayerVisuals *pTileLayerVisuals = nullptr);
219 void RenderTileBorder(const ColorRGBA &Color, int BorderX0, int BorderY0, int BorderX1, int BorderY1, CTileLayerVisuals *pTileLayerVisuals);
220 void RenderKillTileBorder(const ColorRGBA &Color);
221
222 std::optional<CRenderLayerTile::CTileLayerVisuals> m_VisualTiles;
225};
226
228{
229public:
230 CRenderLayerQuads(int GroupId, int LayerId, int Flags, CMapItemLayerQuads *pLayerQuads);
231 void OnInit(IGraphics *pGraphics, ITextRender *pTextRender, CRenderMap *pRenderMap, std::shared_ptr<CEnvelopeManager> &pEnvelopeManager, IMap *pMap, IMapImages *pMapImages, std::optional<FRenderUploadCallback> &FRenderUploadCallbackOptional) override;
232 void Init() override;
233 bool IsValid() const override { return m_pLayerQuads->m_NumQuads > 0 && m_pQuads; }
234 void Render(const CRenderLayerParams &Params) override;
235 bool DoRender(const CRenderLayerParams &Params) override;
236 void Unload() override;
237
238protected:
240
242 {
243 public:
246 void Unload();
247
251 };
252 void RenderQuadLayer(float Alpha, const CRenderLayerParams &Params);
253
254 std::optional<CRenderLayerQuads::CQuadLayerVisuals> m_VisualQuad;
256
258 {
259 public:
263
268
269 std::vector<SQuadRenderInfo> m_vQuadRenderInfo;
270 std::optional<CClipRegion> m_ClipRegion;
271 };
272 void CalculateClipping(CQuadCluster &QuadCluster);
273 bool CalculateQuadClipping(const CQuadCluster &QuadCluster, float aQuadOffsetMin[2], float aQuadOffsetMax[2]) const;
274
275 std::vector<CQuadCluster> m_vQuadClusters;
277
278private:
280};
281
283{
284public:
285 CRenderLayerEntityBase(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap);
286 ~CRenderLayerEntityBase() override = default;
287 bool DoRender(const CRenderLayerParams &Params) override;
288
289protected:
290 ColorRGBA GetRenderColor(const CRenderLayerParams &Params) const override { return ColorRGBA(1.0f, 1.0f, 1.0f, Params.m_EntityOverlayVal / 100.0f); }
291 IGraphics::CTextureHandle GetTexture() const override;
292};
293
295{
296public:
297 CRenderLayerEntityGame(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap);
298 void Init() override;
299
300protected:
301 void RenderTileLayerWithTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override;
302 void RenderTileLayerNoTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override;
303
304private:
306};
307
309{
310public:
311 CRenderLayerEntityFront(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap);
312 int GetDataIndex(unsigned int &TileSize) const override;
313};
314
316{
317public:
318 CRenderLayerEntityTele(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap);
319 int GetDataIndex(unsigned int &TileSize) const override;
320 void Init() override;
321 void InitTileData() override;
322 void Unload() override;
323
324protected:
325 void RenderTileLayerWithTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override;
326 void RenderTileLayerNoTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override;
327 void GetTileData(unsigned char *pIndex, unsigned char *pFlags, int *pAngleRotate, unsigned int x, unsigned int y, int CurOverlay) const override;
328
329private:
330 std::optional<CRenderLayerTile::CTileLayerVisuals> m_VisualTeleNumbers;
332};
333
335{
336public:
337 CRenderLayerEntitySpeedup(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap);
338 int GetDataIndex(unsigned int &TileSize) const override;
339 void Init() override;
340 void InitTileData() override;
341 void Unload() override;
342
343protected:
344 void RenderTileLayerWithTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override;
345 void RenderTileLayerNoTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override;
346 void GetTileData(unsigned char *pIndex, unsigned char *pFlags, int *pAngleRotate, unsigned int x, unsigned int y, int CurOverlay) const override;
347 IGraphics::CTextureHandle GetTexture() const override;
348
349private:
350 std::optional<CRenderLayerTile::CTileLayerVisuals> m_VisualForce;
351 std::optional<CRenderLayerTile::CTileLayerVisuals> m_VisualMaxSpeed;
353};
354
356{
357public:
358 CRenderLayerEntitySwitch(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap);
359 int GetDataIndex(unsigned int &TileSize) const override;
360 void Init() override;
361 void InitTileData() override;
362 void Unload() override;
363
364protected:
365 void RenderTileLayerWithTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override;
366 void RenderTileLayerNoTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override;
367 void GetTileData(unsigned char *pIndex, unsigned char *pFlags, int *pAngleRotate, unsigned int x, unsigned int y, int CurOverlay) const override;
368 IGraphics::CTextureHandle GetTexture() const override;
369
370private:
371 std::optional<CRenderLayerTile::CTileLayerVisuals> m_VisualSwitchNumberTop;
372 std::optional<CRenderLayerTile::CTileLayerVisuals> m_VisualSwitchNumberBottom;
374};
375
377{
378public:
379 CRenderLayerEntityTune(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap);
380 int GetDataIndex(unsigned int &TileSize) const override;
381 void InitTileData() override;
382
383protected:
384 void RenderTileLayerNoTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override;
385 void GetTileData(unsigned char *pIndex, unsigned char *pFlags, int *pAngleRotate, unsigned int x, unsigned int y, int CurOverlay) const override;
386
387private:
389};
390#endif
CClipRegion()=default
float m_Width
Definition render_layer.h:43
CClipRegion(float X, float Y, float Width, float Height)
Definition render_layer.h:38
float m_Height
Definition render_layer.h:44
float m_X
Definition render_layer.h:41
float m_Y
Definition render_layer.h:42
Definition mapimages.h:37
Definition mapitems.h:408
Definition mapitems.h:465
Definition mapitems.h:428
Definition maplayers.h:16
Definition mapitems.h:337
Definition render_component.h:10
~CRenderLayerEntityBase() override=default
ColorRGBA GetRenderColor(const CRenderLayerParams &Params) const override
Definition render_layer.h:290
IGraphics::CTextureHandle GetTexture() const override
Definition render_layer.cpp:1390
bool DoRender(const CRenderLayerParams &Params) override
Definition render_layer.cpp:1377
CRenderLayerEntityBase(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap)
Definition render_layer.cpp:1374
CRenderLayerEntityFront(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap)
Definition render_layer.cpp:1438
int GetDataIndex(unsigned int &TileSize) const override
Definition render_layer.cpp:1441
ColorRGBA GetDeathBorderColor() const
Definition render_layer.cpp:1428
CRenderLayerEntityGame(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap)
Definition render_layer.cpp:1396
void RenderTileLayerWithTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override
Definition render_layer.cpp:1404
void Init() override
Definition render_layer.cpp:1399
void RenderTileLayerNoTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override
Definition render_layer.cpp:1412
CSpeedupTile * m_pSpeedupTiles
Definition render_layer.h:352
void RenderTileLayerNoTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override
Definition render_layer.cpp:1586
void GetTileData(unsigned char *pIndex, unsigned char *pFlags, int *pAngleRotate, unsigned int x, unsigned int y, int CurOverlay) const override
Definition render_layer.cpp:1554
void Unload() override
Definition render_layer.cpp:1539
void InitTileData() override
Definition render_layer.cpp:1534
std::optional< CRenderLayerTile::CTileLayerVisuals > m_VisualForce
Definition render_layer.h:350
CRenderLayerEntitySpeedup(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap)
Definition render_layer.cpp:1513
void Init() override
Definition render_layer.cpp:1527
int GetDataIndex(unsigned int &TileSize) const override
Definition render_layer.cpp:1521
void RenderTileLayerWithTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override
Definition render_layer.cpp:1569
IGraphics::CTextureHandle GetTexture() const override
Definition render_layer.cpp:1516
std::optional< CRenderLayerTile::CTileLayerVisuals > m_VisualMaxSpeed
Definition render_layer.h:351
void GetTileData(unsigned char *pIndex, unsigned char *pFlags, int *pAngleRotate, unsigned int x, unsigned int y, int CurOverlay) const override
Definition render_layer.cpp:1634
void RenderTileLayerWithTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override
Definition render_layer.cpp:1650
int GetDataIndex(unsigned int &TileSize) const override
Definition render_layer.cpp:1601
std::optional< CRenderLayerTile::CTileLayerVisuals > m_VisualSwitchNumberBottom
Definition render_layer.h:372
void RenderTileLayerNoTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override
Definition render_layer.cpp:1663
void Unload() override
Definition render_layer.cpp:1619
CRenderLayerEntitySwitch(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap)
Definition render_layer.cpp:1593
void InitTileData() override
Definition render_layer.cpp:1614
std::optional< CRenderLayerTile::CTileLayerVisuals > m_VisualSwitchNumberTop
Definition render_layer.h:371
CSwitchTile * m_pSwitchTiles
Definition render_layer.h:373
IGraphics::CTextureHandle GetTexture() const override
Definition render_layer.cpp:1596
void Init() override
Definition render_layer.cpp:1607
CTeleTile * m_pTeleTiles
Definition render_layer.h:331
void Init() override
Definition render_layer.cpp:1457
void GetTileData(unsigned char *pIndex, unsigned char *pFlags, int *pAngleRotate, unsigned int x, unsigned int y, int CurOverlay) const override
Definition render_layer.cpp:1499
void InitTileData() override
Definition render_layer.cpp:1463
std::optional< CRenderLayerTile::CTileLayerVisuals > m_VisualTeleNumbers
Definition render_layer.h:330
void Unload() override
Definition render_layer.cpp:1468
CRenderLayerEntityTele(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap)
Definition render_layer.cpp:1448
void RenderTileLayerWithTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override
Definition render_layer.cpp:1478
int GetDataIndex(unsigned int &TileSize) const override
Definition render_layer.cpp:1451
void RenderTileLayerNoTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override
Definition render_layer.cpp:1489
void GetTileData(unsigned char *pIndex, unsigned char *pFlags, int *pAngleRotate, unsigned int x, unsigned int y, int CurOverlay) const override
Definition render_layer.cpp:1677
CRenderLayerEntityTune(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap)
Definition render_layer.cpp:1674
void RenderTileLayerNoTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override
Definition render_layer.cpp:1694
void InitTileData() override
Definition render_layer.cpp:1689
CTuneTile * m_pTuneTiles
Definition render_layer.h:388
int GetDataIndex(unsigned int &TileSize) const override
Definition render_layer.cpp:1683
CRenderLayerGroup(int GroupId, CMapItemGroup *pGroup)
Definition render_layer.cpp:233
bool IsGroup() const override
Definition render_layer.h:105
bool IsValid() const override
Definition render_layer.h:104
~CRenderLayerGroup() override=default
void Unload() override
Definition render_layer.h:106
bool DoRender(const CRenderLayerParams &Params) override
Definition render_layer.cpp:236
IGraphics::CTextureHandle GetTexture() const override
Definition render_layer.h:109
void Render(const CRenderLayerParams &Params) override
Definition render_layer.cpp:279
void Init() override
Definition render_layer.h:101
CMapItemGroup * m_pGroup
Definition render_layer.h:111
Definition render_layer.h:48
float m_Zoom
Definition render_layer.h:53
bool m_DebugRenderTileClips
Definition render_layer.h:61
vec2 m_Center
Definition render_layer.h:52
bool m_DebugRenderClusterClips
Definition render_layer.h:60
bool m_TileAndQuadBuffering
Definition render_layer.h:56
int m_EntityOverlayVal
Definition render_layer.h:51
bool m_RenderTileBorder
Definition render_layer.h:57
bool m_DebugRenderQuadClips
Definition render_layer.h:59
bool m_DebugRenderGroupClips
Definition render_layer.h:58
bool m_RenderInvalidTiles
Definition render_layer.h:55
int m_RenderType
Definition render_layer.h:50
bool m_RenderText
Definition render_layer.h:54
Definition render_layer.h:258
std::vector< SQuadRenderInfo > m_vQuadRenderInfo
Definition render_layer.h:269
int m_ColorEnv
Definition render_layer.h:266
float m_PosEnvOffset
Definition render_layer.h:265
bool m_Grouped
Definition render_layer.h:260
float m_ColorEnvOffset
Definition render_layer.h:267
int m_PosEnv
Definition render_layer.h:264
std::optional< CClipRegion > m_ClipRegion
Definition render_layer.h:270
int m_StartIndex
Definition render_layer.h:261
int m_NumQuads
Definition render_layer.h:262
void Unload()
Definition render_layer.cpp:1196
int m_QuadNum
Definition render_layer.h:248
CQuadLayerVisuals()
Definition render_layer.h:244
bool m_IsTextured
Definition render_layer.h:250
int m_BufferContainerIndex
Definition render_layer.h:249
void CalculateClipping(CQuadCluster &QuadCluster)
Definition render_layer.cpp:1289
CQuad * m_pQuads
Definition render_layer.h:276
std::optional< CRenderLayerQuads::CQuadLayerVisuals > m_VisualQuad
Definition render_layer.h:254
IGraphics::CTextureHandle GetTexture() const override
Definition render_layer.h:239
void OnInit(IGraphics *pGraphics, ITextRender *pTextRender, CRenderMap *pRenderMap, std::shared_ptr< CEnvelopeManager > &pEnvelopeManager, IMap *pMap, IMapImages *pMapImages, std::optional< FRenderUploadCallback > &FRenderUploadCallbackOptional) override
Definition render_layer.cpp:1002
bool DoRender(const CRenderLayerParams &Params) override
Definition render_layer.cpp:1350
CRenderLayerQuads(int GroupId, int LayerId, int Flags, CMapItemLayerQuads *pLayerQuads)
Definition render_layer.cpp:909
std::vector< CQuadCluster > m_vQuadClusters
Definition render_layer.h:275
void Init() override
Definition render_layer.cpp:1010
IGraphics::CTextureHandle m_TextureHandle
Definition render_layer.h:279
void Render(const CRenderLayerParams &Params) override
Definition render_layer.cpp:1326
CMapItemLayerQuads * m_pLayerQuads
Definition render_layer.h:255
bool CalculateQuadClipping(const CQuadCluster &QuadCluster, float aQuadOffsetMin[2], float aQuadOffsetMax[2]) const
Definition render_layer.cpp:1201
bool IsValid() const override
Definition render_layer.h:233
void RenderQuadLayer(float Alpha, const CRenderLayerParams &Params)
Definition render_layer.cpp:916
void Unload() override
Definition render_layer.cpp:1187
offset_ptr IndexBufferByteOffset() const
Definition render_layer.h:177
void Draw(bool SetDraw)
Definition render_layer.h:172
CTileVisual()
Definition render_layer.h:160
void SetIndexBufferByteOffset(offset_ptr32 IndexBufferByteOff)
Definition render_layer.h:182
offset_ptr32 m_IndexBufferByteOffset
Definition render_layer.h:164
bool DoDraw() const
Definition render_layer.h:167
void AddIndexBufferByteOffset(offset_ptr32 IndexBufferByteOff)
Definition render_layer.h:187
Definition render_layer.h:144
bool m_IsTextured
Definition render_layer.h:210
std::vector< CTileVisual > m_vTilesOfLayer
Definition render_layer.h:193
void Unload()
Definition render_layer.cpp:857
std::vector< CTileVisual > m_vBorderLeft
Definition render_layer.h:203
int m_BufferContainerIndex
Definition render_layer.h:209
std::vector< CTileVisual > m_vBorderRight
Definition render_layer.h:204
CTileLayerVisuals()
Definition render_layer.h:146
std::vector< CTileVisual > m_vBorderBottom
Definition render_layer.h:205
CTileVisual m_BorderTopRight
Definition render_layer.h:196
CTileVisual m_BorderTopLeft
Definition render_layer.h:195
unsigned int m_Width
Definition render_layer.h:207
std::vector< CTileVisual > m_vBorderTop
Definition render_layer.h:202
CTileVisual m_BorderBottomRight
Definition render_layer.h:197
unsigned int m_Height
Definition render_layer.h:208
CTileVisual m_BorderKillTile
Definition render_layer.h:200
CTileVisual m_BorderBottomLeft
Definition render_layer.h:198
void RenderKillTileBorder(const ColorRGBA &Color)
Definition render_layer.cpp:467
void Init() override
Definition render_layer.cpp:583
T * GetData() const
Definition render_layer.cpp:894
bool DoRender(const CRenderLayerParams &Params) override
Definition render_layer.cpp:553
virtual void * GetRawData() const
Definition render_layer.cpp:868
void OnInit(IGraphics *pGraphics, ITextRender *pTextRender, CRenderMap *pRenderMap, std::shared_ptr< CEnvelopeManager > &pEnvelopeManager, IMap *pMap, IMapImages *pMapImages, std::optional< FRenderUploadCallback > &FRenderUploadCallbackOptional) override
Definition render_layer.cpp:881
void RenderTileLayer(const ColorRGBA &Color, const CRenderLayerParams &Params, CTileLayerVisuals *pTileLayerVisuals=nullptr)
Definition render_layer.cpp:300
IGraphics::CTextureHandle GetTexture() const override
Definition render_layer.h:136
IGraphics::CTextureHandle m_TextureHandle
Definition render_layer.h:140
void UploadTileData(std::optional< CTileLayerVisuals > &VisualsOptional, int CurOverlay, bool AddAsSpeedup, bool IsGameLayer=false)
Definition render_layer.cpp:592
ColorRGBA m_Color
Definition render_layer.h:224
CTile * m_pTiles
Definition render_layer.h:137
CRenderLayerTile(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap)
Definition render_layer.cpp:292
virtual void RenderTileLayerWithTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params)
Definition render_layer.cpp:569
virtual int GetDataIndex(unsigned int &TileSize) const
Definition render_layer.cpp:862
virtual ColorRGBA GetRenderColor(const CRenderLayerParams &Params) const
Definition render_layer.cpp:527
bool IsValid() const override
Definition render_layer.h:125
void Render(const CRenderLayerParams &Params) override
Definition render_layer.cpp:539
virtual void InitTileData()
Definition render_layer.cpp:888
virtual void GetTileData(unsigned char *pIndex, unsigned char *pFlags, int *pAngleRotate, unsigned int x, unsigned int y, int CurOverlay) const
Definition render_layer.cpp:899
CMapItemLayerTilemap * m_pLayerTilemap
Definition render_layer.h:223
~CRenderLayerTile() override=default
void RenderTileBorder(const ColorRGBA &Color, int BorderX0, int BorderY0, int BorderX1, int BorderY1, CTileLayerVisuals *pTileLayerVisuals)
Definition render_layer.cpp:366
virtual void RenderTileLayerNoTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params)
Definition render_layer.cpp:575
std::optional< CRenderLayerTile::CTileLayerVisuals > m_VisualTiles
Definition render_layer.h:222
void Unload() override
Definition render_layer.cpp:848
std::optional< FRenderUploadCallback > m_RenderUploadCallback
Definition render_layer.h:92
virtual void Render(const CRenderLayerParams &Params)=0
bool IsVisibleInClipRegion(const std::optional< CClipRegion > &ClipRegion) const
Definition render_layer.cpp:213
std::optional< CClipRegion > m_LayerClip
Definition render_layer.h:93
virtual IGraphics::CTextureHandle GetTexture() const =0
virtual bool IsGroup() const
Definition render_layer.h:74
virtual void Unload()=0
int m_Flags
Definition render_layer.h:83
int m_LayerId
Definition render_layer.h:82
int GetGroup() const
Definition render_layer.h:78
class IMap * m_pMap
Definition render_layer.h:89
IMapImages * m_pMapImages
Definition render_layer.h:90
void UseTexture(IGraphics::CTextureHandle TextureHandle)
Definition render_layer.cpp:197
void RenderLoading() const
Definition render_layer.cpp:205
virtual bool IsValid() const
Definition render_layer.h:73
std::shared_ptr< CEnvelopeManager > m_pEnvelopeManager
Definition render_layer.h:91
virtual void OnInit(IGraphics *pGraphics, ITextRender *pTextRender, CRenderMap *pRenderMap, std::shared_ptr< CEnvelopeManager > &pEnvelopeManager, IMap *pMap, IMapImages *pMapImages, std::optional< FRenderUploadCallback > &FRenderUploadCallbackOptional)
Definition render_layer.cpp:188
CRenderLayer(int GroupId, int LayerId, int Flags)
Definition render_layer.cpp:185
int m_GroupId
Definition render_layer.h:81
virtual void Init()=0
virtual bool DoRender(const CRenderLayerParams &Params)=0
Definition render_map.h:56
Definition mapitems.h:642
Definition mapitems.h:651
Definition mapitems.h:635
Definition mapitems.h:351
Definition mapitems.h:668
Definition color.h:182
Definition graphics.h:206
Definition graphics.h:189
Definition render_interfaces.h:30
Definition map.h:17
Definition textrender.h:291
std::function< void(const char *pCaption, const char *pContent, int IncreaseCounter)> FRenderUploadCallback
Definition render_layer.h:30
constexpr int BorderRenderDistance
Definition render_layer.h:32
unsigned int offset_ptr32
Definition render_layer.h:8
char * offset_ptr_size
Definition render_layer.h:6
uintptr_t offset_ptr
Definition render_layer.h:7
constexpr int TileSize
Definition tileart.cpp:41
vector2_base< float > vec2
Definition vmath.h:161