mirror of
https://github.com/love2d/love.git
synced 2026-08-20 04:30:09 +02:00
Shader:hasStage;
This commit is contained in:
@@ -564,6 +564,11 @@ Shader::~Shader()
|
|||||||
attachDefault(STANDARD_DEFAULT);
|
attachDefault(STANDARD_DEFAULT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Shader::hasStage(ShaderStageType stage)
|
||||||
|
{
|
||||||
|
return stages[stage] != nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
void Shader::attachDefault(StandardShader defaultType)
|
void Shader::attachDefault(StandardShader defaultType)
|
||||||
{
|
{
|
||||||
Shader *defaultshader = standardShaders[defaultType];
|
Shader *defaultshader = standardShaders[defaultType];
|
||||||
|
|||||||
@@ -167,6 +167,11 @@ public:
|
|||||||
Shader(ShaderStage *vertex, ShaderStage *pixel);
|
Shader(ShaderStage *vertex, ShaderStage *pixel);
|
||||||
virtual ~Shader();
|
virtual ~Shader();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check whether a Shader has a stage.
|
||||||
|
**/
|
||||||
|
bool hasStage(ShaderStageType stage);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Binds this Shader's program to be used when rendering.
|
* Binds this Shader's program to be used when rendering.
|
||||||
**/
|
**/
|
||||||
|
|||||||
@@ -491,12 +491,25 @@ int w_Shader_hasUniform(lua_State *L)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int w_Shader_hasStage(lua_State* L)
|
||||||
|
{
|
||||||
|
Shader *shader = luax_checkshader(L, 1);
|
||||||
|
ShaderStageType stage;
|
||||||
|
const char *str = luaL_checkstring(L, 2);
|
||||||
|
if (!ShaderStage::getConstant(str, stage))
|
||||||
|
return luax_enumerror(L, "shader stage", str);
|
||||||
|
|
||||||
|
luax_pushboolean(L, shader->hasStage(stage));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static const luaL_Reg w_Shader_functions[] =
|
static const luaL_Reg w_Shader_functions[] =
|
||||||
{
|
{
|
||||||
{ "getWarnings", w_Shader_getWarnings },
|
{ "getWarnings", w_Shader_getWarnings },
|
||||||
{ "send", w_Shader_send },
|
{ "send", w_Shader_send },
|
||||||
{ "sendColor", w_Shader_sendColors },
|
{ "sendColor", w_Shader_sendColors },
|
||||||
{ "hasUniform", w_Shader_hasUniform },
|
{ "hasUniform", w_Shader_hasUniform },
|
||||||
|
{ "hasStage", w_Shader_hasStage },
|
||||||
{ 0, 0 }
|
{ 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user