Merge pull request #50 from n00b87/sprite_blend
Added Sprite Color Blend and Global AntiAlias functions
This commit is contained in:
@@ -661,6 +661,10 @@ ul, #myUL {
|
||||
|
||||
<li><a href="drawimage_flipex.html" target="main">DrawImage_FlipEx</a></li>
|
||||
|
||||
<li><a href="setantialiasmode.html" target="main">SetAntiAliasMode</a></li>
|
||||
|
||||
<li><a href="getantialiasmode.html" target="main">GetAntiAliasMode</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
@@ -1227,6 +1231,14 @@ ul, #myUL {
|
||||
|
||||
<li><a href="spriteexists.html" target="main">SpriteExists</a></li>
|
||||
|
||||
<li><a href="setspritecolormod.html" target="main">SetSpriteColorMod</a></li>
|
||||
|
||||
<li><a href="setspritealpha.html" target="main">SetSpriteAlpha</a></li>
|
||||
|
||||
<li><a href="getspritecolormod.html" target="main">GetSpriteColorMod</a></li>
|
||||
|
||||
<li><a href="getspritealpha.html" target="main">GetSpriteAlpha</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
4
doc/files/getantialiasmode.txt
Normal file
4
doc/files/getantialiasmode.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
#title GetAntiAliasMode [RCBasic Doc]
|
||||
#header function GetAntiAliasMode( )
|
||||
|
||||
|
||||
4
doc/files/getspritealpha.txt
Normal file
4
doc/files/getspritealpha.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
#title GetSpriteAlpha [RCBasic Doc]
|
||||
#header Function GetSpriteAlpha(sprite)
|
||||
|
||||
|
||||
4
doc/files/getspritecolormod.txt
Normal file
4
doc/files/getspritecolormod.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
#title GetSpriteColorMod [RCBasic Doc]
|
||||
#header Function GetSpriteColorMod(sprite)
|
||||
|
||||
|
||||
4
doc/files/setantialiasmode.txt
Normal file
4
doc/files/setantialiasmode.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
#title SetAntiAliasMode [RCBasic Doc]
|
||||
#header sub SetAntiAliasMode( aa_mode )
|
||||
|
||||
|
||||
4
doc/files/setspritealpha.txt
Normal file
4
doc/files/setspritealpha.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
#title SetSpriteAlpha [RCBasic Doc]
|
||||
#header Sub SetSpriteAlpha(sprite, alpha)
|
||||
|
||||
|
||||
4
doc/files/setspritecolormod.txt
Normal file
4
doc/files/setspritecolormod.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
#title SetSpriteColorMod [RCBasic Doc]
|
||||
#header Sub SetSpriteColorMod(sprite, color)
|
||||
|
||||
|
||||
@@ -244,6 +244,8 @@ rc_drawImage_Rotozoom( DRAWIMAGE_ROTOZOOM_SLOT, DRAWIMAGE_ROTOZOOM_X, DRAWIMAG
|
||||
rc_drawImage_RotozoomEx( DRAWIMAGE_ROTOZOOMEX_SLOT, DRAWIMAGE_ROTOZOOMEX_X, DRAWIMAGE_ROTOZOOMEX_Y, DRAWIMAGE_ROTOZOOMEX_SRC_X, DRAWIMAGE_ROTOZOOMEX_SRC_Y, DRAWIMAGE_ROTOZOOMEX_SRC_W, DRAWIMAGE_ROTOZOOMEX_SRC_H, DRAWIMAGE_ROTOZOOMEX_ANGLE, DRAWIMAGE_ROTOZOOMEX_ZX, DRAWIMAGE_ROTOZOOMEX_ZY )
|
||||
rc_drawImage_Flip( DRAWIMAGE_FLIP_SLOT, DRAWIMAGE_FLIP_X, DRAWIMAGE_FLIP_Y, DRAWIMAGE_FLIP_H, DRAWIMAGE_FLIP_V )
|
||||
rc_drawImage_FlipEx( DRAWIMAGE_FLIPEX_SLOT, DRAWIMAGE_FLIPEX_X, DRAWIMAGE_FLIPEX_Y, DRAWIMAGE_FLIPEX_SRC_X, DRAWIMAGE_FLIPEX_SRC_Y, DRAWIMAGE_FLIPEX_SRC_W, DRAWIMAGE_FLIPEX_SRC_H, DRAWIMAGE_FLIPEX_H, DRAWIMAGE_FLIPEX_V )
|
||||
rc_setAntiAliasMode( SETANTIALIASMODE_AA_MODE )
|
||||
rc_getAntiAliasMode( )
|
||||
rc_inKey( )
|
||||
rc_key( KEY_KEY_CODE )
|
||||
rc_waitKey( )
|
||||
@@ -479,6 +481,10 @@ rc_getSpriteType( GETSPRITETYPE_SPRITE )
|
||||
rc_setSpriteSource( SETSPRITESOURCE_SPRITE, SETSPRITESOURCE_IMG )
|
||||
rc_getSpriteSource( GETSPRITESOURCE_SPRITE )
|
||||
rc_spriteExists( SPRITEEXISTS_SPRITE )
|
||||
rc_setSpriteColorMod( SETSPRITECOLORMOD_SPRITE, SETSPRITECOLORMOD_COLOR )
|
||||
rc_setSpriteAlpha( SETSPRITEALPHA_SPRITE, SETSPRITEALPHA_ALPHA )
|
||||
rc_getSpriteColorMod( GETSPRITECOLORMOD_SPRITE )
|
||||
rc_getSpriteAlpha( GETSPRITEALPHA_SPRITE )
|
||||
rc_createSpriteAnimation( CREATESPRITEANIMATION_SPRITE, CREATESPRITEANIMATION_ANIM_LENGTH, CREATESPRITEANIMATION_SPEED )
|
||||
rc_setSpriteFrame( SETSPRITEFRAME_SPRITE, SETSPRITEFRAME_FRAME )
|
||||
rc_getSpriteFrame( GETSPRITEFRAME_SPRITE )
|
||||
|
||||
@@ -27,3 +27,5 @@ sub DrawImage_Rotozoom(slot, x, y, angle, zx, zy)
|
||||
sub DrawImage_RotozoomEx(slot, x, y, src_x, src_y, src_w, src_h, angle, zx, zy)
|
||||
sub DrawImage_Flip(slot, x, y, h, v)
|
||||
sub DrawImage_FlipEx(slot, x, y, src_x, src_y, src_w, src_h, h, v)
|
||||
sub SetAntiAliasMode( aa_mode )
|
||||
function GetAntiAliasMode( )
|
||||
|
||||
@@ -25,3 +25,7 @@ Function GetSpriteType(sprite)
|
||||
Sub SetSpriteSource(sprite, img)
|
||||
Function GetSpriteSource(sprite)
|
||||
Function SpriteExists(sprite)
|
||||
Sub SetSpriteColorMod(sprite, color)
|
||||
Sub SetSpriteAlpha(sprite, alpha)
|
||||
Function GetSpriteColorMod(sprite)
|
||||
Function GetSpriteAlpha(sprite)
|
||||
|
||||
@@ -746,6 +746,9 @@ void init_embedded_functions()
|
||||
add_embedded_arg("src_h", ID_TYPE_NUM);
|
||||
add_embedded_arg("h", ID_TYPE_NUM);
|
||||
add_embedded_arg("v", ID_TYPE_NUM);
|
||||
embed_function("SetAntiAliasMode", ID_TYPE_SUB);
|
||||
add_embedded_arg("aa_mode", ID_TYPE_NUM);
|
||||
embed_function("GetAntiAliasMode", ID_TYPE_FN_NUM);
|
||||
embed_function("InKey", ID_TYPE_FN_NUM);
|
||||
embed_function("Key", ID_TYPE_FN_NUM);
|
||||
add_embedded_arg("key_code", ID_TYPE_NUM);
|
||||
@@ -1390,6 +1393,16 @@ void init_embedded_functions()
|
||||
add_embedded_arg("sprite", ID_TYPE_NUM);
|
||||
embed_function("SpriteExists", ID_TYPE_FN_NUM);
|
||||
add_embedded_arg("sprite", ID_TYPE_NUM);
|
||||
embed_function("SetSpriteColorMod", ID_TYPE_SUB);
|
||||
add_embedded_arg("sprite", ID_TYPE_NUM);
|
||||
add_embedded_arg("color", ID_TYPE_NUM);
|
||||
embed_function("SetSpriteAlpha", ID_TYPE_SUB);
|
||||
add_embedded_arg("sprite", ID_TYPE_NUM);
|
||||
add_embedded_arg("alpha", ID_TYPE_NUM);
|
||||
embed_function("GetSpriteColorMod", ID_TYPE_FN_NUM);
|
||||
add_embedded_arg("sprite", ID_TYPE_NUM);
|
||||
embed_function("GetSpriteAlpha", ID_TYPE_FN_NUM);
|
||||
add_embedded_arg("sprite", ID_TYPE_NUM);
|
||||
embed_function("CreateSpriteAnimation", ID_TYPE_FN_NUM);
|
||||
add_embedded_arg("sprite", ID_TYPE_NUM);
|
||||
add_embedded_arg("anim_length", ID_TYPE_NUM);
|
||||
|
||||
Binary file not shown.
@@ -740,6 +740,9 @@ add_embedded_arg("src_w", ID_TYPE_NUM);
|
||||
add_embedded_arg("src_h", ID_TYPE_NUM);
|
||||
add_embedded_arg("h", ID_TYPE_NUM);
|
||||
add_embedded_arg("v", ID_TYPE_NUM);
|
||||
embed_function("SetAntiAliasMode", ID_TYPE_SUB);
|
||||
add_embedded_arg("aa_mode", ID_TYPE_NUM);
|
||||
embed_function("GetAntiAliasMode", ID_TYPE_FN_NUM);
|
||||
embed_function("InKey", ID_TYPE_FN_NUM);
|
||||
embed_function("Key", ID_TYPE_FN_NUM);
|
||||
add_embedded_arg("key_code", ID_TYPE_NUM);
|
||||
@@ -1384,6 +1387,16 @@ embed_function("GetSpriteSource", ID_TYPE_FN_NUM);
|
||||
add_embedded_arg("sprite", ID_TYPE_NUM);
|
||||
embed_function("SpriteExists", ID_TYPE_FN_NUM);
|
||||
add_embedded_arg("sprite", ID_TYPE_NUM);
|
||||
embed_function("SetSpriteColorMod", ID_TYPE_SUB);
|
||||
add_embedded_arg("sprite", ID_TYPE_NUM);
|
||||
add_embedded_arg("color", ID_TYPE_NUM);
|
||||
embed_function("SetSpriteAlpha", ID_TYPE_SUB);
|
||||
add_embedded_arg("sprite", ID_TYPE_NUM);
|
||||
add_embedded_arg("alpha", ID_TYPE_NUM);
|
||||
embed_function("GetSpriteColorMod", ID_TYPE_FN_NUM);
|
||||
add_embedded_arg("sprite", ID_TYPE_NUM);
|
||||
embed_function("GetSpriteAlpha", ID_TYPE_FN_NUM);
|
||||
add_embedded_arg("sprite", ID_TYPE_NUM);
|
||||
embed_function("CreateSpriteAnimation", ID_TYPE_FN_NUM);
|
||||
add_embedded_arg("sprite", ID_TYPE_NUM);
|
||||
add_embedded_arg("anim_length", ID_TYPE_NUM);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -763,6 +763,12 @@ case FN_DrawImage_Flip: //Sub Procedure
|
||||
case FN_DrawImage_FlipEx: //Sub Procedure
|
||||
rc_drawImage_FlipEx( DRAWIMAGE_FLIPEX_SLOT, DRAWIMAGE_FLIPEX_X, DRAWIMAGE_FLIPEX_Y, DRAWIMAGE_FLIPEX_SRC_X, DRAWIMAGE_FLIPEX_SRC_Y, DRAWIMAGE_FLIPEX_SRC_W, DRAWIMAGE_FLIPEX_SRC_H, DRAWIMAGE_FLIPEX_H, DRAWIMAGE_FLIPEX_V );
|
||||
break;
|
||||
case FN_SetAntiAliasMode: //Sub Procedure
|
||||
rc_setAntiAliasMode( SETANTIALIASMODE_AA_MODE );
|
||||
break;
|
||||
case FN_GetAntiAliasMode: //Number Function
|
||||
rc_push_num(rc_getAntiAliasMode( ));
|
||||
break;
|
||||
case FN_InKey: //Number Function
|
||||
rc_push_num(rc_inKey( ));
|
||||
break;
|
||||
@@ -1469,6 +1475,18 @@ case FN_GetSpriteSource: //Number Function
|
||||
case FN_SpriteExists: //Number Function
|
||||
rc_push_num(rc_spriteExists( SPRITEEXISTS_SPRITE ));
|
||||
break;
|
||||
case FN_SetSpriteColorMod: //Sub Procedure
|
||||
rc_setSpriteColorMod( SETSPRITECOLORMOD_SPRITE, SETSPRITECOLORMOD_COLOR );
|
||||
break;
|
||||
case FN_SetSpriteAlpha: //Sub Procedure
|
||||
rc_setSpriteAlpha( SETSPRITEALPHA_SPRITE, SETSPRITEALPHA_ALPHA );
|
||||
break;
|
||||
case FN_GetSpriteColorMod: //Number Function
|
||||
rc_push_num(rc_getSpriteColorMod( GETSPRITECOLORMOD_SPRITE ));
|
||||
break;
|
||||
case FN_GetSpriteAlpha: //Number Function
|
||||
rc_push_num(rc_getSpriteAlpha( GETSPRITEALPHA_SPRITE ));
|
||||
break;
|
||||
case FN_CreateSpriteAnimation: //Number Function
|
||||
rc_push_num(rc_createSpriteAnimation( CREATESPRITEANIMATION_SPRITE, CREATESPRITEANIMATION_ANIM_LENGTH, CREATESPRITEANIMATION_SPEED ));
|
||||
break;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -763,6 +763,12 @@ case FN_DrawImage_Flip: //Sub Procedure
|
||||
case FN_DrawImage_FlipEx: //Sub Procedure
|
||||
rc_drawImage_FlipEx( DRAWIMAGE_FLIPEX_SLOT, DRAWIMAGE_FLIPEX_X, DRAWIMAGE_FLIPEX_Y, DRAWIMAGE_FLIPEX_SRC_X, DRAWIMAGE_FLIPEX_SRC_Y, DRAWIMAGE_FLIPEX_SRC_W, DRAWIMAGE_FLIPEX_SRC_H, DRAWIMAGE_FLIPEX_H, DRAWIMAGE_FLIPEX_V );
|
||||
break;
|
||||
case FN_SetAntiAliasMode: //Sub Procedure
|
||||
rc_setAntiAliasMode( SETANTIALIASMODE_AA_MODE );
|
||||
break;
|
||||
case FN_GetAntiAliasMode: //Number Function
|
||||
rc_push_num(rc_getAntiAliasMode( ));
|
||||
break;
|
||||
case FN_InKey: //Number Function
|
||||
rc_push_num(rc_inKey( ));
|
||||
break;
|
||||
@@ -1469,6 +1475,18 @@ case FN_GetSpriteSource: //Number Function
|
||||
case FN_SpriteExists: //Number Function
|
||||
rc_push_num(rc_spriteExists( SPRITEEXISTS_SPRITE ));
|
||||
break;
|
||||
case FN_SetSpriteColorMod: //Sub Procedure
|
||||
rc_setSpriteColorMod( SETSPRITECOLORMOD_SPRITE, SETSPRITECOLORMOD_COLOR );
|
||||
break;
|
||||
case FN_SetSpriteAlpha: //Sub Procedure
|
||||
rc_setSpriteAlpha( SETSPRITEALPHA_SPRITE, SETSPRITEALPHA_ALPHA );
|
||||
break;
|
||||
case FN_GetSpriteColorMod: //Number Function
|
||||
rc_push_num(rc_getSpriteColorMod( GETSPRITECOLORMOD_SPRITE ));
|
||||
break;
|
||||
case FN_GetSpriteAlpha: //Number Function
|
||||
rc_push_num(rc_getSpriteAlpha( GETSPRITEALPHA_SPRITE ));
|
||||
break;
|
||||
case FN_CreateSpriteAnimation: //Number Function
|
||||
rc_push_num(rc_createSpriteAnimation( CREATESPRITEANIMATION_SPRITE, CREATESPRITEANIMATION_ANIM_LENGTH, CREATESPRITEANIMATION_SPEED ));
|
||||
break;
|
||||
|
||||
@@ -2559,6 +2559,16 @@ bool rc_getBilinearFilter()
|
||||
return rc_bilinear_filter;
|
||||
}
|
||||
|
||||
void rc_setAntiAliasMode( int aa_mode )
|
||||
{
|
||||
rc_anti_alias = (irr::video::E_ANTI_ALIASING_MODE) aa_mode;
|
||||
}
|
||||
|
||||
int rc_getAntiAliasMode( )
|
||||
{
|
||||
return (int)rc_anti_alias;
|
||||
}
|
||||
|
||||
void rc_setImageColorMod(int img_id, Uint32 color)
|
||||
{
|
||||
if(img_id < 0 || img_id >= rc_image.size())
|
||||
|
||||
@@ -749,6 +749,7 @@ irr::core::array<rc_image_obj> rc_image;
|
||||
|
||||
irr::video::E_BLEND_OPERATION rc_blend_mode = irr::video::EBO_ADD;
|
||||
bool rc_bilinear_filter = false;
|
||||
irr::video::E_ANTI_ALIASING_MODE rc_anti_alias = irr::video::EAAM_OFF;
|
||||
|
||||
#define PRIM3D_LINE 1
|
||||
#define PRIM3D_TRIANGLE 2
|
||||
@@ -778,7 +779,8 @@ void rc_setDriverMaterial()
|
||||
material.TextureLayer[0].BilinearFilter = rc_bilinear_filter;
|
||||
material.MaterialTypeParam = irr::video::pack_textureBlendFunc(irr::video::EBF_SRC_ALPHA, irr::video::EBF_ONE_MINUS_SRC_ALPHA, irr::video::EMFN_MODULATE_1X, irr::video::EAS_TEXTURE | irr::video::EAS_VERTEX_COLOR);
|
||||
material.BlendOperation = rc_blend_mode;
|
||||
material.BlendOperation = irr::video::EBO_ADD;
|
||||
//material.BlendOperation = irr::video::EBO_ADD;
|
||||
material.AntiAliasing = rc_anti_alias;
|
||||
|
||||
material.MaterialType = irr::video::EMT_ONETEXTURE_BLEND;
|
||||
|
||||
@@ -860,6 +862,7 @@ void draw2DImage(irr::video::IVideoDriver *driver, irr::video::ITexture* texture
|
||||
material.TextureLayer[0].BilinearFilter = rc_bilinear_filter;
|
||||
material.MaterialTypeParam = irr::video::pack_textureBlendFunc(irr::video::EBF_SRC_ALPHA, irr::video::EBF_ONE_MINUS_SRC_ALPHA, irr::video::EMFN_MODULATE_1X, irr::video::EAS_TEXTURE | irr::video::EAS_VERTEX_COLOR);
|
||||
material.BlendOperation = rc_blend_mode;
|
||||
material.AntiAliasing = rc_anti_alias;
|
||||
//material.BlendOperation = irr::video::EBO_ADD;
|
||||
|
||||
if (useAlphaChannel)
|
||||
@@ -952,7 +955,7 @@ void draw2DImage2(irr::video::IVideoDriver *driver, irr::video::ITexture* textur
|
||||
material.TextureLayer[0].BilinearFilter = rc_bilinear_filter; //TODO: Add option to switch this on/off
|
||||
material.BlendOperation = rc_blend_mode;
|
||||
material.MaterialTypeParam = irr::video::pack_textureBlendFunc(irr::video::EBF_SRC_ALPHA, irr::video::EBF_ONE_MINUS_SRC_ALPHA, irr::video::EMFN_MODULATE_1X, irr::video::EAS_TEXTURE | irr::video::EAS_VERTEX_COLOR);
|
||||
//material.AntiAliasing = irr::video::EAAM_OFF;
|
||||
material.AntiAliasing = rc_anti_alias;
|
||||
|
||||
if (useAlphaChannel)
|
||||
material.MaterialType = irr::video::EMT_ONETEXTURE_BLEND;
|
||||
|
||||
@@ -811,6 +811,51 @@ bool rc_spriteIsVisible(int spr_id)
|
||||
return rc_sprite[spr_id].visible;
|
||||
}
|
||||
|
||||
void rc_setSpriteColorMod(int spr_id, Uint32 color)
|
||||
{
|
||||
if(spr_id < 0 || spr_id >= rc_sprite.size())
|
||||
return;
|
||||
|
||||
if(!rc_sprite[spr_id].active)
|
||||
return;
|
||||
|
||||
if(rc_sprite[spr_id].image_id >= 0)
|
||||
rc_sprite[spr_id].color_mod = irr::video::SColor(color);
|
||||
}
|
||||
|
||||
void rc_setSpriteAlpha(int spr_id, Uint32 alpha)
|
||||
{
|
||||
if(spr_id < 0 || spr_id >= rc_sprite.size())
|
||||
return;
|
||||
|
||||
if(!rc_sprite[spr_id].active)
|
||||
return;
|
||||
|
||||
if(rc_sprite[spr_id].image_id >= 0)
|
||||
rc_sprite[spr_id].alpha = (Uint8)alpha;
|
||||
}
|
||||
|
||||
Uint32 rc_getSpriteColorMod(int spr_id)
|
||||
{
|
||||
if(spr_id < 0 || spr_id >= rc_sprite.size())
|
||||
return 0;
|
||||
|
||||
if(!rc_sprite[spr_id].active)
|
||||
return 0;
|
||||
|
||||
return rc_sprite[spr_id].color_mod.color;
|
||||
}
|
||||
|
||||
Uint32 rc_getSpriteAlpha(int spr_id)
|
||||
{
|
||||
if(spr_id < 0 || spr_id >= rc_sprite.size())
|
||||
return 0;
|
||||
|
||||
if(!rc_sprite[spr_id].active)
|
||||
return 0;
|
||||
|
||||
return (Uint32)rc_sprite[spr_id].alpha;
|
||||
}
|
||||
|
||||
//-----------------------------------PHYSICS----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user