@ -1162,6 +1162,7 @@ namespace olc
void DrawPartialRotatedDecal ( const olc : : vf2d & pos , olc : : Decal * decal , const float fAngle , const olc : : vf2d & center , const olc : : vf2d & source_pos , const olc : : vf2d & source_size , const olc : : vf2d & scale = { 1.0f , 1.0f } , const olc : : Pixel & tint = olc : : WHITE ) ;
// Draws a multiline string as a decal, with tiniting and scaling
void DrawStringDecal ( const olc : : vf2d & pos , std : : string_view sText , const Pixel col = olc : : WHITE , const olc : : vf2d & scale = { 1.0f , 1.0f } , const float width = std : : numeric_limits < float > : : max ( ) , const bool disableDynamicScaling = false ) ;
void DrawOGStringDecal ( const olc : : vf2d & pos , const std : : string & sText , const Pixel col = olc : : WHITE , const olc : : vf2d & scale = { 1.0f , 1.0f } ) ;
void DrawStringDecal ( Font & font , const olc : : vf2d & pos , const std : : u32string & sText , const Pixel col = olc : : WHITE , const olc : : vf2d & scale = { 1.0f , 1.0f } ) ;
void DrawStringPropDecal ( const olc : : vf2d & pos , std : : string_view sText , const Pixel col = olc : : WHITE , const olc : : vf2d & scale = { 1.0f , 1.0f } , const float width = std : : numeric_limits < float > : : max ( ) , const bool disableDynamicScaling = false ) ;
void DrawShadowStringDecal ( const olc : : vf2d & pos , std : : string_view sText , const Pixel col = olc : : WHITE , const Pixel shadowCol = olc : : BLACK , const olc : : vf2d & scale = { 1.0f , 1.0f } , const float width = std : : numeric_limits < float > : : max ( ) , const float shadowSizeFactor = 1 , const bool disableDynamicScaling = false ) ;
@ -3375,6 +3376,29 @@ namespace olc
void PixelGameEngine : : DrawPartialWarpedDecal ( olc : : Decal * decal , const olc : : vf2d ( & pos ) [ 4 ] , const olc : : vf2d & source_pos , const olc : : vf2d & source_size , const olc : : Pixel & tint )
{ DrawPartialWarpedDecal ( decal , & pos [ 0 ] , source_pos , source_size , tint ) ; }
void PixelGameEngine : : DrawOGStringDecal ( const olc : : vf2d & pos , const std : : string & sText , const Pixel col , const olc : : vf2d & scale )
{
olc : : vf2d spos = { 0.0f , 0.0f } ;
for ( auto c : sText )
{
if ( c = = ' \n ' )
{
spos . x = 0 ; spos . y + = 8.0f * scale . y ;
}
else if ( c = = ' \t ' )
{
spos . x + = 8.0f * float ( nTabSizeInSpaces ) * scale . x ;
}
else
{
int32_t ox = ( c - 32 ) % 16 ;
int32_t oy = ( c - 32 ) / 16 ;
DrawPartialDecal ( pos + spos , fontRenderable . Decal ( ) , { float ( ox ) * 8.0f , float ( oy ) * 8.0f } , { 8.0f , 8.0f } , scale , col ) ;
spos . x + = 8.0f * scale . x ;
}
}
}
void PixelGameEngine : : DrawStringDecal ( const olc : : vf2d & pos , std : : string_view sText , const Pixel col , const olc : : vf2d & scale , const float width , const bool disableDynamicScaling )
{
struct DecalData {