23 #ifndef INCLUDED_TERRAINOVERLAY
24 #define INCLUDED_TERRAINOVERLAY
197 #endif // INCLUDED_TERRAINOVERLAY
virtual void RenderAfterWater()
virtual void RenderBeforeWater()
static void RenderOverlaysBeforeWater()
Draw all ITerrainOverlay objects that exist and that should be drawn before water.
static void RenderOverlaysAfterWater()
Draw all ITerrainOverlay objects that exist and that should be drawn after water. ...
TerrainOverlay(const CSimContext &simContext, int priority=100)
Construct the object and register it with the global list of terrain overlays.
virtual ~TerrainTextureOverlay()
Base class for (relatively) simple drawing of data onto terrain tiles, intended for debugging purpose...
Contains pointers to various 'global' objects that are needed by the simulation code, to allow easy access without using real (evil) global variables.
virtual ~ITerrainOverlay()
TerrainTextureOverlay(float texelsPerTile, int priority=100)
virtual void BuildTextureRGBA(u8 *data, size_t w, size_t h)=0
Called each frame to generate the texture to render on the terrain.
virtual void ProcessTile(ssize_t i, ssize_t j)=0
Override to perform processing of each tile.
void RenderTile(const CColor &colour, bool draw_hidden)
Draw a filled quad on top of the current tile.
Common interface for terrain-tile-based and texture-based debug overlays.
NONCOPYABLE(ITerrainOverlay)
virtual void StartRender()
Override to perform processing at the start of the overlay rendering, before the ProcessTile calls...
void RenderTileOutline(const CColor &colour, int line_width, bool draw_hidden)
Draw an outlined quad on top of the current tile.
virtual void RenderBeforeWater()
Base class for texture-based terrain overlays, with an arbitrary number of texels per terrain tile...
ITerrainOverlay(int priority)
virtual void GetTileExtents(ssize_t &min_i_inclusive, ssize_t &min_j_inclusive, ssize_t &max_i_inclusive, ssize_t &max_j_inclusive)
Override to limit the range over which ProcessTile will be called.
virtual void EndRender()
Override to perform processing at the end of the overlay rendering, after the ProcessTile calls...