Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/source/renderer/OverlayRenderer.cpp
Show First 20 Lines • Show All 559 Lines • ▼ Show 20 Lines | deviceCommandContext->SetTexture( | ||||
baseTexBindingSlot, maskPair.m_Texture->GetBackendTexture()); | baseTexBindingSlot, maskPair.m_Texture->GetBackendTexture()); | ||||
deviceCommandContext->SetTexture( | deviceCommandContext->SetTexture( | ||||
maskTexBindingSlot, maskPair.m_TextureMask->GetBackendTexture()); | maskTexBindingSlot, maskPair.m_TextureMask->GetBackendTexture()); | ||||
// TODO: move setting format out of the loop, we might want move the offset | // TODO: move setting format out of the loop, we might want move the offset | ||||
// to the index offset when it's supported. | // to the index offset when it's supported. | ||||
deviceCommandContext->SetVertexAttributeFormat( | deviceCommandContext->SetVertexAttributeFormat( | ||||
Renderer::Backend::VertexAttributeStream::POSITION, | Renderer::Backend::VertexAttributeStream::POSITION, | ||||
m->quadAttributePos.format, firstVertexOffset + m->quadAttributePos.offset, vertexStride, 0); | m->quadAttributePos.format, firstVertexOffset + m->quadAttributePos.offset, vertexStride, | ||||
Renderer::Backend::VertexAttributeRate::PER_VERTEX, 0); | |||||
deviceCommandContext->SetVertexAttributeFormat( | deviceCommandContext->SetVertexAttributeFormat( | ||||
Renderer::Backend::VertexAttributeStream::COLOR, | Renderer::Backend::VertexAttributeStream::COLOR, | ||||
m->quadAttributeColor.format, firstVertexOffset + m->quadAttributeColor.offset, vertexStride, 0); | m->quadAttributeColor.format, firstVertexOffset + m->quadAttributeColor.offset, vertexStride, | ||||
Renderer::Backend::VertexAttributeRate::PER_VERTEX, 0); | |||||
deviceCommandContext->SetVertexAttributeFormat( | deviceCommandContext->SetVertexAttributeFormat( | ||||
Renderer::Backend::VertexAttributeStream::UV0, | Renderer::Backend::VertexAttributeStream::UV0, | ||||
m->quadAttributeUV.format, firstVertexOffset + m->quadAttributeUV.offset, vertexStride, 0); | m->quadAttributeUV.format, firstVertexOffset + m->quadAttributeUV.offset, vertexStride, | ||||
Renderer::Backend::VertexAttributeRate::PER_VERTEX, 0); | |||||
deviceCommandContext->SetVertexAttributeFormat( | deviceCommandContext->SetVertexAttributeFormat( | ||||
Renderer::Backend::VertexAttributeStream::UV1, | Renderer::Backend::VertexAttributeStream::UV1, | ||||
m->quadAttributeUV.format, firstVertexOffset + m->quadAttributeUV.offset, vertexStride, 0); | m->quadAttributeUV.format, firstVertexOffset + m->quadAttributeUV.offset, vertexStride, | ||||
Renderer::Backend::VertexAttributeRate::PER_VERTEX, 0); | |||||
deviceCommandContext->SetVertexBuffer(0, m->quadVertices.GetBuffer()); | deviceCommandContext->SetVertexBuffer(0, m->quadVertices.GetBuffer()); | ||||
deviceCommandContext->SetIndexBuffer(m->quadIndices.GetBuffer()); | deviceCommandContext->SetIndexBuffer(m->quadIndices.GetBuffer()); | ||||
deviceCommandContext->DrawIndexed(m->quadIndices.GetOffset() + batchRenderData.m_IndicesBase, batchNumQuads * 6, 0); | deviceCommandContext->DrawIndexed(m->quadIndices.GetOffset() + batchRenderData.m_IndicesBase, batchNumQuads * 6, 0); | ||||
g_Renderer.GetStats().m_DrawCalls++; | g_Renderer.GetStats().m_DrawCalls++; | ||||
g_Renderer.GetStats().m_OverlayTris += batchNumQuads*2; | g_Renderer.GetStats().m_OverlayTris += batchNumQuads*2; | ||||
▲ Show 20 Lines • Show All 42 Lines • ▼ Show 20 Lines | const CVector2D uvs[6] = | ||||
{1.0f, 0.0f}, | {1.0f, 0.0f}, | ||||
{0.0f, 1.0f}, | {0.0f, 1.0f}, | ||||
{1.0f, 0.0f}, | {1.0f, 0.0f}, | ||||
{0.0f, 0.0f}, | {0.0f, 0.0f}, | ||||
}; | }; | ||||
deviceCommandContext->SetVertexAttributeFormat( | deviceCommandContext->SetVertexAttributeFormat( | ||||
Renderer::Backend::VertexAttributeStream::POSITION, | Renderer::Backend::VertexAttributeStream::POSITION, | ||||
Renderer::Backend::Format::R32G32B32_SFLOAT, 0, 0, 0); | Renderer::Backend::Format::R32G32B32_SFLOAT, 0, 0, | ||||
Renderer::Backend::VertexAttributeRate::PER_VERTEX, 0); | |||||
deviceCommandContext->SetVertexAttributeFormat( | deviceCommandContext->SetVertexAttributeFormat( | ||||
Renderer::Backend::VertexAttributeStream::UV0, | Renderer::Backend::VertexAttributeStream::UV0, | ||||
Renderer::Backend::Format::R32G32_SFLOAT, 0, 0, 1); | Renderer::Backend::Format::R32G32_SFLOAT, 0, 0, | ||||
Renderer::Backend::VertexAttributeRate::PER_VERTEX, 1); | |||||
deviceCommandContext->SetVertexBufferData(1, &uvs[0]); | deviceCommandContext->SetVertexBufferData( | ||||
1, &uvs[0], std::size(uvs) * sizeof(uvs[0])); | |||||
const int32_t baseTexBindingSlot = shader->GetBindingSlot(str_baseTex); | const int32_t baseTexBindingSlot = shader->GetBindingSlot(str_baseTex); | ||||
const int32_t colorMulBindingSlot = shader->GetBindingSlot(str_colorMul); | const int32_t colorMulBindingSlot = shader->GetBindingSlot(str_colorMul); | ||||
for (size_t i = 0; i < m->sprites.size(); ++i) | for (size_t i = 0; i < m->sprites.size(); ++i) | ||||
{ | { | ||||
SOverlaySprite* sprite = m->sprites[i]; | SOverlaySprite* sprite = m->sprites[i]; | ||||
if (!i || sprite->m_Texture != m->sprites[i - 1]->m_Texture) | if (!i || sprite->m_Texture != m->sprites[i - 1]->m_Texture) | ||||
Show All 11 Lines | const CVector3D position[6] = | ||||
sprite->m_Position + right*sprite->m_X0 + up*sprite->m_Y0, | sprite->m_Position + right*sprite->m_X0 + up*sprite->m_Y0, | ||||
sprite->m_Position + right*sprite->m_X1 + up*sprite->m_Y0, | sprite->m_Position + right*sprite->m_X1 + up*sprite->m_Y0, | ||||
sprite->m_Position + right*sprite->m_X1 + up*sprite->m_Y1, | sprite->m_Position + right*sprite->m_X1 + up*sprite->m_Y1, | ||||
sprite->m_Position + right*sprite->m_X0 + up*sprite->m_Y0, | sprite->m_Position + right*sprite->m_X0 + up*sprite->m_Y0, | ||||
sprite->m_Position + right*sprite->m_X1 + up*sprite->m_Y1, | sprite->m_Position + right*sprite->m_X1 + up*sprite->m_Y1, | ||||
sprite->m_Position + right*sprite->m_X0 + up*sprite->m_Y1 | sprite->m_Position + right*sprite->m_X0 + up*sprite->m_Y1 | ||||
}; | }; | ||||
deviceCommandContext->SetVertexBufferData(0, &position[0].X); | deviceCommandContext->SetVertexBufferData( | ||||
0, &position[0].X, std::size(position) * sizeof(position[0])); | |||||
deviceCommandContext->Draw(0, 6); | deviceCommandContext->Draw(0, 6); | ||||
g_Renderer.GetStats().m_DrawCalls++; | g_Renderer.GetStats().m_DrawCalls++; | ||||
g_Renderer.GetStats().m_OverlayTris += 2; | g_Renderer.GetStats().m_OverlayTris += 2; | ||||
} | } | ||||
deviceCommandContext->EndPass(); | deviceCommandContext->EndPass(); | ||||
▲ Show 20 Lines • Show All 91 Lines • ▼ Show 20 Lines | const CMatrix3D transform = | ||||
g_Renderer.GetSceneRenderer().GetViewCamera().GetViewProjection(); | g_Renderer.GetSceneRenderer().GetViewCamera().GetViewProjection(); | ||||
deviceCommandContext->SetUniform( | deviceCommandContext->SetUniform( | ||||
shader->GetBindingSlot(str_transform), transform.AsFloatArray()); | shader->GetBindingSlot(str_transform), transform.AsFloatArray()); | ||||
m->GenerateSphere(); | m->GenerateSphere(); | ||||
deviceCommandContext->SetVertexAttributeFormat( | deviceCommandContext->SetVertexAttributeFormat( | ||||
Renderer::Backend::VertexAttributeStream::POSITION, | Renderer::Backend::VertexAttributeStream::POSITION, | ||||
Renderer::Backend::Format::R32G32B32_SFLOAT, 0, 0, 0); | Renderer::Backend::Format::R32G32B32_SFLOAT, 0, 0, | ||||
Renderer::Backend::VertexAttributeRate::PER_VERTEX, 0); | |||||
deviceCommandContext->SetVertexBufferData(0, m->sphereVertexes.data()); | deviceCommandContext->SetVertexBufferData( | ||||
deviceCommandContext->SetIndexBufferData(m->sphereIndexes.data()); | 0, m->sphereVertexes.data(), m->sphereVertexes.size() * sizeof(m->sphereVertexes[0])); | ||||
deviceCommandContext->SetIndexBufferData( | |||||
m->sphereIndexes.data(), m->sphereIndexes.size() * sizeof(m->sphereIndexes[0])); | |||||
for (size_t i = 0; i < m->spheres.size(); ++i) | for (size_t i = 0; i < m->spheres.size(); ++i) | ||||
{ | { | ||||
SOverlaySphere* sphere = m->spheres[i]; | SOverlaySphere* sphere = m->spheres[i]; | ||||
CMatrix3D instancingTransform; | CMatrix3D instancingTransform; | ||||
instancingTransform.SetIdentity(); | instancingTransform.SetIdentity(); | ||||
instancingTransform.Scale( | instancingTransform.Scale( | ||||
Show All 18 Lines |
Wildfire Games · Phabricator