DDraceNetwork Documentation
Loading...
Searching...
No Matches
render_map.h
Go to the documentation of this file.
1#ifndef GAME_MAP_RENDER_MAP_H
2#define GAME_MAP_RENDER_MAP_H
3
4#include <base/color.h>
6#include <game/mapitems.h>
7
8#include <chrono>
9
10enum
11{
14
16
19};
20
22{
23public:
24 virtual ~IEnvelopePointAccess() = default;
25 virtual int NumPoints() const = 0;
26 virtual const CEnvPoint *GetPoint(int Index) const = 0;
27 virtual const CEnvPointBezier *GetBezier(int Index) const = 0;
28 int FindPointIndex(CFixedTime Time) const;
29};
30
50
51class IGraphics;
52class ITextRender;
53
55{
58
59public:
63
64 // map render methods (render_map.cpp)
65 static void RenderEvalEnvelope(const IEnvelopePointAccess *pPoints, std::chrono::nanoseconds TimeNanos, ColorRGBA &Result, size_t Channels);
66 void ForceRenderQuads(CQuad *pQuads, int NumQuads, int Flags, IEnvelopeEval *pEnvEval, float Alpha = 1.0f);
67 void RenderTile(int x, int y, unsigned char Index, float Scale, ColorRGBA Color);
68 void RenderTilemap(CTile *pTiles, int w, int h, float Scale, ColorRGBA Color, int RenderFlags);
69
70 // render a rectangle made of IndexIn tiles, over a background made of IndexOut tiles
71 // the rectangle include all tiles in [RectX, RectX+RectW-1] x [RectY, RectY+RectH-1]
72 void RenderTileRectangle(int RectX, int RectY, int RectW, int RectH, unsigned char IndexIn, unsigned char IndexOut, float Scale, ColorRGBA Color, int RenderFlags);
73
74 // DDRace
75 void RenderTeleOverlay(CTeleTile *pTele, int w, int h, float Scale, int OverlayRenderFlags, float Alpha = 1.0f);
76 void RenderSpeedupOverlay(CSpeedupTile *pSpeedup, int w, int h, float Scale, int OverlayRenderFlags, float Alpha = 1.0f);
77 void RenderSwitchOverlay(CSwitchTile *pSwitch, int w, int h, float Scale, int OverlayRenderFlags, float Alpha = 1.0f);
78 void RenderTuneOverlay(CTuneTile *pTune, int w, int h, float Scale, int OverlayRenderFlags, float Alpha = 1.0f);
79 void RenderTelemap(CTeleTile *pTele, int w, int h, float Scale, ColorRGBA Color, int RenderFlags);
80 void RenderSwitchmap(CSwitchTile *pSwitch, int w, int h, float Scale, ColorRGBA Color, int RenderFlags);
81 void RenderTunemap(CTuneTile *pTune, int w, int h, float Scale, ColorRGBA Color, int RenderFlags);
82
83 void RenderDebugClip(float ClipX, float ClipY, float ClipW, float ClipH, ColorRGBA Color, float Zoom, const char *pLabel);
84};
85
86#endif
Definition datafile.h:24
Definition mapitems.h:484
Definition mapitems.h:473
Definition mapitems.h:452
Definition mapitems.h:225
Definition render_map.h:32
int m_NumPoints
Definition render_map.h:34
int NumPointsMax() const
Definition render_map.cpp:129
int NumPoints() const override
Definition render_map.cpp:124
int m_StartPoint
Definition render_map.h:33
CEnvPoint * m_pPoints
Definition render_map.h:36
int m_NumPointsMax
Definition render_map.h:35
int StartPoint() const
Definition render_map.cpp:119
CEnvPointBezier_upstream * m_pPointsBezierUpstream
Definition render_map.h:38
const CEnvPointBezier * GetBezier(int Index) const override
Definition render_map.cpp:145
CEnvPointBezier * m_pPointsBezier
Definition render_map.h:37
const CEnvPoint * GetPoint(int Index) const override
Definition render_map.cpp:134
void SetPointsRange(int StartPoint, int NumPoints)
Definition render_map.cpp:113
Definition mapitems.h:303
Definition render_map.h:55
void RenderTelemap(CTeleTile *pTele, int w, int h, float Scale, ColorRGBA Color, int RenderFlags)
Definition render_map.cpp:1017
void Init(IGraphics *pGraphics, ITextRender *pTextRender)
Definition render_map.cpp:247
void RenderSwitchOverlay(CSwitchTile *pSwitch, int w, int h, float Scale, int OverlayRenderFlags, float Alpha=1.0f)
Definition render_map.cpp:904
void RenderTunemap(CTuneTile *pTune, int w, int h, float Scale, ColorRGBA Color, int RenderFlags)
Definition render_map.cpp:1294
static void RenderEvalEnvelope(const IEnvelopePointAccess *pPoints, std::chrono::nanoseconds TimeNanos, ColorRGBA &Result, size_t Channels)
Definition render_map.cpp:253
void RenderTeleOverlay(CTeleTile *pTele, int w, int h, float Scale, int OverlayRenderFlags, float Alpha=1.0f)
Definition render_map.cpp:762
IGraphics * Graphics()
Definition render_map.h:61
ITextRender * TextRender()
Definition render_map.h:62
void RenderTilemap(CTile *pTiles, int w, int h, float Scale, ColorRGBA Color, int RenderFlags)
Definition render_map.cpp:601
void RenderTileRectangle(int RectX, int RectY, int RectW, int RectH, unsigned char IndexIn, unsigned char IndexOut, float Scale, ColorRGBA Color, int RenderFlags)
Definition render_map.cpp:441
IGraphics * m_pGraphics
Definition render_map.h:56
void RenderSpeedupOverlay(CSpeedupTile *pSpeedup, int w, int h, float Scale, int OverlayRenderFlags, float Alpha=1.0f)
Definition render_map.cpp:817
void RenderTile(int x, int y, unsigned char Index, float Scale, ColorRGBA Color)
Definition render_map.cpp:534
void ForceRenderQuads(CQuad *pQuads, int NumQuads, int Flags, IEnvelopeEval *pEnvEval, float Alpha=1.0f)
Definition render_map.cpp:376
void RenderSwitchmap(CSwitchTile *pSwitch, int w, int h, float Scale, ColorRGBA Color, int RenderFlags)
Definition render_map.cpp:1134
void RenderTuneOverlay(CTuneTile *pTune, int w, int h, float Scale, int OverlayRenderFlags, float Alpha=1.0f)
Definition render_map.cpp:962
ITextRender * m_pTextRender
Definition render_map.h:57
void RenderDebugClip(float ClipX, float ClipY, float ClipW, float ClipH, ColorRGBA Color, float Zoom, const char *pLabel)
Definition render_map.cpp:1411
Definition mapitems.h:608
Definition mapitems.h:617
Definition mapitems.h:601
Definition mapitems.h:317
Definition mapitems.h:634
Definition color.h:198
Definition render_interfaces.h:24
Definition render_map.h:22
virtual const CEnvPointBezier * GetBezier(int Index) const =0
int FindPointIndex(CFixedTime Time) const
Definition render_map.cpp:25
virtual ~IEnvelopePointAccess()=default
virtual int NumPoints() const =0
virtual const CEnvPoint * GetPoint(int Index) const =0
Definition graphics.h:188
Definition map.h:16
Definition textrender.h:280
Definition vmath.h:15
@ OVERLAYRENDERFLAG_TEXT
Definition render_map.h:17
@ TILERENDERFLAG_EXTEND
Definition render_map.h:15
@ OVERLAYRENDERFLAG_EDITOR
Definition render_map.h:18
@ LAYERRENDERFLAG_OPAQUE
Definition render_map.h:12
@ LAYERRENDERFLAG_TRANSPARENT
Definition render_map.h:13