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:
parent
a53163660f
commit
3c0a530eba
6 changed files with 58 additions and 1 deletions
13
src/shader.h
13
src/shader.h
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue