updated component templates and lua bindings
This commit is contained in:
@@ -3,6 +3,9 @@
|
||||
const char DeferredRenderableComponent_BindLua::className[] = "DeferredRenderableComponent";
|
||||
|
||||
Luna<DeferredRenderableComponent_BindLua>::FunctionType DeferredRenderableComponent_BindLua::methods[] = {
|
||||
lunamethod(Renderable2DComponent_BindLua, AddSprite),
|
||||
lunamethod(Renderable2DComponent_BindLua, AddFont),
|
||||
|
||||
lunamethod(DeferredRenderableComponent_BindLua, GetContent),
|
||||
lunamethod(DeferredRenderableComponent_BindLua, Initialize),
|
||||
lunamethod(DeferredRenderableComponent_BindLua, Load),
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
const char ForwardRenderableComponent_BindLua::className[] = "ForwardRenderableComponent";
|
||||
|
||||
Luna<ForwardRenderableComponent_BindLua>::FunctionType ForwardRenderableComponent_BindLua::methods[] = {
|
||||
lunamethod(Renderable2DComponent_BindLua, AddSprite),
|
||||
lunamethod(Renderable2DComponent_BindLua, AddFont),
|
||||
|
||||
lunamethod(ForwardRenderableComponent_BindLua, GetContent),
|
||||
lunamethod(ForwardRenderableComponent_BindLua, Initialize),
|
||||
lunamethod(ForwardRenderableComponent_BindLua, Load),
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
#include "Renderable2DComponent.h"
|
||||
#include "wiResourceManager.h"
|
||||
#include "wiSprite.h"
|
||||
#include "wiFont.h"
|
||||
|
||||
Renderable2DComponent::Renderable2DComponent()
|
||||
{
|
||||
setSpriteSpeed(1.f);
|
||||
m_sprites.clear();
|
||||
m_fonts.clear();
|
||||
}
|
||||
|
||||
|
||||
@@ -50,6 +52,11 @@ void Renderable2DComponent::Compose()
|
||||
{
|
||||
x->Draw();
|
||||
}
|
||||
|
||||
for (wiFont* x : m_fonts)
|
||||
{
|
||||
x->Draw();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -57,3 +64,7 @@ void Renderable2DComponent::addSprite(wiSprite* sprite)
|
||||
{
|
||||
m_sprites.push_back(sprite);
|
||||
}
|
||||
void Renderable2DComponent::addFont(wiFont* font)
|
||||
{
|
||||
m_fonts.push_back(font);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#include "RenderableComponent.h"
|
||||
|
||||
class wiSprite;
|
||||
class wiFont;
|
||||
|
||||
class Renderable2DComponent :
|
||||
public RenderableComponent
|
||||
@@ -10,6 +11,7 @@ private:
|
||||
float m_spriteSpeed;
|
||||
protected:
|
||||
vector<wiSprite*> m_sprites;
|
||||
vector<wiFont*> m_fonts;
|
||||
public:
|
||||
Renderable2DComponent();
|
||||
~Renderable2DComponent();
|
||||
@@ -24,5 +26,6 @@ public:
|
||||
void addSprite(wiSprite* sprite);
|
||||
void setSpriteSpeed(float value){ m_spriteSpeed = value; }
|
||||
float getSpriteSpeed(){ return m_spriteSpeed; }
|
||||
void addFont(wiFont* font);
|
||||
};
|
||||
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
#include "Renderable2DComponent_BindLua.h"
|
||||
#include "wiResourceManager_BindLua.h"
|
||||
#include "wiSprite_BindLua.h"
|
||||
#include "wiFont_BindLua.h"
|
||||
|
||||
const char Renderable2DComponent_BindLua::className[] = "Renderable2DComponent";
|
||||
|
||||
Luna<Renderable2DComponent_BindLua>::FunctionType Renderable2DComponent_BindLua::methods[] = {
|
||||
lunamethod(Renderable2DComponent_BindLua, GetContent),
|
||||
lunamethod(Renderable2DComponent_BindLua, AddSprite),
|
||||
lunamethod(Renderable2DComponent_BindLua, AddFont),
|
||||
lunamethod(Renderable2DComponent_BindLua, Initialize),
|
||||
lunamethod(Renderable2DComponent_BindLua, Load),
|
||||
lunamethod(Renderable2DComponent_BindLua, Unload),
|
||||
@@ -40,13 +42,13 @@ int Renderable2DComponent_BindLua::AddSprite(lua_State *L)
|
||||
{
|
||||
if (component == nullptr)
|
||||
{
|
||||
wiLua::SError(L, "GetContent() component is empty!");
|
||||
wiLua::SError(L, "AddSprite() component is empty!");
|
||||
return 0;
|
||||
}
|
||||
int argc = wiLua::SGetArgCount(L);
|
||||
if (argc > 1)
|
||||
{
|
||||
wiSprite_BindLua* sprite = Luna<wiSprite_BindLua>::check(L, 2);
|
||||
wiSprite_BindLua* sprite = Luna<wiSprite_BindLua>::lightcheck(L, 2);
|
||||
if (sprite != nullptr)
|
||||
{
|
||||
Renderable2DComponent* ccomp = dynamic_cast<Renderable2DComponent*>(component);
|
||||
@@ -59,6 +61,8 @@ int Renderable2DComponent_BindLua::AddSprite(lua_State *L)
|
||||
wiLua::SError(L, "AddSprite(Sprite sprite) not a Renderable2DComponent!");
|
||||
}
|
||||
}
|
||||
else
|
||||
wiLua::SError(L, "AddSprite(Sprite sprite) argument is not a Sprite!");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -66,6 +70,38 @@ int Renderable2DComponent_BindLua::AddSprite(lua_State *L)
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
int Renderable2DComponent_BindLua::AddFont(lua_State* L)
|
||||
{
|
||||
if (component == nullptr)
|
||||
{
|
||||
wiLua::SError(L, "AddFont() component is empty!");
|
||||
return 0;
|
||||
}
|
||||
int argc = wiLua::SGetArgCount(L);
|
||||
if (argc > 1)
|
||||
{
|
||||
wiFont_BindLua* font = Luna<wiFont_BindLua>::lightcheck(L, 2);
|
||||
if (font != nullptr)
|
||||
{
|
||||
Renderable2DComponent* ccomp = dynamic_cast<Renderable2DComponent*>(component);
|
||||
if (ccomp != nullptr)
|
||||
{
|
||||
ccomp->addFont(font->font);
|
||||
}
|
||||
else
|
||||
{
|
||||
wiLua::SError(L, "AddFont(Font font) not a Renderable2DComponent!");
|
||||
}
|
||||
}
|
||||
else
|
||||
wiLua::SError(L, "AddFont(Font font) argument is not a Font!");
|
||||
}
|
||||
else
|
||||
{
|
||||
wiLua::SError(L, "AddFont(Font font) not enough arguments!");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Renderable2DComponent_BindLua::Bind()
|
||||
{
|
||||
|
||||
@@ -16,6 +16,7 @@ public:
|
||||
~Renderable2DComponent_BindLua();
|
||||
|
||||
virtual int AddSprite(lua_State *L);
|
||||
virtual int AddFont(lua_State* L);
|
||||
|
||||
static void Bind();
|
||||
};
|
||||
|
||||
@@ -164,6 +164,8 @@ void Renderable3DComponent::Compose(){
|
||||
RenderableComponent::Compose();
|
||||
|
||||
RenderColorGradedComposition();
|
||||
|
||||
Renderable2DComponent::Compose();
|
||||
}
|
||||
|
||||
void Renderable3DComponent::RenderReflections(wiRenderer::DeviceContext context){
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
#pragma once
|
||||
#include "RenderableComponent.h"
|
||||
#include "Renderable2DComponent.h"
|
||||
#include "wiTaskThread.h"
|
||||
#include "wiRenderer.h"
|
||||
#include "wiWaterPlane.h"
|
||||
|
||||
class Renderable3DComponent :
|
||||
public RenderableComponent
|
||||
public Renderable2DComponent
|
||||
{
|
||||
private:
|
||||
float lightShaftQuality;
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
const char Renderable3DComponent_BindLua::className[] = "Renderable3DComponent";
|
||||
|
||||
Luna<Renderable3DComponent_BindLua>::FunctionType Renderable3DComponent_BindLua::methods[] = {
|
||||
lunamethod(Renderable2DComponent_BindLua, AddSprite),
|
||||
lunamethod(Renderable2DComponent_BindLua, AddFont),
|
||||
|
||||
lunamethod(Renderable3DComponent_BindLua, GetContent),
|
||||
lunamethod(Renderable3DComponent_BindLua, Initialize),
|
||||
lunamethod(Renderable3DComponent_BindLua, Load),
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
#include "wiLua.h"
|
||||
#include "wiLuna.h"
|
||||
#include "Renderable3DComponent.h"
|
||||
#include "RenderableComponent_BindLua.h"
|
||||
#include "Renderable2DComponent_BindLua.h"
|
||||
|
||||
class Renderable3DComponent_BindLua : public RenderableComponent_BindLua
|
||||
class Renderable3DComponent_BindLua : public Renderable2DComponent_BindLua
|
||||
{
|
||||
public:
|
||||
static const char className[];
|
||||
|
||||
@@ -448,6 +448,7 @@
|
||||
<ClCompile Include="wiEmittedParticle.cpp" />
|
||||
<ClCompile Include="wiFont.cpp" />
|
||||
<ClCompile Include="ForwardRenderableComponent.cpp" />
|
||||
<ClCompile Include="wiFont_BindLua.cpp" />
|
||||
<ClCompile Include="wiFrameRate.cpp" />
|
||||
<ClCompile Include="wiFrustum.cpp" />
|
||||
<ClCompile Include="wiHairParticle.cpp" />
|
||||
@@ -503,6 +504,7 @@
|
||||
<ClInclude Include="SpriteAnim_BindLua.h" />
|
||||
<ClInclude Include="Texture_BindLua.h" />
|
||||
<ClInclude Include="Vector_BindLua.h" />
|
||||
<ClInclude Include="wiFont_BindLua.h" />
|
||||
<ClInclude Include="wiImageEffects_BindLua.h" />
|
||||
<ClInclude Include="wiInputManager_BindLua.h" />
|
||||
<ClInclude Include="wiLoader_BindLua.h" />
|
||||
|
||||
@@ -788,6 +788,9 @@
|
||||
<ClCompile Include="Vector_BindLua.cpp">
|
||||
<Filter>Lua Bindings</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="wiFont_BindLua.cpp">
|
||||
<Filter>Lua Bindings</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="typelib.h">
|
||||
@@ -1753,6 +1756,9 @@
|
||||
<ClInclude Include="Vector_BindLua.h">
|
||||
<Filter>Lua Bindings</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="wiFont_BindLua.h">
|
||||
<Filter>Lua Bindings</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\io_export_wicked_wi_bin.py" />
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
#include "wiFont_BindLua.h"
|
||||
#include "wiFont.h"
|
||||
|
||||
const char wiFont_BindLua::className[] = "Font";
|
||||
|
||||
Luna<wiFont_BindLua>::FunctionType wiFont_BindLua::methods[] = {
|
||||
lunamethod(wiFont_BindLua, GetProperties),
|
||||
lunamethod(wiFont_BindLua, SetProperties),
|
||||
{ NULL, NULL }
|
||||
};
|
||||
Luna<wiFont_BindLua>::PropertyType wiFont_BindLua::properties[] = {
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
wiFont_BindLua::wiFont_BindLua(wiFont* font)
|
||||
{
|
||||
if (font != nullptr)
|
||||
this->font = new wiFont(*font);
|
||||
else
|
||||
this->font = nullptr;
|
||||
}
|
||||
wiFont_BindLua::wiFont_BindLua(lua_State* L)
|
||||
{
|
||||
int argc = wiLua::SGetArgCount(L);
|
||||
if (argc > 0)
|
||||
{
|
||||
string text = wiLua::SGetString(L, 1);
|
||||
font = new wiFont(text);
|
||||
}
|
||||
else
|
||||
font = nullptr;
|
||||
}
|
||||
wiFont_BindLua::~wiFont_BindLua()
|
||||
{
|
||||
delete font;
|
||||
}
|
||||
|
||||
|
||||
int wiFont_BindLua::GetProperties(lua_State* L)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
int wiFont_BindLua::SetProperties(lua_State* L)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void wiFont_BindLua::Bind()
|
||||
{
|
||||
static bool initialized = false;
|
||||
if (!initialized)
|
||||
{
|
||||
initialized = true;
|
||||
Luna<wiFont_BindLua>::Register(wiLua::GetGlobal()->GetLuaState());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
#include "wiLua.h"
|
||||
#include "wiLuna.h"
|
||||
|
||||
class wiFont;
|
||||
|
||||
class wiFont_BindLua
|
||||
{
|
||||
public:
|
||||
wiFont* font;
|
||||
|
||||
static const char className[];
|
||||
static Luna<wiFont_BindLua>::FunctionType methods[];
|
||||
static Luna<wiFont_BindLua>::PropertyType properties[];
|
||||
|
||||
wiFont_BindLua(wiFont* font);
|
||||
wiFont_BindLua(lua_State* L);
|
||||
~wiFont_BindLua();
|
||||
|
||||
int GetProperties(lua_State* L);
|
||||
int SetProperties(lua_State* L);
|
||||
|
||||
static void Bind();
|
||||
};
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "Vector_BindLua.h"
|
||||
#include "Matrix_BindLua.h"
|
||||
#include "wiInputManager_BindLua.h"
|
||||
#include "wiFont_BindLua.h"
|
||||
|
||||
wiLua *wiLua::globalLua = nullptr;
|
||||
|
||||
@@ -64,6 +65,7 @@ wiLua* wiLua::GetGlobal()
|
||||
Vector_BindLua::Bind();
|
||||
Matrix_BindLua::Bind();
|
||||
wiInputManager_BindLua::Bind();
|
||||
wiFont_BindLua::Bind();
|
||||
|
||||
}
|
||||
return globalLua;
|
||||
|
||||
Reference in New Issue
Block a user