stmm-games-doc  0.32.0
Classes | Public Member Functions | List of all members
stmg::MaskModifier Class Reference

Mask modifier. More...

Inheritance diagram for stmg::MaskModifier:
Inheritance graph
[legend]

Classes

struct  Init
 
struct  LocalInit
 

Public Member Functions

 MaskModifier (Init &&oInit) noexcept
 Constructor. More...
 
FLOW_CONTROL drawTile (const Cairo::RefPtr< Cairo::Context > &refCc, StdThemeDrawingContext &oDc, const Tile &oTile, int32_t nPlayer, const std::vector< double > &aAniElapsed) noexcept override
 Draw tile (with player skin). More...
 
void registerTileSize (int32_t nW, int32_t nH) noexcept override
 Register tile size. More...
 
void unregisterTileSize (int32_t nW, int32_t nH) noexcept override
 Unregister tile size. More...
 
- Public Member Functions inherited from stmg::ContainerModifier
 ContainerModifier (Init &&oInit) noexcept
 Constructor. More...
 
virtual void applyToSubModifiers (const std::function< void(StdThemeModifier &)> &oApply) noexcept
 Apply a function to all the submodifiers. More...
 
- Public Member Functions inherited from stmg::StdThemeModifier
virtual ~StdThemeModifier () noexcept=default
 
int32_t getDebugTag () const noexcept
 The debug tag. More...
 

Additional Inherited Members

- Public Types inherited from stmg::StdThemeModifier
enum  FLOW_CONTROL { FLOW_CONTROL_CONTINUE = 0, FLOW_CONTROL_STOP = 1 }
 
- Static Public Member Functions inherited from stmg::ContainerModifier
static FLOW_CONTROL drawTile (const std::vector< unique_ptr< StdThemeModifier > > &aModifiers, const Cairo::RefPtr< Cairo::Context > &refCc, StdThemeDrawingContext &oDc, const Tile &oTile, int32_t nPlayer, const std::vector< double > &aAniElapsed) noexcept
 
- Protected Member Functions inherited from stmg::ContainerModifier
FLOW_CONTROL drawContainedToWorkSurface (StdThemeDrawingContext &oDc, const Tile &oTile, int32_t nPlayer, const std::vector< double > &aAniElapsed, Cairo::RefPtr< Cairo::Surface > &refSurface) noexcept
 
- Protected Member Functions inherited from stmg::StdThemeModifier
 StdThemeModifier (Init &&oInit) noexcept
 Constructor. More...
 
StdThemeowner () noexcept
 The theme. More...
 
const StdThemeowner () const noexcept
 The theme. More...
 

Detailed Description

Mask modifier.

Applies a mask to the sub modifiers. The mask can be an image or a TileAni.

Constructor & Destructor Documentation

◆ MaskModifier()

stmg::MaskModifier::MaskModifier ( Init &&  oInit)
explicitnoexcept

Constructor.

Parameters
oInitThe initialization data.

Member Function Documentation

◆ drawTile()

FLOW_CONTROL stmg::MaskModifier::drawTile ( const Cairo::RefPtr< Cairo::Context > &  refCc,
StdThemeDrawingContext oDc,
const Tile oTile,
int32_t  nPlayer,
const std::vector< double > &  aAniElapsed 
)
overridevirtualnoexcept

Draw tile (with player skin).

Parameters
refCcThe cairo context. Cannot be null.
oDcThe theme drawing context. Cannot be null.
oTileThe tile to draw.
nPlayerThe player the tile "belongs" to. -1 means no player. Must be >= -1.
aAniElapsedThe tile animations current value.
Returns
Whether the caller should continue or stop painting.

Reimplemented from stmg::ContainerModifier.

◆ registerTileSize()

void stmg::MaskModifier::registerTileSize ( int32_t  nW,
int32_t  nH 
)
overridevirtualnoexcept

Register tile size.

Make sure to unregisterTileSize() when done with this size.

This method should be implemented to cache images for frequently used sizes.

Subclasses of ContainerModifier should not propagate this to contained Modifier instances since StdTheme does it automatically.

Parameters
nWThe tile width. Must be positive.
nHThe tile height. Must be positive.

Reimplemented from stmg::ContainerModifier.

◆ unregisterTileSize()

void stmg::MaskModifier::unregisterTileSize ( int32_t  nW,
int32_t  nH 
)
overridevirtualnoexcept

Unregister tile size.

Called when a tile size no longer needed. See registerTileSize().

Parameters
nWThe tile width. Must be positive.
nHThe tile height. Must be positive.

Reimplemented from stmg::ContainerModifier.