@ -586,7 +586,7 @@ namespace olc
// Pixel Game Engine Advanced Configuration
// Pixel Game Engine Advanced Configuration
constexpr inline uint8_t nMouseButtons = 5 ;
constexpr inline uint8_t nMouseButtons = 5 ;
constexpr inline uint8_t nTabSizeInSpaces = 4 ;
constexpr inline uint8_t nTabSizeInSpaces = 4 ;
constexpr inline size_t OLC_MAX_VERTS = 256 ;
constexpr inline size_t OLC_MAX_VERTS = 128 ;
enum rcode { FAIL = 0 , OK = 1 , NO_FILE = - 1 } ;
enum rcode { FAIL = 0 , OK = 1 , NO_FILE = - 1 } ;
// Thanks to scripticuk and others for updating the key maps
// Thanks to scripticuk and others for updating the key maps
// NOTE: The GLUT platform will need updating, open to contributions ;)
// NOTE: The GLUT platform will need updating, open to contributions ;)
@ -3056,6 +3056,7 @@ namespace olc
void PixelGameEngine : : DrawPolygonDecal ( olc : : Decal * decal , const std : : vector < olc : : vf2d > & pos , const std : : vector < olc : : vf2d > & uv , const olc : : Pixel tint )
void PixelGameEngine : : DrawPolygonDecal ( olc : : Decal * decal , const std : : vector < olc : : vf2d > & pos , const std : : vector < olc : : vf2d > & uv , const olc : : Pixel tint )
{
{
if ( pos . size ( ) > OLC_MAX_VERTS ) throw std : : runtime_error ( " Vertex count exceeds Maximum allowed vertices! " ) ;
DecalInstance di ;
DecalInstance di ;
di . decal = decal ;
di . decal = decal ;
di . points = uint32_t ( pos . size ( ) ) ;
di . points = uint32_t ( pos . size ( ) ) ;
@ -3077,6 +3078,7 @@ namespace olc
void PixelGameEngine : : DrawPolygonDecal ( olc : : Decal * decal , const std : : vector < olc : : vf2d > & pos , const std : : vector < olc : : vf2d > & uv , const int startInd , const vf2d & offset , const float scale , const olc : : Pixel tint )
void PixelGameEngine : : DrawPolygonDecal ( olc : : Decal * decal , const std : : vector < olc : : vf2d > & pos , const std : : vector < olc : : vf2d > & uv , const int startInd , const vf2d & offset , const float scale , const olc : : Pixel tint )
{
{
if ( pos . size ( ) > OLC_MAX_VERTS ) throw std : : runtime_error ( " Vertex count exceeds Maximum allowed vertices! " ) ;
DecalInstance di ;
DecalInstance di ;
di . decal = decal ;
di . decal = decal ;
di . points = uint32_t ( pos . size ( ) - startInd ) ;
di . points = uint32_t ( pos . size ( ) - startInd ) ;
@ -3104,6 +3106,7 @@ namespace olc
void PixelGameEngine : : DrawPolygonDecal ( olc : : Decal * decal , const std : : vector < olc : : vf2d > & pos , const std : : vector < olc : : vf2d > & uv , const std : : vector < olc : : Pixel > & tint )
void PixelGameEngine : : DrawPolygonDecal ( olc : : Decal * decal , const std : : vector < olc : : vf2d > & pos , const std : : vector < olc : : vf2d > & uv , const std : : vector < olc : : Pixel > & tint )
{
{
if ( pos . size ( ) > OLC_MAX_VERTS ) throw std : : runtime_error ( " Vertex count exceeds Maximum allowed vertices! " ) ;
DecalInstance di ;
DecalInstance di ;
di . decal = decal ;
di . decal = decal ;
di . points = uint32_t ( pos . size ( ) ) ;
di . points = uint32_t ( pos . size ( ) ) ;
@ -3125,6 +3128,7 @@ namespace olc
void PixelGameEngine : : DrawPolygonDecal ( olc : : Decal * decal , const std : : vector < olc : : vf2d > & pos , const std : : vector < olc : : vf2d > & uv , const std : : vector < olc : : Pixel > & colours , const olc : : Pixel tint )
void PixelGameEngine : : DrawPolygonDecal ( olc : : Decal * decal , const std : : vector < olc : : vf2d > & pos , const std : : vector < olc : : vf2d > & uv , const std : : vector < olc : : Pixel > & colours , const olc : : Pixel tint )
{
{
if ( pos . size ( ) > OLC_MAX_VERTS ) throw std : : runtime_error ( " Vertex count exceeds Maximum allowed vertices! " ) ;
std : : vector < olc : : Pixel > newColours ( colours . size ( ) , olc : : WHITE ) ;
std : : vector < olc : : Pixel > newColours ( colours . size ( ) , olc : : WHITE ) ;
std : : transform ( colours . begin ( ) , colours . end ( ) , newColours . begin ( ) ,
std : : transform ( colours . begin ( ) , colours . end ( ) , newColours . begin ( ) ,
[ & tint ] ( const olc : : Pixel pin ) { return pin * tint ; } ) ;
[ & tint ] ( const olc : : Pixel pin ) { return pin * tint ; } ) ;
@ -3134,6 +3138,7 @@ namespace olc
void PixelGameEngine : : DrawPolygonDecal ( olc : : Decal * decal , const std : : vector < olc : : vf2d > & pos , const std : : vector < float > & depth , const std : : vector < olc : : vf2d > & uv , const olc : : Pixel tint )
void PixelGameEngine : : DrawPolygonDecal ( olc : : Decal * decal , const std : : vector < olc : : vf2d > & pos , const std : : vector < float > & depth , const std : : vector < olc : : vf2d > & uv , const olc : : Pixel tint )
{
{
if ( pos . size ( ) > OLC_MAX_VERTS ) throw std : : runtime_error ( " Vertex count exceeds Maximum allowed vertices! " ) ;
DecalInstance di ;
DecalInstance di ;
di . decal = decal ;
di . decal = decal ;
di . points = uint32_t ( pos . size ( ) ) ;
di . points = uint32_t ( pos . size ( ) ) ;
@ -3155,6 +3160,7 @@ namespace olc
void PixelGameEngine : : DrawPolygonDecal ( olc : : Decal * decal , const std : : vector < olc : : vf2d > & pos , const std : : vector < float > & depth , const std : : vector < olc : : vf2d > & uv , const std : : vector < olc : : Pixel > & colours , const olc : : Pixel tint )
void PixelGameEngine : : DrawPolygonDecal ( olc : : Decal * decal , const std : : vector < olc : : vf2d > & pos , const std : : vector < float > & depth , const std : : vector < olc : : vf2d > & uv , const std : : vector < olc : : Pixel > & colours , const olc : : Pixel tint )
{
{
if ( pos . size ( ) > OLC_MAX_VERTS ) throw std : : runtime_error ( " Vertex count exceeds Maximum allowed vertices! " ) ;
DecalInstance di ;
DecalInstance di ;
di . decal = decal ;
di . decal = decal ;
di . points = uint32_t ( pos . size ( ) ) ;
di . points = uint32_t ( pos . size ( ) ) ;