mirror of
https://github.com/love2d/love.git
synced 2026-08-17 19:23:38 +02:00
Add "combine" color mode, for colorizing images (see https://love2d.org/forums/viewtopic.php?f=4&t=7648 )
This commit is contained in:
@@ -130,6 +130,7 @@ namespace graphics
|
|||||||
{
|
{
|
||||||
{ "replace", Graphics::COLOR_REPLACE },
|
{ "replace", Graphics::COLOR_REPLACE },
|
||||||
{ "modulate", Graphics::COLOR_MODULATE },
|
{ "modulate", Graphics::COLOR_MODULATE },
|
||||||
|
{ "combine", Graphics::COLOR_COMBINE },
|
||||||
};
|
};
|
||||||
|
|
||||||
StringMap<Graphics::ColorMode, Graphics::COLOR_MAX_ENUM> Graphics::colorModes(Graphics::colorModeEntries, sizeof(Graphics::colorModeEntries));
|
StringMap<Graphics::ColorMode, Graphics::COLOR_MAX_ENUM> Graphics::colorModes(Graphics::colorModeEntries, sizeof(Graphics::colorModeEntries));
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ namespace graphics
|
|||||||
{
|
{
|
||||||
COLOR_MODULATE = 1,
|
COLOR_MODULATE = 1,
|
||||||
COLOR_REPLACE,
|
COLOR_REPLACE,
|
||||||
|
COLOR_COMBINE,
|
||||||
COLOR_MAX_ENUM
|
COLOR_MAX_ENUM
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -530,6 +530,11 @@ namespace opengl
|
|||||||
{
|
{
|
||||||
if (mode == COLOR_MODULATE)
|
if (mode == COLOR_MODULATE)
|
||||||
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||||
|
else if (mode == COLOR_COMBINE) {
|
||||||
|
glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_ADD_SIGNED);
|
||||||
|
glTexEnvf(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
|
||||||
|
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE);
|
||||||
|
}
|
||||||
else // mode = COLOR_REPLACE
|
else // mode = COLOR_REPLACE
|
||||||
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
||||||
}
|
}
|
||||||
@@ -567,7 +572,9 @@ namespace opengl
|
|||||||
|
|
||||||
if (mode == GL_MODULATE)
|
if (mode == GL_MODULATE)
|
||||||
return COLOR_MODULATE;
|
return COLOR_MODULATE;
|
||||||
else // // mode == GL_REPLACE
|
else if (mode == GL_COMBINE)
|
||||||
|
return COLOR_COMBINE;
|
||||||
|
else // mode == GL_REPLACE
|
||||||
return COLOR_REPLACE;
|
return COLOR_REPLACE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user