mirror of
https://github.com/love2d/love.git
synced 2026-08-15 15:51:12 +02:00
Add love.graphics.getPixelEffect() (issue #372) -- thanks, slime73!
This commit is contained in:
@@ -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 },
|
||||
|
||||
|
||||
Reference in New Issue
Block a user