diff --git a/Editor/Editor.cpp b/Editor/Editor.cpp index ca67a1f95..038a6cfec 100644 --- a/Editor/Editor.cpp +++ b/Editor/Editor.cpp @@ -17,6 +17,7 @@ #include "OceanWindow.h" #include "ModelImporter.h" +#include "Translator.h" #include // openfile #include @@ -184,7 +185,7 @@ struct Picked -wiTranslator* translator = nullptr; +Translator* translator = nullptr; bool translator_active = false; list selected; std::map savedParents; @@ -401,7 +402,7 @@ void EditorComponent::Load() { __super::Load(); - translator = new wiTranslator; + translator = new Translator; translator->enabled = false; @@ -1751,11 +1752,6 @@ void EditorComponent::Render() if (!cinemaModeCheckBox->GetCheck() && !selected.empty()) { - if (translator_active) - { - wiRenderer::AddRenderableTranslator(translator); - } - AABB selectedAABB = AABB(XMFLOAT3(FLOAT32_MAX, FLOAT32_MAX, FLOAT32_MAX),XMFLOAT3(-FLOAT32_MAX, -FLOAT32_MAX, -FLOAT32_MAX)); for (auto& picked : selected) { @@ -1796,28 +1792,7 @@ void EditorComponent::Compose() return; } - //static Texture2D* clouds = nullptr; - //if (clouds == nullptr) - //{ - // TextureDesc desc; - // desc.ArraySize = 1; - // desc.BindFlags = BIND_UNORDERED_ACCESS | BIND_SHADER_RESOURCE; - // desc.CPUAccessFlags = 0; - // desc.Format = FORMAT_R8G8B8A8_UNORM; - // desc.Height = 512; - // desc.Width = 512; - // desc.MipLevels = 1; - // desc.MiscFlags = 0; - // desc.Usage = USAGE_DEFAULT; - - // wiRenderer::GetDevice()->CreateTexture2D(&desc, nullptr, &clouds); - //} - //static float ran = 0; - //ran += 0.01f; - //wiRenderer::GenerateClouds(clouds, 0, ran, GRAPHICSTHREAD_IMMEDIATE); - //wiImage::Draw(clouds, wiImageEffects(200, 200, 256, 256), GRAPHICSTHREAD_IMMEDIATE); - - //__super::Compose(); + Camera* camera = wiRenderer::getCamera(); for (auto& x : wiRenderer::GetScene().models) { @@ -1825,7 +1800,7 @@ void EditorComponent::Compose() { for (auto& y : x->lights) { - float dist = wiMath::Distance(y->translation, wiRenderer::getCamera()->translation) * 0.08f; + float dist = wiMath::Distance(y->translation, camera->translation) * 0.08f; wiImageEffects fx; fx.pos = y->translation; @@ -1870,7 +1845,7 @@ void EditorComponent::Compose() { for (auto& y : x->decals) { - float dist = wiMath::Distance(y->translation, wiRenderer::getCamera()->translation) * 0.08f; + float dist = wiMath::Distance(y->translation, camera->translation) * 0.08f; wiImageEffects fx; fx.pos = y->translation; @@ -1902,7 +1877,7 @@ void EditorComponent::Compose() { for (auto& y : x->forces) { - float dist = wiMath::Distance(y->translation, wiRenderer::getCamera()->translation) * 0.08f; + float dist = wiMath::Distance(y->translation, camera->translation) * 0.08f; wiImageEffects fx; fx.pos = y->translation; @@ -1933,7 +1908,7 @@ void EditorComponent::Compose() { for (auto& y : x->cameras) { - float dist = wiMath::Distance(y->translation, wiRenderer::getCamera()->translation) * 0.08f; + float dist = wiMath::Distance(y->translation, camera->translation) * 0.08f; wiImageEffects fx; fx.pos = y->translation; @@ -1964,7 +1939,7 @@ void EditorComponent::Compose() { for (auto& y : x->armatures) { - float dist = wiMath::Distance(y->translation, wiRenderer::getCamera()->translation) * 0.08f; + float dist = wiMath::Distance(y->translation, camera->translation) * 0.08f; wiImageEffects fx; fx.pos = y->translation; @@ -2000,7 +1975,7 @@ void EditorComponent::Compose() continue; } - float dist = wiMath::Distance(y->translation, wiRenderer::getCamera()->translation) * 0.08f; + float dist = wiMath::Distance(y->translation, camera->translation) * 0.08f; wiImageEffects fx; fx.pos = y->translation; @@ -2028,6 +2003,12 @@ void EditorComponent::Compose() } } + + + if (translator_active && translator->enabled) + { + translator->Draw(camera, GRAPHICSTHREAD_IMMEDIATE); + } } void EditorComponent::Unload() { diff --git a/Editor/Editor.vcxproj b/Editor/Editor.vcxproj index f42ea078d..330282b07 100644 --- a/Editor/Editor.vcxproj +++ b/Editor/Editor.vcxproj @@ -187,6 +187,7 @@ + @@ -214,6 +215,7 @@ Create Create + diff --git a/Editor/Editor.vcxproj.filters b/Editor/Editor.vcxproj.filters index e3b12a827..dfa3e1a39 100644 --- a/Editor/Editor.vcxproj.filters +++ b/Editor/Editor.vcxproj.filters @@ -82,6 +82,9 @@ Code + + Code + @@ -144,6 +147,9 @@ Code + + Code + diff --git a/WickedEngine/wiTranslator.cpp b/Editor/Translator.cpp similarity index 66% rename from WickedEngine/wiTranslator.cpp rename to Editor/Translator.cpp index 5fa98228e..fe0bfba99 100644 --- a/WickedEngine/wiTranslator.cpp +++ b/Editor/Translator.cpp @@ -1,4 +1,5 @@ -#include "wiTranslator.h" +#include "stdafx.h" +#include "Translator.h" #include "wiRenderer.h" #include "wiInputManager.h" #include "wiMath.h" @@ -6,15 +7,17 @@ using namespace wiGraphicsTypes; using namespace wiSceneComponents; -GPUBuffer* wiTranslator::vertexBuffer_Axis = nullptr; -GPUBuffer* wiTranslator::vertexBuffer_Plane = nullptr; -GPUBuffer* wiTranslator::vertexBuffer_Origin = nullptr; -int wiTranslator::vertexCount_Axis = 0; -int wiTranslator::vertexCount_Plane = 0; -int wiTranslator::vertexCount_Origin = 0; +GraphicsPSO* pso_solidpart = nullptr; +GraphicsPSO* pso_wirepart = nullptr; +wiGraphicsTypes::GPUBuffer* vertexBuffer_Axis = nullptr; +wiGraphicsTypes::GPUBuffer* vertexBuffer_Plane = nullptr; +wiGraphicsTypes::GPUBuffer* vertexBuffer_Origin = nullptr; +int vertexCount_Axis = 0; +int vertexCount_Plane = 0; +int vertexCount_Origin = 0; -wiTranslator::wiTranslator() :Transform() +Translator::Translator() :Transform() { prevPointer = XMFLOAT4(0, 0, 0, 0); @@ -33,6 +36,41 @@ wiTranslator::wiTranslator() :Transform() isTranslator = true; isScalator = false; isRotator = false; + + GraphicsDevice* device = wiRenderer::GetDevice(); + + if (pso_solidpart == nullptr) + { + GraphicsPSODesc desc; + + desc.vs = wiRenderer::vertexShaders[VSTYPE_LINE]; + desc.ps = wiRenderer::pixelShaders[PSTYPE_LINE]; + desc.il = wiRenderer::vertexLayouts[VLTYPE_LINE]; + desc.dss = wiRenderer::depthStencils[DSSTYPE_XRAY]; + desc.rs = wiRenderer::rasterizers[RSTYPE_DOUBLESIDED]; + desc.bs = wiRenderer::blendStates[BSTYPE_ADDITIVE]; + desc.pt = TRIANGLELIST; + + pso_solidpart = new GraphicsPSO; + device->CreateGraphicsPSO(&desc, pso_solidpart); + } + + if (pso_wirepart == nullptr) + { + GraphicsPSODesc desc; + + desc.vs = wiRenderer::vertexShaders[VSTYPE_LINE]; + desc.ps = wiRenderer::pixelShaders[PSTYPE_LINE]; + desc.il = wiRenderer::vertexLayouts[VLTYPE_LINE]; + desc.dss = wiRenderer::depthStencils[DSSTYPE_XRAY]; + desc.rs = wiRenderer::rasterizers[RSTYPE_WIRE_DOUBLESIDED_SMOOTH]; + desc.bs = wiRenderer::blendStates[BSTYPE_TRANSPARENT]; + desc.pt = LINELIST; + + pso_wirepart = new GraphicsPSO; + device->CreateGraphicsPSO(&desc, pso_wirepart); + } + if (vertexBuffer_Axis == nullptr) { { @@ -52,7 +90,7 @@ wiTranslator::wiTranslator() :Transform() ZeroMemory(&InitData, sizeof(InitData)); InitData.pSysMem = verts; vertexBuffer_Axis = new GPUBuffer; - wiRenderer::GetDevice()->CreateBuffer(&bd, &InitData, vertexBuffer_Axis); + device->CreateBuffer(&bd, &InitData, vertexBuffer_Axis); } } @@ -80,7 +118,7 @@ wiTranslator::wiTranslator() :Transform() ZeroMemory(&InitData, sizeof(InitData)); InitData.pSysMem = verts; vertexBuffer_Plane = new GPUBuffer; - wiRenderer::GetDevice()->CreateBuffer(&bd, &InitData, vertexBuffer_Plane); + device->CreateBuffer(&bd, &InitData, vertexBuffer_Plane); } } @@ -138,16 +176,16 @@ wiTranslator::wiTranslator() :Transform() ZeroMemory(&InitData, sizeof(InitData)); InitData.pSysMem = verts; vertexBuffer_Origin = new GPUBuffer; - wiRenderer::GetDevice()->CreateBuffer(&bd, &InitData, vertexBuffer_Origin); + device->CreateBuffer(&bd, &InitData, vertexBuffer_Origin); } } } -wiTranslator::~wiTranslator() +Translator::~Translator() { } -void wiTranslator::Update() +void Translator::Update() { dragStarted = false; dragEnded = false; @@ -378,21 +416,113 @@ void wiTranslator::Update() prevPointer = pointer; } +void Translator::Draw(Camera* camera, GRAPHICSTHREAD threadID) +{ + GraphicsDevice* device = wiRenderer::GetDevice(); + device->EventBegin("Editor - Translator", threadID); -bool wiTranslator::IsDragStarted() + XMMATRIX VP = camera->GetViewProjection(); + + wiRenderer::MiscCB sb; + + XMMATRIX mat = XMMatrixScaling(dist, dist, dist)*XMMatrixTranslation(translation.x, translation.y, translation.z) * VP; + XMMATRIX matX = XMMatrixTranspose(mat); + XMMATRIX matY = XMMatrixTranspose(XMMatrixRotationZ(XM_PIDIV2)*XMMatrixRotationY(XM_PIDIV2)*mat); + XMMATRIX matZ = XMMatrixTranspose(XMMatrixRotationY(-XM_PIDIV2)*XMMatrixRotationZ(-XM_PIDIV2)*mat); + + // Planes: + { + device->BindGraphicsPSO(pso_solidpart, threadID); + GPUBuffer* vbs[] = { + vertexBuffer_Plane, + }; + const UINT strides[] = { + sizeof(XMFLOAT4) + sizeof(XMFLOAT4), + }; + device->BindVertexBuffers(vbs, 0, ARRAYSIZE(vbs), strides, nullptr, threadID); + } + + // xy + sb.mTransform = matX; + sb.mColor = state == TRANSLATOR_XY ? XMFLOAT4(1, 1, 1, 1) : XMFLOAT4(0.2f, 0.2f, 0, 0.2f); + device->UpdateBuffer(wiRenderer::constantBuffers[CBTYPE_MISC], &sb, threadID); + device->Draw(vertexCount_Plane, 0, threadID); + + // xz + sb.mTransform = matZ; + sb.mColor = state == TRANSLATOR_XZ ? XMFLOAT4(1, 1, 1, 1) : XMFLOAT4(0.2f, 0.2f, 0, 0.2f); + device->UpdateBuffer(wiRenderer::constantBuffers[CBTYPE_MISC], &sb, threadID); + device->Draw(vertexCount_Plane, 0, threadID); + + // yz + sb.mTransform = matY; + sb.mColor = state == TRANSLATOR_YZ ? XMFLOAT4(1, 1, 1, 1) : XMFLOAT4(0.2f, 0.2f, 0, 0.2f); + device->UpdateBuffer(wiRenderer::constantBuffers[CBTYPE_MISC], &sb, threadID); + device->Draw(vertexCount_Plane, 0, threadID); + + // Lines: + { + device->BindGraphicsPSO(pso_wirepart, threadID); + GPUBuffer* vbs[] = { + vertexBuffer_Axis, + }; + const UINT strides[] = { + sizeof(XMFLOAT4) + sizeof(XMFLOAT4), + }; + device->BindVertexBuffers(vbs, 0, ARRAYSIZE(vbs), strides, nullptr, threadID); + } + + // x + sb.mTransform = matX; + sb.mColor = state == TRANSLATOR_X ? XMFLOAT4(1, 1, 1, 1) : XMFLOAT4(1, 0, 0, 1); + device->UpdateBuffer(wiRenderer::constantBuffers[CBTYPE_MISC], &sb, threadID); + device->Draw(vertexCount_Axis, 0, threadID); + + // y + sb.mTransform = matY; + sb.mColor = state == TRANSLATOR_Y ? XMFLOAT4(1, 1, 1, 1) : XMFLOAT4(0, 1, 0, 1); + device->UpdateBuffer(wiRenderer::constantBuffers[CBTYPE_MISC], &sb, threadID); + device->Draw(vertexCount_Axis, 0, threadID); + + // z + sb.mTransform = matZ; + sb.mColor = state == TRANSLATOR_Z ? XMFLOAT4(1, 1, 1, 1) : XMFLOAT4(0, 0, 1, 1); + device->UpdateBuffer(wiRenderer::constantBuffers[CBTYPE_MISC], &sb, threadID); + device->Draw(vertexCount_Axis, 0, threadID); + + // Origin: + { + device->BindGraphicsPSO(pso_solidpart, threadID); + GPUBuffer* vbs[] = { + vertexBuffer_Origin, + }; + const UINT strides[] = { + sizeof(XMFLOAT4) + sizeof(XMFLOAT4), + }; + device->BindVertexBuffers(vbs, 0, ARRAYSIZE(vbs), strides, nullptr, threadID); + sb.mTransform = XMMatrixTranspose(mat); + sb.mColor = state == TRANSLATOR_XYZ ? XMFLOAT4(1, 1, 1, 1) : XMFLOAT4(0.5f, 0.5f, 0.5f, 1); + device->UpdateBuffer(wiRenderer::constantBuffers[CBTYPE_MISC], &sb, threadID); + device->Draw(vertexCount_Origin, 0, threadID); + } + + device->EventEnd(threadID); +} + +bool Translator::IsDragStarted() { return dragStarted; } -XMFLOAT4X4 wiTranslator::GetDragStart() +XMFLOAT4X4 Translator::GetDragStart() { return dragStart; } -bool wiTranslator::IsDragEnded() +bool Translator::IsDragEnded() { return dragEnded; } -XMFLOAT4X4 wiTranslator::GetDragEnd() +XMFLOAT4X4 Translator::GetDragEnd() { return dragEnd; } diff --git a/WickedEngine/wiTranslator.h b/Editor/Translator.h similarity index 65% rename from WickedEngine/wiTranslator.h rename to Editor/Translator.h index 45804fc93..819efca42 100644 --- a/WickedEngine/wiTranslator.h +++ b/Editor/Translator.h @@ -2,7 +2,12 @@ #include "CommonInclude.h" #include "wiSceneComponents.h" -class wiTranslator : public wiSceneComponents::Transform +namespace wiSceneComponents +{ + struct Camera; +} + +class Translator : public wiSceneComponents::Transform { private: XMFLOAT4 prevPointer; @@ -11,10 +16,11 @@ private: bool dragStarted; bool dragEnded; public: - wiTranslator(); - ~wiTranslator(); + Translator(); + ~Translator(); void Update(); + void Draw(wiSceneComponents::Camera* camera, GRAPHICSTHREAD threadID); bool enabled; @@ -41,12 +47,5 @@ public: // Check if the drag ended in this exact frame bool IsDragEnded(); XMFLOAT4X4 GetDragEnd(); - - static wiGraphicsTypes::GPUBuffer* vertexBuffer_Axis; - static wiGraphicsTypes::GPUBuffer* vertexBuffer_Plane; - static wiGraphicsTypes::GPUBuffer* vertexBuffer_Origin; - static int vertexCount_Axis; - static int vertexCount_Plane; - static int vertexCount_Origin; }; diff --git a/Editor/images/camera.dds b/Editor/images/camera.dds index feba2ae1c..7764daa08 100644 Binary files a/Editor/images/camera.dds and b/Editor/images/camera.dds differ diff --git a/Editor/images/pointlight.dds b/Editor/images/pointlight.dds index 103ac02e4..b273e6c37 100644 Binary files a/Editor/images/pointlight.dds and b/Editor/images/pointlight.dds differ diff --git a/WickedEngine/WickedEngine.h b/WickedEngine/WickedEngine.h index c9d905c97..915450088 100644 --- a/WickedEngine/WickedEngine.h +++ b/WickedEngine/WickedEngine.h @@ -48,7 +48,6 @@ #include "wiWidget.h" #include "wiHashString.h" #include "wiWindowRegistration.h" -#include "wiTranslator.h" #include "wiArchive.h" #include "wiSpinLock.h" #include "wiRectPacker.h" diff --git a/WickedEngine/WickedEngine_SHARED.vcxitems b/WickedEngine/WickedEngine_SHARED.vcxitems index 5e0276cb3..916c8d764 100644 --- a/WickedEngine/WickedEngine_SHARED.vcxitems +++ b/WickedEngine/WickedEngine_SHARED.vcxitems @@ -366,7 +366,6 @@ - @@ -704,7 +703,6 @@ - diff --git a/WickedEngine/WickedEngine_SHARED.vcxitems.filters b/WickedEngine/WickedEngine_SHARED.vcxitems.filters index 95c8de94f..c95387e59 100644 --- a/WickedEngine/WickedEngine_SHARED.vcxitems.filters +++ b/WickedEngine/WickedEngine_SHARED.vcxitems.filters @@ -1011,9 +1011,6 @@ ENGINE\Tools - - ENGINE\Tools - ENGINE\Helpers @@ -1859,9 +1856,6 @@ ENGINE\Tools - - ENGINE\Tools - ENGINE\Helpers diff --git a/WickedEngine/wiRenderer.cpp b/WickedEngine/wiRenderer.cpp index 82aa5fc88..37f46f89c 100644 --- a/WickedEngine/wiRenderer.cpp +++ b/WickedEngine/wiRenderer.cpp @@ -17,7 +17,6 @@ #include "wiEnums.h" #include "wiRandom.h" #include "wiFont.h" -#include "wiTranslator.h" #include "wiRectPacker.h" #include "wiBackLog.h" #include "wiProfiler.h" @@ -102,13 +101,12 @@ Scene* wiRenderer::scene = nullptr; unordered_set wiRenderer::objectsWithTrails; unordered_set wiRenderer::emitterSystems; -std::vector wiRenderer::renderableTranslators; std::vector> wiRenderer::renderableBoxes; std::vector wiRenderer::renderableLines; std::unordered_map wiRenderer::frameCullings; -XMFLOAT4 wiRenderer::waterPlane; +XMFLOAT4 wiRenderer::waterPlane = XMFLOAT4(0, 1, 0, 0); wiSpinLock deferredMIPGenLock; unordered_set deferredMIPGens; @@ -1149,8 +1147,6 @@ GraphicsPSO* PSO_sky[SKYRENDERING_COUNT] = {}; enum DEBUGRENDERING { - DEBUGRENDERING_TRANSLATOR_WIREPART, - DEBUGRENDERING_TRANSLATOR_SOLIDPART, DEBUGRENDERING_ENVPROBE, DEBUGRENDERING_GRID, DEBUGRENDERING_CUBE, @@ -2046,24 +2042,6 @@ void wiRenderer::LoadShaders() switch (debug) { - case DEBUGRENDERING_TRANSLATOR_WIREPART: - desc.vs = vertexShaders[VSTYPE_LINE]; - desc.ps = pixelShaders[PSTYPE_LINE]; - desc.il = vertexLayouts[VLTYPE_LINE]; - desc.dss = depthStencils[DSSTYPE_XRAY]; - desc.rs = rasterizers[RSTYPE_WIRE_DOUBLESIDED_SMOOTH]; - desc.bs = blendStates[BSTYPE_TRANSPARENT]; - desc.pt = LINELIST; - break; - case DEBUGRENDERING_TRANSLATOR_SOLIDPART: - desc.vs = vertexShaders[VSTYPE_LINE]; - desc.ps = pixelShaders[PSTYPE_LINE]; - desc.il = vertexLayouts[VLTYPE_LINE]; - desc.dss = depthStencils[DSSTYPE_XRAY]; - desc.rs = rasterizers[RSTYPE_DOUBLESIDED]; - desc.bs = blendStates[BSTYPE_ADDITIVE]; - desc.pt = TRIANGLELIST; - break; case DEBUGRENDERING_ENVPROBE: desc.vs = vertexShaders[VSTYPE_SPHERE]; desc.ps = pixelShaders[PSTYPE_CUBEMAP]; @@ -3850,106 +3828,6 @@ void wiRenderer::DrawDebugWorld(Camera* camera, GRAPHICSTHREAD threadID) } - if (!renderableTranslators.empty()) - { - device->EventBegin("Translators", threadID); - - XMMATRIX VP = camera->GetViewProjection(); - - MiscCB sb; - for (auto& x : renderableTranslators) - { - if (!x->enabled) - continue; - - XMMATRIX mat = XMMatrixScaling(x->dist, x->dist, x->dist)*XMMatrixTranslation(x->translation.x, x->translation.y, x->translation.z)*VP; - XMMATRIX matX = XMMatrixTranspose(mat); - XMMATRIX matY = XMMatrixTranspose(XMMatrixRotationZ(XM_PIDIV2)*XMMatrixRotationY(XM_PIDIV2)*mat); - XMMATRIX matZ = XMMatrixTranspose(XMMatrixRotationY(-XM_PIDIV2)*XMMatrixRotationZ(-XM_PIDIV2)*mat); - - // Planes: - { - GPUBuffer* vbs[] = { - wiTranslator::vertexBuffer_Plane, - }; - const UINT strides[] = { - sizeof(XMFLOAT4) + sizeof(XMFLOAT4), - }; - device->BindVertexBuffers(vbs, 0, ARRAYSIZE(vbs), strides, nullptr, threadID); - device->BindGraphicsPSO(PSO_debug[DEBUGRENDERING_TRANSLATOR_SOLIDPART], threadID); - } - - // xy - sb.mTransform = matX; - sb.mColor = x->state == wiTranslator::TRANSLATOR_XY ? XMFLOAT4(1, 1, 1, 1) : XMFLOAT4(0.2f, 0.2f, 0, 0.2f); - device->UpdateBuffer(constantBuffers[CBTYPE_MISC], &sb, threadID); - device->Draw(wiTranslator::vertexCount_Plane, 0, threadID); - - // xz - sb.mTransform = matZ; - sb.mColor = x->state == wiTranslator::TRANSLATOR_XZ ? XMFLOAT4(1, 1, 1, 1) : XMFLOAT4(0.2f, 0.2f, 0, 0.2f); - device->UpdateBuffer(constantBuffers[CBTYPE_MISC], &sb, threadID); - device->Draw(wiTranslator::vertexCount_Plane, 0, threadID); - - // yz - sb.mTransform = matY; - sb.mColor = x->state == wiTranslator::TRANSLATOR_YZ ? XMFLOAT4(1, 1, 1, 1) : XMFLOAT4(0.2f, 0.2f, 0, 0.2f); - device->UpdateBuffer(constantBuffers[CBTYPE_MISC], &sb, threadID); - device->Draw(wiTranslator::vertexCount_Plane, 0, threadID); - - // Lines: - { - GPUBuffer* vbs[] = { - wiTranslator::vertexBuffer_Axis, - }; - const UINT strides[] = { - sizeof(XMFLOAT4) + sizeof(XMFLOAT4), - }; - device->BindVertexBuffers(vbs, 0, ARRAYSIZE(vbs), strides, nullptr, threadID); - device->BindGraphicsPSO(PSO_debug[DEBUGRENDERING_TRANSLATOR_WIREPART], threadID); - } - - // x - sb.mTransform = matX; - sb.mColor = x->state == wiTranslator::TRANSLATOR_X ? XMFLOAT4(1, 1, 1, 1) : XMFLOAT4(1, 0, 0, 1); - device->UpdateBuffer(constantBuffers[CBTYPE_MISC], &sb, threadID); - device->Draw(wiTranslator::vertexCount_Axis, 0, threadID); - - // y - sb.mTransform = matY; - sb.mColor = x->state == wiTranslator::TRANSLATOR_Y ? XMFLOAT4(1, 1, 1, 1) : XMFLOAT4(0, 1, 0, 1); - device->UpdateBuffer(constantBuffers[CBTYPE_MISC], &sb, threadID); - device->Draw(wiTranslator::vertexCount_Axis, 0, threadID); - - // z - sb.mTransform = matZ; - sb.mColor = x->state == wiTranslator::TRANSLATOR_Z ? XMFLOAT4(1, 1, 1, 1) : XMFLOAT4(0, 0, 1, 1); - device->UpdateBuffer(constantBuffers[CBTYPE_MISC], &sb, threadID); - device->Draw(wiTranslator::vertexCount_Axis, 0, threadID); - - // Origin: - { - GPUBuffer* vbs[] = { - wiTranslator::vertexBuffer_Origin, - }; - const UINT strides[] = { - sizeof(XMFLOAT4) + sizeof(XMFLOAT4), - }; - device->BindVertexBuffers(vbs, 0, ARRAYSIZE(vbs), strides, nullptr, threadID); - sb.mTransform = XMMatrixTranspose(mat); - sb.mColor = x->state == wiTranslator::TRANSLATOR_XYZ ? XMFLOAT4(1, 1, 1, 1) : XMFLOAT4(0.5f, 0.5f, 0.5f, 1); - device->UpdateBuffer(constantBuffers[CBTYPE_MISC], &sb, threadID); - device->BindGraphicsPSO(PSO_debug[DEBUGRENDERING_TRANSLATOR_SOLIDPART], threadID); - device->Draw(wiTranslator::vertexCount_Origin, 0, threadID); - } - } - - device->EventEnd(threadID); - - renderableTranslators.clear(); - } - - if (debugEnvProbes) { device->EventBegin("Debug EnvProbes", threadID); @@ -8285,10 +8163,6 @@ void wiRenderer::CreateImpostor(Mesh* mesh, GRAPHICSTHREAD threadID) UpdateCameraCB(cam, threadID); } -void wiRenderer::AddRenderableTranslator(wiTranslator* translator) -{ - renderableTranslators.push_back(translator); -} void wiRenderer::AddRenderableBox(const XMFLOAT4X4& boxMatrix, const XMFLOAT4& color) { renderableBoxes.push_back(pair(boxMatrix,color)); diff --git a/WickedEngine/wiRenderer.h b/WickedEngine/wiRenderer.h index e649807e4..c088bf85d 100644 --- a/WickedEngine/wiRenderer.h +++ b/WickedEngine/wiRenderer.h @@ -36,7 +36,7 @@ namespace wiSceneComponents class Lines; class Cube; -class wiTranslator; +class Translator; class wiParticle; class wiEmittedParticle; class wiHairParticle; @@ -545,10 +545,6 @@ public: static void CreateImpostor(wiSceneComponents::Mesh* mesh, GRAPHICSTHREAD threadID); - static std::vector renderableTranslators; - // Add translator to render in next frame - static void AddRenderableTranslator(wiTranslator* translator); - static std::vector> renderableBoxes; // Add box to render in next frame static void AddRenderableBox(const XMFLOAT4X4& boxMatrix, const XMFLOAT4& color = XMFLOAT4(1,1,1,1)); diff --git a/WickedEngine/wiVersion.cpp b/WickedEngine/wiVersion.cpp index 32a354303..2c19f1011 100644 --- a/WickedEngine/wiVersion.cpp +++ b/WickedEngine/wiVersion.cpp @@ -9,7 +9,7 @@ namespace wiVersion // minor features, major updates const int minor = 20; // minor bug fixes, alterations, refactors, updates - const int revision = 2; + const int revision = 3; long GetVersion()