1#ifndef GAME_MAP_RENDER_LAYER_H
2#define GAME_MAP_RENDER_LAYER_H
30typedef std::function<void(
const char *pCaption,
const char *pContent,
int IncreaseCounter)>
FRenderUploadCallback;
68 virtual void OnInit(
IGraphics *pGraphics,
ITextRender *pTextRender,
CRenderMap *pRenderMap, std::shared_ptr<CEnvelopeManager> &pEnvelopeManager,
IMap *pMap,
IMapImages *pMapImages, std::optional<FRenderUploadCallback> &FRenderUploadCallbackOptional);
73 virtual bool IsValid()
const {
return true; }
74 virtual bool IsGroup()
const {
return false; }
105 bool IsGroup()
const override {
return true; }
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;
135 virtual void GetTileData(
unsigned char *pIndex,
unsigned char *pFlags,
int *pAngleRotate,
unsigned int x,
unsigned int y,
int CurOverlay)
const;
154 bool Init(
unsigned int Width,
unsigned int Height);
213 void UploadTileData(std::optional<CTileLayerVisuals> &VisualsOptional,
int CurOverlay,
bool AddAsSpeedup,
bool IsGameLayer =
false);
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;
298 void Init()
override;
320 void Init()
override;
327 void GetTileData(
unsigned char *pIndex,
unsigned char *pFlags,
int *pAngleRotate,
unsigned int x,
unsigned int y,
int CurOverlay)
const override;
339 void Init()
override;
346 void GetTileData(
unsigned char *pIndex,
unsigned char *pFlags,
int *pAngleRotate,
unsigned int x,
unsigned int y,
int CurOverlay)
const override;
360 void Init()
override;
367 void GetTileData(
unsigned char *pIndex,
unsigned char *pFlags,
int *pAngleRotate,
unsigned int x,
unsigned int y,
int CurOverlay)
const override;
385 void GetTileData(
unsigned char *pIndex,
unsigned char *pFlags,
int *pAngleRotate,
unsigned int x,
unsigned int y,
int CurOverlay)
const override;
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:1408
bool DoRender(const CRenderLayerParams &Params) override
Definition render_layer.cpp:1395
CRenderLayerEntityBase(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap)
Definition render_layer.cpp:1392
CRenderLayerEntityFront(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap)
Definition render_layer.cpp:1456
int GetDataIndex(unsigned int &TileSize) const override
Definition render_layer.cpp:1459
ColorRGBA GetDeathBorderColor() const
Definition render_layer.cpp:1446
CRenderLayerEntityGame(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap)
Definition render_layer.cpp:1414
void RenderTileLayerWithTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override
Definition render_layer.cpp:1422
void Init() override
Definition render_layer.cpp:1417
void RenderTileLayerNoTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override
Definition render_layer.cpp:1430
CSpeedupTile * m_pSpeedupTiles
Definition render_layer.h:352
void RenderTileLayerNoTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override
Definition render_layer.cpp:1604
void GetTileData(unsigned char *pIndex, unsigned char *pFlags, int *pAngleRotate, unsigned int x, unsigned int y, int CurOverlay) const override
Definition render_layer.cpp:1572
void Unload() override
Definition render_layer.cpp:1557
void InitTileData() override
Definition render_layer.cpp:1552
std::optional< CRenderLayerTile::CTileLayerVisuals > m_VisualForce
Definition render_layer.h:350
CRenderLayerEntitySpeedup(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap)
Definition render_layer.cpp:1531
void Init() override
Definition render_layer.cpp:1545
int GetDataIndex(unsigned int &TileSize) const override
Definition render_layer.cpp:1539
void RenderTileLayerWithTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override
Definition render_layer.cpp:1587
IGraphics::CTextureHandle GetTexture() const override
Definition render_layer.cpp:1534
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:1652
void RenderTileLayerWithTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override
Definition render_layer.cpp:1668
int GetDataIndex(unsigned int &TileSize) const override
Definition render_layer.cpp:1619
std::optional< CRenderLayerTile::CTileLayerVisuals > m_VisualSwitchNumberBottom
Definition render_layer.h:372
void RenderTileLayerNoTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override
Definition render_layer.cpp:1681
void Unload() override
Definition render_layer.cpp:1637
CRenderLayerEntitySwitch(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap)
Definition render_layer.cpp:1611
void InitTileData() override
Definition render_layer.cpp:1632
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:1614
void Init() override
Definition render_layer.cpp:1625
CTeleTile * m_pTeleTiles
Definition render_layer.h:331
void Init() override
Definition render_layer.cpp:1475
void GetTileData(unsigned char *pIndex, unsigned char *pFlags, int *pAngleRotate, unsigned int x, unsigned int y, int CurOverlay) const override
Definition render_layer.cpp:1517
void InitTileData() override
Definition render_layer.cpp:1481
std::optional< CRenderLayerTile::CTileLayerVisuals > m_VisualTeleNumbers
Definition render_layer.h:330
void Unload() override
Definition render_layer.cpp:1486
CRenderLayerEntityTele(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap)
Definition render_layer.cpp:1466
void RenderTileLayerWithTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override
Definition render_layer.cpp:1496
int GetDataIndex(unsigned int &TileSize) const override
Definition render_layer.cpp:1469
void RenderTileLayerNoTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override
Definition render_layer.cpp:1507
void GetTileData(unsigned char *pIndex, unsigned char *pFlags, int *pAngleRotate, unsigned int x, unsigned int y, int CurOverlay) const override
Definition render_layer.cpp:1695
CRenderLayerEntityTune(int GroupId, int LayerId, int Flags, CMapItemLayerTilemap *pLayerTilemap)
Definition render_layer.cpp:1692
void RenderTileLayerNoTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params) override
Definition render_layer.cpp:1712
void InitTileData() override
Definition render_layer.cpp:1707
CTuneTile * m_pTuneTiles
Definition render_layer.h:388
int GetDataIndex(unsigned int &TileSize) const override
Definition render_layer.cpp:1701
CRenderLayerGroup(int GroupId, CMapItemGroup *pGroup)
Definition render_layer.cpp:223
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:226
IGraphics::CTextureHandle GetTexture() const override
Definition render_layer.h:109
void Render(const CRenderLayerParams &Params) override
Definition render_layer.cpp:269
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:1214
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:1307
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:1020
bool DoRender(const CRenderLayerParams &Params) override
Definition render_layer.cpp:1368
CRenderLayerQuads(int GroupId, int LayerId, int Flags, CMapItemLayerQuads *pLayerQuads)
Definition render_layer.cpp:927
std::vector< CQuadCluster > m_vQuadClusters
Definition render_layer.h:275
void Init() override
Definition render_layer.cpp:1028
IGraphics::CTextureHandle m_TextureHandle
Definition render_layer.h:279
void Render(const CRenderLayerParams &Params) override
Definition render_layer.cpp:1344
CMapItemLayerQuads * m_pLayerQuads
Definition render_layer.h:255
bool CalculateQuadClipping(const CQuadCluster &QuadCluster, float aQuadOffsetMin[2], float aQuadOffsetMax[2]) const
Definition render_layer.cpp:1219
bool IsValid() const override
Definition render_layer.h:233
void RenderQuadLayer(float Alpha, const CRenderLayerParams &Params)
Definition render_layer.cpp:934
void Unload() override
Definition render_layer.cpp:1205
Definition render_layer.h:158
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:875
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:457
void Init() override
Definition render_layer.cpp:573
T * GetData() const
Definition render_layer.cpp:912
bool DoRender(const CRenderLayerParams &Params) override
Definition render_layer.cpp:543
virtual void * GetRawData() const
Definition render_layer.cpp:886
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:899
void RenderTileLayer(const ColorRGBA &Color, const CRenderLayerParams &Params, CTileLayerVisuals *pTileLayerVisuals=nullptr)
Definition render_layer.cpp:290
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:582
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:282
virtual void RenderTileLayerWithTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params)
Definition render_layer.cpp:559
virtual int GetDataIndex(unsigned int &TileSize) const
Definition render_layer.cpp:880
virtual ColorRGBA GetRenderColor(const CRenderLayerParams &Params) const
Definition render_layer.cpp:517
bool IsValid() const override
Definition render_layer.h:125
void Render(const CRenderLayerParams &Params) override
Definition render_layer.cpp:529
virtual void InitTileData()
Definition render_layer.cpp:906
virtual void GetTileData(unsigned char *pIndex, unsigned char *pFlags, int *pAngleRotate, unsigned int x, unsigned int y, int CurOverlay) const
Definition render_layer.cpp:917
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:356
virtual void RenderTileLayerNoTileBuffer(const ColorRGBA &Color, const CRenderLayerParams &Params)
Definition render_layer.cpp:565
std::optional< CRenderLayerTile::CTileLayerVisuals > m_VisualTiles
Definition render_layer.h:222
void Unload() override
Definition render_layer.cpp:866
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:203
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
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:187
void RenderLoading() const
Definition render_layer.cpp:195
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:178
CRenderLayer(int GroupId, int LayerId, int Flags)
Definition render_layer.cpp:175
int m_GroupId
Definition render_layer.h:81
virtual bool DoRender(const CRenderLayerParams &Params)=0
Definition render_map.h:55
Definition mapitems.h:642
Definition mapitems.h:651
Definition mapitems.h:635
Definition mapitems.h:351
Definition mapitems.h:668
Definition graphics.h:206
Definition graphics.h:189
Definition render_interfaces.h:30
Definition textrender.h:194
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 tile_art.cpp:41
vector2_base< float > vec2
Definition vmath.h:161