diff options
| author | Anton Novoselov <[email protected]> | 2017-08-14 16:41:28 +0300 |
|---|---|---|
| committer | Anton Novoselov <[email protected]> | 2017-08-14 16:41:28 +0300 |
| commit | 9a1c1d814f3fa0b54b49d90b43130c02bc280f44 (patch) | |
| tree | eae6ead883173c66619c30b6a1ed085f3cb70f4d /tools/ArtistTools/source/BlastPlugin/SampleBase/renderer/Renderable.cpp | |
| parent | Updated to CL 22627414: (diff) | |
| download | blast-9a1c1d814f3fa0b54b49d90b43130c02bc280f44.tar.xz blast-9a1c1d814f3fa0b54b49d90b43130c02bc280f44.zip | |
Updated to CL 22661993:
* docs updates
* authoring fixes
* asset view in sample fix
* latest blast_tools_and_samples-windows.zip
Diffstat (limited to 'tools/ArtistTools/source/BlastPlugin/SampleBase/renderer/Renderable.cpp')
| -rw-r--r-- | tools/ArtistTools/source/BlastPlugin/SampleBase/renderer/Renderable.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tools/ArtistTools/source/BlastPlugin/SampleBase/renderer/Renderable.cpp b/tools/ArtistTools/source/BlastPlugin/SampleBase/renderer/Renderable.cpp index d51101f..b72c3b0 100644 --- a/tools/ArtistTools/source/BlastPlugin/SampleBase/renderer/Renderable.cpp +++ b/tools/ArtistTools/source/BlastPlugin/SampleBase/renderer/Renderable.cpp @@ -50,6 +50,33 @@ void Renderable::setMaterial(RenderMaterial& material) void Renderable::render(Renderer& renderer, bool depthStencilOnly) const { + if (renderer.bFetchSelection) + { + RenderMaterial::InstancePtr materialInstance = renderer.getSelectionRenderMaterialInstance(); + if (!materialInstance->isValid()) + { + PX_ALWAYS_ASSERT(); + return; + } + + materialInstance->bind(*renderer.m_context, 0); + + // setup object CB + { + D3D11_MAPPED_SUBRESOURCE mappedResource; + renderer.m_context->Map(renderer.m_objectCB, 0, D3D11_MAP_WRITE_DISCARD, 0, &mappedResource); + Renderer::CBObject* objectBuffer = (Renderer::CBObject*)mappedResource.pData; + objectBuffer->worldMatrix = PxMat44ToXMMATRIX(getModelMatrix()); + // use selected to store mUniqueId + objectBuffer->selected = m_mesh.mUniqueId; + renderer.m_context->Unmap(renderer.m_objectCB, 0); + } + + m_mesh.render(*renderer.m_context); + + return; + } + if (!m_materialInstance->isValid()) { PX_ALWAYS_ASSERT(); |