Sdk/Lua: Bind Sprite class
This commit is contained in:
parent
4cd6bdd14a
commit
350c7dad59
|
|
@ -544,10 +544,14 @@ namespace Nz
|
||||||
|
|
||||||
inline unsigned int LuaImplQueryArg(const LuaInstance& instance, int index, InstancedRenderableRef* renderable, TypeTag<InstancedRenderableRef>)
|
inline unsigned int LuaImplQueryArg(const LuaInstance& instance, int index, InstancedRenderableRef* renderable, TypeTag<InstancedRenderableRef>)
|
||||||
{
|
{
|
||||||
if (instance.IsOfType(index, "InstancedRenderable"))
|
if (instance.IsOfType(index, "InstancedRenderable") ||
|
||||||
*renderable = *static_cast<InstancedRenderableRef*>(instance.CheckUserdata(index, "InstancedRenderable"));
|
instance.IsOfType(index, "Model") ||
|
||||||
|
instance.IsOfType(index, "Sprite"))
|
||||||
|
{
|
||||||
|
*renderable = *static_cast<InstancedRenderableRef*>(instance.ToUserdata(index));
|
||||||
|
}
|
||||||
else
|
else
|
||||||
*renderable = *static_cast<InstancedRenderableRef*>(instance.CheckUserdata(index, "Model"));
|
instance.ArgError(index, "is not a InstancedRenderable instance");
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
@ -650,20 +654,6 @@ namespace Nz
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*!
|
|
||||||
* \brief Replies by value for Lua
|
|
||||||
* \return 1 in case of success
|
|
||||||
*
|
|
||||||
* \param instance Lua instance to interact with
|
|
||||||
* \param val Resulting euler angles
|
|
||||||
*/
|
|
||||||
|
|
||||||
inline int LuaImplReplyVal(const LuaInstance& instance, EulerAnglesd&& val, TypeTag<EulerAnglesd>)
|
|
||||||
{
|
|
||||||
instance.PushInstance<EulerAnglesd>("EulerAngles", val);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Replies by value for Lua
|
* \brief Replies by value for Lua
|
||||||
* \return 1 in case of success
|
* \return 1 in case of success
|
||||||
|
|
@ -691,6 +681,20 @@ namespace Nz
|
||||||
* \param val Resulting euler angles
|
* \param val Resulting euler angles
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
inline int LuaImplReplyVal(const LuaInstance& instance, EulerAnglesd&& val, TypeTag<EulerAnglesd>)
|
||||||
|
{
|
||||||
|
instance.PushInstance<EulerAnglesd>("EulerAngles", val);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Replies by value for Lua
|
||||||
|
* \return 1 in case of success
|
||||||
|
*
|
||||||
|
* \param instance Lua instance to interact with
|
||||||
|
* \param val Resulting euler angles
|
||||||
|
*/
|
||||||
|
|
||||||
inline int LuaImplReplyVal(const LuaInstance& instance, EulerAnglesf&& val, TypeTag<EulerAnglesf>)
|
inline int LuaImplReplyVal(const LuaInstance& instance, EulerAnglesf&& val, TypeTag<EulerAnglesf>)
|
||||||
{
|
{
|
||||||
instance.PushInstance<EulerAnglesd>("EulerAngles", val);
|
instance.PushInstance<EulerAnglesd>("EulerAngles", val);
|
||||||
|
|
@ -847,12 +851,12 @@ namespace Nz
|
||||||
* \return 1 in case of success
|
* \return 1 in case of success
|
||||||
*
|
*
|
||||||
* \param instance Lua instance to interact with
|
* \param instance Lua instance to interact with
|
||||||
* \param val Resulting vector2D
|
* \param handle Resulting texture
|
||||||
*/
|
*/
|
||||||
|
|
||||||
inline int LuaImplReplyVal(const LuaInstance& instance, Vector2d&& val, TypeTag<Vector2d>)
|
inline int LuaImplReplyVal(const LuaInstance& instance, TextureRef&& handle, TypeTag<TextureRef>)
|
||||||
{
|
{
|
||||||
instance.PushInstance<Vector2d>("Vector2", val);
|
instance.PushInstance<TextureRef>("Texture", handle);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -861,12 +865,12 @@ namespace Nz
|
||||||
* \return 1 in case of success
|
* \return 1 in case of success
|
||||||
*
|
*
|
||||||
* \param instance Lua instance to interact with
|
* \param instance Lua instance to interact with
|
||||||
* \param handle Resulting texture
|
* \param val Resulting vector2D
|
||||||
*/
|
*/
|
||||||
|
|
||||||
inline int LuaImplReplyVal(const LuaInstance& instance, TextureRef&& handle, TypeTag<TextureRef>)
|
inline int LuaImplReplyVal(const LuaInstance& instance, Vector2d&& val, TypeTag<Vector2d>)
|
||||||
{
|
{
|
||||||
instance.PushInstance<TextureRef>("Texture", handle);
|
instance.PushInstance<Vector2d>("Vector2", val);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,7 @@ namespace Ndk
|
||||||
// Graphics
|
// Graphics
|
||||||
Nz::LuaClass<Nz::InstancedRenderableRef> instancedRenderable;
|
Nz::LuaClass<Nz::InstancedRenderableRef> instancedRenderable;
|
||||||
Nz::LuaClass<Nz::ModelRef> modelClass;
|
Nz::LuaClass<Nz::ModelRef> modelClass;
|
||||||
|
Nz::LuaClass<Nz::SpriteRef> spriteClass;
|
||||||
|
|
||||||
// Renderer
|
// Renderer
|
||||||
Nz::LuaClass<Nz::TextureRef> texture;
|
Nz::LuaClass<Nz::TextureRef> texture;
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,7 @@ namespace Ndk
|
||||||
// Graphics
|
// Graphics
|
||||||
instancedRenderable("InstancedRenderable"),
|
instancedRenderable("InstancedRenderable"),
|
||||||
modelClass("Model"),
|
modelClass("Model"),
|
||||||
|
spriteClass("Sprite"),
|
||||||
|
|
||||||
// Renderer
|
// Renderer
|
||||||
texture("Texture"),
|
texture("Texture"),
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,35 @@ namespace Ndk
|
||||||
//modelClass.SetMethod("SetSequence", &Nz::Model::SetSequence);
|
//modelClass.SetMethod("SetSequence", &Nz::Model::SetSequence);
|
||||||
modelClass.BindMethod("SetSkin", &Nz::Model::SetSkin);
|
modelClass.BindMethod("SetSkin", &Nz::Model::SetSkin);
|
||||||
modelClass.BindMethod("SetSkinCount", &Nz::Model::SetSkinCount);
|
modelClass.BindMethod("SetSkinCount", &Nz::Model::SetSkinCount);
|
||||||
|
|
||||||
|
/*********************************** Nz::Sprite ***********************************/
|
||||||
|
spriteClass.Inherit<Nz::InstancedRenderableRef>(instancedRenderable, [] (Nz::SpriteRef* sprite) -> Nz::InstancedRenderableRef*
|
||||||
|
{
|
||||||
|
return reinterpret_cast<Nz::InstancedRenderableRef*>(sprite); //TODO: Make a ObjectRefCast
|
||||||
|
});
|
||||||
|
|
||||||
|
spriteClass.SetConstructor([] (Nz::LuaInstance& /*lua*/, Nz::SpriteRef* sprite, std::size_t /*argumentCount*/)
|
||||||
|
{
|
||||||
|
Nz::PlacementNew(sprite, Nz::Sprite::New());
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
spriteClass.BindMethod("GetColor", &Nz::Sprite::GetColor);
|
||||||
|
spriteClass.BindMethod("GetCornerColor", &Nz::Sprite::GetCornerColor);
|
||||||
|
//spriteClass.BindMethod("GetMaterial", &Nz::Sprite::GetMaterial);
|
||||||
|
spriteClass.BindMethod("GetOrigin", &Nz::Sprite::GetOrigin);
|
||||||
|
spriteClass.BindMethod("GetSize", &Nz::Sprite::GetSize);
|
||||||
|
spriteClass.BindMethod("GetTextureCoords", &Nz::Sprite::GetTextureCoords);
|
||||||
|
|
||||||
|
spriteClass.BindMethod("SetColor", &Nz::Sprite::SetColor);
|
||||||
|
spriteClass.BindMethod("SetCornerColor", &Nz::Sprite::SetCornerColor);
|
||||||
|
spriteClass.BindMethod("SetDefaultMaterial", &Nz::Sprite::SetDefaultMaterial);
|
||||||
|
//spriteClass.BindMethod("SetMaterial", &Nz::Sprite::SetMaterial, true);
|
||||||
|
spriteClass.BindMethod("SetOrigin", &Nz::Sprite::SetOrigin);
|
||||||
|
spriteClass.BindMethod("SetSize", (void(Nz::Sprite::*)(const Nz::Vector2f&)) &Nz::Sprite::SetSize);
|
||||||
|
spriteClass.BindMethod("SetTexture", &Nz::Sprite::SetTexture, true);
|
||||||
|
spriteClass.BindMethod("SetTextureCoords", &Nz::Sprite::SetTextureCoords);
|
||||||
|
spriteClass.BindMethod("SetTextureRect", &Nz::Sprite::SetTextureRect);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
@ -54,5 +83,6 @@ namespace Ndk
|
||||||
{
|
{
|
||||||
instancedRenderable.Register(instance);
|
instancedRenderable.Register(instance);
|
||||||
modelClass.Register(instance);
|
modelClass.Register(instance);
|
||||||
|
spriteClass.Register(instance);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue