updated component templates and lua bindings

This commit is contained in:
turanszkij
2015-09-04 22:55:01 +02:00
parent b88cdd28d1
commit bbb2d63541
15 changed files with 159 additions and 6 deletions
@@ -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),
+11
View File
@@ -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);
}
+3
View File
@@ -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);
};
+38 -2
View File
@@ -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();
};
+2
View File
@@ -164,6 +164,8 @@ void Renderable3DComponent::Compose(){
RenderableComponent::Compose();
RenderColorGradedComposition();
Renderable2DComponent::Compose();
}
void Renderable3DComponent::RenderReflections(wiRenderer::DeviceContext context){
+2 -2
View File
@@ -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 -2
View File
@@ -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[];
+2
View File
@@ -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" />
+56
View File
@@ -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());
}
}
+25
View File
@@ -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();
};
+2
View File
@@ -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;