Sprite: Add special case shader for translucent effect

Translucent sprites (opacity < 255) are very common,
so using a custom shader instead of the full blown effect one
helps a lot, especially on mobile.
This commit is contained in:
Jonas Kulla 2014-12-23 17:52:32 +01:00
parent a53163660f
commit 3c0a530eba
6 changed files with 58 additions and 1 deletions

View file

@ -121,6 +121,18 @@ private:
GLint u_spriteMat;
};
class AlphaSpriteShader : public ShaderBase
{
public:
AlphaSpriteShader();
void setSpriteMat(const float value[16]);
void setAlpha(float value);
private:
GLint u_spriteMat, u_alpha;
};
class TransShader : public ShaderBase
{
public:
@ -277,6 +289,7 @@ struct ShaderSet
SimpleColorShader simpleColor;
SimpleAlphaShader simpleAlpha;
SimpleSpriteShader simpleSprite;
AlphaSpriteShader alphaSprite;
SpriteShader sprite;
PlaneShader plane;
TilemapShader tilemap;