Add love.graphics.getPixelEffect() (issue #372) -- thanks, slime73!

This commit is contained in:
vrld
2012-02-09 13:19:52 +01:00
parent 57dabc9f89
commit e02a2679c2
3 changed files with 21 additions and 0 deletions
@@ -44,6 +44,8 @@ namespace graphics
{
namespace opengl
{
PixelEffect * PixelEffect::current = NULL;
std::map<std::string, GLint> PixelEffect::_texture_unit_pool;
GLint PixelEffect::_current_texture_unit = 0;
GLint PixelEffect::_max_texture_units = 0;
@@ -180,11 +182,13 @@ namespace opengl
void PixelEffect::attach()
{
glUseProgram(_program);
current = this;
}
void PixelEffect::detach()
{
glUseProgram(0);
current = NULL;
}
void PixelEffect::sendFloat(const std::string& name, int size, const GLfloat* vec, int count)
@@ -49,6 +49,8 @@ namespace opengl
static void detach();
static std::string getGLSLVersion();
static bool isSupported();
static PixelEffect * current;
void sendFloat(const std::string& name, int size, const GLfloat* vec, int count);
void sendMatrix(const std::string& name, int size, const GLfloat* m, int count);
@@ -754,6 +754,20 @@ namespace opengl
effect->attach();
return 0;
}
int w_getPixelEffect(lua_State * L)
{
PixelEffect * effect = PixelEffect::current;
if (effect)
{
effect->retain();
luax_newtype(L, "PixelEffect", GRAPHICS_PIXELEFFECT_T, (void*) effect);
}
else
lua_pushnil(L);
return 1;
}
int w_isSupported(lua_State * L)
{
@@ -1214,6 +1228,7 @@ namespace opengl
{ "getCanvas", w_getCanvas },
{ "setPixelEffect", w_setPixelEffect },
{ "getPixelEffect", w_getPixelEffect },
{ "isSupported", w_isSupported },