diff --git a/WickedEngine/DeferredRenderableComponent.cpp b/WickedEngine/DeferredRenderableComponent.cpp index a8511adce..9c7103495 100644 --- a/WickedEngine/DeferredRenderableComponent.cpp +++ b/WickedEngine/DeferredRenderableComponent.cpp @@ -34,6 +34,8 @@ void DeferredRenderableComponent::Initialize() , 1, false, 1, 0 , DXGI_FORMAT_R11G11B10_FLOAT ); + + Renderable2DComponent::Initialize(); } void DeferredRenderableComponent::Load() { @@ -71,6 +73,7 @@ void DeferredRenderableComponent::Render(){ RenderComposition2(); } + Renderable2DComponent::Render(); } diff --git a/WickedEngine/ForwardRenderableComponent.cpp b/WickedEngine/ForwardRenderableComponent.cpp index 7b8eb4879..e65b39173 100644 --- a/WickedEngine/ForwardRenderableComponent.cpp +++ b/WickedEngine/ForwardRenderableComponent.cpp @@ -21,6 +21,8 @@ void ForwardRenderableComponent::Initialize() Renderable3DComponent::Initialize(); rtMain.Initialize(wiRenderer::GetScreenWidth(), wiRenderer::GetScreenHeight(), 1, true); + + Renderable2DComponent::Initialize(); } void ForwardRenderableComponent::Load() { @@ -59,6 +61,7 @@ void ForwardRenderableComponent::Render(){ RenderComposition2(); } + Renderable2DComponent::Render(); } diff --git a/WickedEngine/MainComponent.cpp b/WickedEngine/MainComponent.cpp index 4790e091a..07ab13b60 100644 --- a/WickedEngine/MainComponent.cpp +++ b/WickedEngine/MainComponent.cpp @@ -100,6 +100,8 @@ void MainComponent::Render() void MainComponent::Compose() { getActiveComponent()->Compose(); + + wiBackLog::Draw(); } #ifndef WINSTORE_SUPPORT diff --git a/WickedEngine/Renderable2DComponent.cpp b/WickedEngine/Renderable2DComponent.cpp index e92d8bd0c..522eff540 100644 --- a/WickedEngine/Renderable2DComponent.cpp +++ b/WickedEngine/Renderable2DComponent.cpp @@ -2,6 +2,7 @@ #include "wiResourceManager.h" #include "wiSprite.h" #include "wiFont.h" +#include "wiRenderer.h" Renderable2DComponent::Renderable2DComponent() { @@ -18,7 +19,9 @@ Renderable2DComponent::~Renderable2DComponent() void Renderable2DComponent::Initialize() { - + rtFinal.Initialize( + wiRenderer::GetScreenWidth(), wiRenderer::GetScreenHeight() + , 1, false); } void Renderable2DComponent::Load() @@ -44,8 +47,10 @@ void Renderable2DComponent::Update() x->Update(getSpriteSpeed()); } } -void Renderable2DComponent::Compose() +void Renderable2DComponent::Render() { + rtFinal.Activate(wiRenderer::getImmediateContext(), 0, 0, 0, 0); + wiImage::BatchBegin(); for (wiSprite* x : m_sprites) @@ -58,6 +63,11 @@ void Renderable2DComponent::Compose() x->Draw(); } } +void Renderable2DComponent::Compose() +{ + wiImage::BatchBegin(); + wiImage::Draw(rtFinal.shaderResource.back(), wiImageEffects((float)wiRenderer::GetScreenWidth(),(float)wiRenderer::GetScreenHeight())); +} void Renderable2DComponent::addSprite(wiSprite* sprite) diff --git a/WickedEngine/Renderable2DComponent.h b/WickedEngine/Renderable2DComponent.h index 8f7c40197..f21d36b72 100644 --- a/WickedEngine/Renderable2DComponent.h +++ b/WickedEngine/Renderable2DComponent.h @@ -9,6 +9,7 @@ class Renderable2DComponent : { private: float m_spriteSpeed; + wiRenderTarget rtFinal; protected: vector m_sprites; vector m_fonts; @@ -21,6 +22,7 @@ public: virtual void Unload(); virtual void Start(); virtual void Update(); + virtual void Render(); virtual void Compose(); void addSprite(wiSprite* sprite); diff --git a/WickedEngine/Renderable2DComponent_BindLua.cpp b/WickedEngine/Renderable2DComponent_BindLua.cpp index bddab5101..d9ed1b128 100644 --- a/WickedEngine/Renderable2DComponent_BindLua.cpp +++ b/WickedEngine/Renderable2DComponent_BindLua.cpp @@ -46,9 +46,9 @@ int Renderable2DComponent_BindLua::AddSprite(lua_State *L) return 0; } int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - wiSprite_BindLua* sprite = Luna::lightcheck(L, 2); + wiSprite_BindLua* sprite = Luna::lightcheck(L, 1); if (sprite != nullptr) { Renderable2DComponent* ccomp = dynamic_cast(component); @@ -78,9 +78,9 @@ int Renderable2DComponent_BindLua::AddFont(lua_State* L) return 0; } int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - wiFont_BindLua* font = Luna::lightcheck(L, 2); + wiFont_BindLua* font = Luna::lightcheck(L, 1); if (font != nullptr) { Renderable2DComponent* ccomp = dynamic_cast(component); diff --git a/WickedEngine/SpriteAnim_BindLua.cpp b/WickedEngine/SpriteAnim_BindLua.cpp index 7eb2d0def..c58cebce5 100644 --- a/WickedEngine/SpriteAnim_BindLua.cpp +++ b/WickedEngine/SpriteAnim_BindLua.cpp @@ -27,9 +27,9 @@ SpriteAnim_BindLua::~SpriteAnim_BindLua() int SpriteAnim_BindLua::SetRot(lua_State *L) { int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - anim.rot = wiLua::SGetFloat(L, 2); + anim.rot = wiLua::SGetFloat(L, 1); } else { diff --git a/WickedEngine/wiFont.cpp b/WickedEngine/wiFont.cpp index ef156154a..1280ea217 100644 --- a/WickedEngine/wiFont.cpp +++ b/WickedEngine/wiFont.cpp @@ -121,12 +121,12 @@ void wiFont::SetUpStates() D3D11_BLEND_DESC bd; ZeroMemory(&bd, sizeof(bd)); - bd.RenderTarget[0].BlendEnable=TRUE; + bd.RenderTarget[0].BlendEnable = TRUE; bd.RenderTarget[0].SrcBlend = D3D11_BLEND_SRC_ALPHA; bd.RenderTarget[0].DestBlend = D3D11_BLEND_INV_SRC_ALPHA; bd.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD; bd.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_ONE; - bd.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_ZERO; + bd.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_INV_SRC_ALPHA; bd.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD; bd.RenderTarget[0].RenderTargetWriteMask = 0x0f; wiRenderer::graphicsDevice->CreateBlendState(&bd,&blendState); @@ -343,7 +343,7 @@ void wiFont::Draw(wiRenderer::DeviceContext context){ ConstantBuffer cb = ConstantBuffer(); - cb.mProjection = XMMatrixTranspose( wiRenderer::getCamera()->GetOProjection() ); + cb.mProjection = XMMatrixTranspose( XMMatrixOrthographicLH((float)wiRenderer::GetScreenWidth(),(float)wiRenderer::GetScreenHeight(),0,100) ); cb.mTrans = XMMatrixTranspose(XMMatrixTranslation(newProps.posX, newProps.posY, 0)); cb.mDimensions = XMFLOAT4((float)wiRenderer::RENDERWIDTH, (float)wiRenderer::RENDERHEIGHT, 0, 0); diff --git a/WickedEngine/wiImageEffects_BindLua.cpp b/WickedEngine/wiImageEffects_BindLua.cpp index 6c0221542..1ea765f3f 100644 --- a/WickedEngine/wiImageEffects_BindLua.cpp +++ b/WickedEngine/wiImageEffects_BindLua.cpp @@ -61,13 +61,13 @@ int wiImageEffects_BindLua::GetMipLevel(lua_State* L) int wiImageEffects_BindLua::SetPos(lua_State* L) { int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - effects.pos.x = wiLua::SGetFloat(L, 2); + effects.pos.x = wiLua::SGetFloat(L, 1); + if (argc > 1) + effects.pos.y = wiLua::SGetFloat(L, 2); if (argc > 2) - effects.pos.y = wiLua::SGetFloat(L, 3); - if (argc > 3) - effects.pos.z = wiLua::SGetFloat(L, 4); + effects.pos.z = wiLua::SGetFloat(L, 3); } else { @@ -78,11 +78,11 @@ int wiImageEffects_BindLua::SetPos(lua_State* L) int wiImageEffects_BindLua::SetSize(lua_State* L) { int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - effects.siz.x = wiLua::SGetFloat(L, 2); - if (argc > 2) - effects.siz.y = wiLua::SGetFloat(L, 3); + effects.siz.x = wiLua::SGetFloat(L, 1); + if (argc > 1) + effects.siz.y = wiLua::SGetFloat(L, 2); } else { @@ -93,9 +93,9 @@ int wiImageEffects_BindLua::SetSize(lua_State* L) int wiImageEffects_BindLua::SetOpacity(lua_State* L) { int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - effects.opacity = wiLua::SGetFloat(L, 2); + effects.opacity = wiLua::SGetFloat(L, 1); } else { @@ -106,9 +106,9 @@ int wiImageEffects_BindLua::SetOpacity(lua_State* L) int wiImageEffects_BindLua::SetFade(lua_State* L) { int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - effects.fade = wiLua::SGetFloat(L, 2); + effects.fade = wiLua::SGetFloat(L, 1); } else { @@ -119,9 +119,9 @@ int wiImageEffects_BindLua::SetFade(lua_State* L) int wiImageEffects_BindLua::SetRotation(lua_State* L) { int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - effects.rotation = wiLua::SGetFloat(L, 2); + effects.rotation = wiLua::SGetFloat(L, 1); } else { @@ -132,9 +132,9 @@ int wiImageEffects_BindLua::SetRotation(lua_State* L) int wiImageEffects_BindLua::SetMipLevel(lua_State* L) { int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - effects.mipLevel = wiLua::SGetFloat(L, 2); + effects.mipLevel = wiLua::SGetFloat(L, 1); } else { diff --git a/WickedEngine/wiLoader_BindLua.cpp b/WickedEngine/wiLoader_BindLua.cpp index e24271bc4..8e749fadd 100644 --- a/WickedEngine/wiLoader_BindLua.cpp +++ b/WickedEngine/wiLoader_BindLua.cpp @@ -60,9 +60,9 @@ int Node_BindLua::SetName(lua_State* L) return 0; } int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - node->name = wiLua::SGetString(L, 2); + node->name = wiLua::SGetString(L, 1); } else { @@ -126,25 +126,25 @@ Transform_BindLua::~Transform_BindLua() int Transform_BindLua::AttachTo(lua_State* L) { int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - Transform_BindLua* parent = Luna::lightcheck(L, 2); + Transform_BindLua* parent = Luna::lightcheck(L, 1); if (parent == nullptr) - parent = Luna::lightcheck(L, 2); + parent = Luna::lightcheck(L, 1); if (parent == nullptr) - parent = Luna::lightcheck(L, 2); + parent = Luna::lightcheck(L, 1); if (parent != nullptr) { int s = 1, r = 1, t = 1; - if (argc > 2) + if (argc > 1) { - t = wiLua::SGetInt(L, 3); - if (argc > 3) + t = wiLua::SGetInt(L, 2); + if (argc > 2) { - r = wiLua::SGetInt(L, 4); - if (argc > 4) + r = wiLua::SGetInt(L, 3); + if (argc > 3) { - s = wiLua::SGetInt(L, 5); + s = wiLua::SGetInt(L, 4); } } } @@ -165,9 +165,9 @@ int Transform_BindLua::Detach(lua_State* L) { int argc = wiLua::SGetArgCount(L); int eraseFromParent = 1; - if (argc > 1) + if (argc > 0) { - eraseFromParent = wiLua::SGetInt(L, 2); + eraseFromParent = wiLua::SGetInt(L, 1); } transform->detach(eraseFromParent); return 0; @@ -175,13 +175,13 @@ int Transform_BindLua::Detach(lua_State* L) int Transform_BindLua::DetachChild(lua_State* L) { int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - Transform_BindLua* child = Luna::lightcheck(L, 2); + Transform_BindLua* child = Luna::lightcheck(L, 1); if (child == nullptr) - child = Luna::lightcheck(L, 2); + child = Luna::lightcheck(L, 1); if (child == nullptr) - child = Luna::lightcheck(L, 2); + child = Luna::lightcheck(L, 1); if (child != nullptr) { transform->detachChild(child->transform); @@ -195,15 +195,15 @@ int Transform_BindLua::ApplyTransform(lua_State* L) { int argc = wiLua::SGetArgCount(L); int s = 1, r = 1, t = 1; - if (argc > 1) + if (argc > 0) { - t = wiLua::SGetInt(L, 2); - if (argc > 2) + t = wiLua::SGetInt(L, 1); + if (argc > 1) { - r = wiLua::SGetInt(L, 3); - if (argc > 3) + r = wiLua::SGetInt(L, 2); + if (argc > 2) { - s = wiLua::SGetInt(L, 4); + s = wiLua::SGetInt(L, 3); } } } @@ -213,9 +213,9 @@ int Transform_BindLua::ApplyTransform(lua_State* L) int Transform_BindLua::Scale(lua_State* L) { int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - Vector_BindLua* v = Luna::lightcheck(L, 2); + Vector_BindLua* v = Luna::lightcheck(L, 1); if (v != nullptr) { XMFLOAT3 scale; @@ -236,9 +236,9 @@ int Transform_BindLua::Scale(lua_State* L) int Transform_BindLua::Rotate(lua_State* L) { int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - Vector_BindLua* v = Luna::lightcheck(L, 2); + Vector_BindLua* v = Luna::lightcheck(L, 1); if (v != nullptr) { XMFLOAT3 rollPitchYaw; @@ -259,9 +259,9 @@ int Transform_BindLua::Rotate(lua_State* L) int Transform_BindLua::Translate(lua_State* L) { int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - Vector_BindLua* v = Luna::lightcheck(L, 2); + Vector_BindLua* v = Luna::lightcheck(L, 1); if (v != nullptr) { XMFLOAT3 translate; @@ -282,9 +282,9 @@ int Transform_BindLua::Translate(lua_State* L) int Transform_BindLua::MatrixTransform(lua_State* L) { int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - Matrix_BindLua* m = Luna::lightcheck(L, 2); + Matrix_BindLua* m = Luna::lightcheck(L, 1); if (m != nullptr) { transform->transform(m->matrix); @@ -313,13 +313,13 @@ int Transform_BindLua::ClearTransform(lua_State* L) int Transform_BindLua::SetTransform(lua_State* L) { int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - Transform_BindLua* t = Luna::lightcheck(L, 2); + Transform_BindLua* t = Luna::lightcheck(L, 1); if (t == nullptr) - t = Luna::lightcheck(L, 2); + t = Luna::lightcheck(L, 1); if (t == nullptr) - t = Luna::lightcheck(L, 2); + t = Luna::lightcheck(L, 1); if (t != nullptr) { *transform = *t->transform; @@ -393,11 +393,11 @@ Cullable_BindLua::~Cullable_BindLua() int Cullable_BindLua::Intersects(lua_State* L) { int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - Cullable_BindLua* target = Luna::lightcheck(L, 2); + Cullable_BindLua* target = Luna::lightcheck(L, 1); if (target == nullptr) - target = Luna::lightcheck(L, 2); + target = Luna::lightcheck(L, 1); if (target != nullptr) { AABB::INTERSECTION_TYPE intersection = cullable->bounds.intersects(target->cullable->bounds); @@ -406,7 +406,7 @@ int Cullable_BindLua::Intersects(lua_State* L) } else { - Ray_BindLua* ray = Luna::lightcheck(L, 2); + Ray_BindLua* ray = Luna::lightcheck(L, 1); if (ray != nullptr) { wiLua::SSetBool(L, cullable->bounds.intersects(ray->ray)); @@ -414,7 +414,7 @@ int Cullable_BindLua::Intersects(lua_State* L) } else { - Vector_BindLua* vec = Luna::lightcheck(L, 2); + Vector_BindLua* vec = Luna::lightcheck(L, 1); if (vec != nullptr) { XMFLOAT3 point; @@ -504,9 +504,9 @@ int Object_BindLua::SetTransparency(lua_State *L) return 0; } int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - object->transparency = wiLua::SGetFloat(L, 2); + object->transparency = wiLua::SGetFloat(L, 1); } else { @@ -532,9 +532,9 @@ int Object_BindLua::SetColor(lua_State *L) return 0; } int argc = wiLua::SGetArgCount(L); - if (argc > 3) + if (argc > 2) { - object->color = wiLua::SGetFloat3(L, 2); + object->color = wiLua::SGetFloat3(L, 1); } else { @@ -672,7 +672,7 @@ int Armature_BindLua::GetBone(lua_State *L) wiLua::SError(L, "GetBone() armature is null!"); return 0; } - string name = wiLua::SGetString(L, 2); + string name = wiLua::SGetString(L, 1); for (auto& x : armature->boneCollection) { if (!x->name.compare(name)) @@ -718,9 +718,9 @@ int Armature_BindLua::ChangeAction(lua_State* L) return 0; } int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - string armatureName = wiLua::SGetString(L, 2); + string armatureName = wiLua::SGetString(L, 1); if (!armature->ChangeAction(armatureName)) { wiLua::SError(L, "SetAction(String name) action not found!"); diff --git a/WickedEngine/wiSprite_BindLua.cpp b/WickedEngine/wiSprite_BindLua.cpp index 0dcff6423..1d16239e7 100644 --- a/WickedEngine/wiSprite_BindLua.cpp +++ b/WickedEngine/wiSprite_BindLua.cpp @@ -51,9 +51,9 @@ int wiSprite_BindLua::SetEffects(lua_State *L) return 0; } int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - wiImageEffects_BindLua* effects = Luna::check(L, 2); + wiImageEffects_BindLua* effects = Luna::check(L, 1); if (effects != nullptr) { sprite->effects = effects->effects; @@ -83,9 +83,9 @@ int wiSprite_BindLua::SetAnim(lua_State *L) return 0; } int argc = wiLua::SGetArgCount(L); - if (argc > 1) + if (argc > 0) { - SpriteAnim_BindLua* anim = Luna::check(L, 2); + SpriteAnim_BindLua* anim = Luna::check(L, 1); if (anim != nullptr) { sprite->anim = anim->anim;