! * \brief Adds the renderable elements to the render queue * * \param renderQueue Queue to be added */
| 21 | * \param renderQueue Queue to be added |
| 22 | */ |
| 23 | void GraphicsComponent::AddToRenderQueue(Nz::AbstractRenderQueue* renderQueue) const |
| 24 | { |
| 25 | EnsureTransformMatrixUpdate(); |
| 26 | |
| 27 | RenderSystem& renderSystem = m_entity->GetWorld()->GetSystem<RenderSystem>(); |
| 28 | |
| 29 | for (const Renderable& object : m_renderables) |
| 30 | { |
| 31 | if (!object.dataUpdated) |
| 32 | { |
| 33 | object.data.transformMatrix = Nz::Matrix4f::ConcatenateAffine(renderSystem.GetCoordinateSystemMatrix(), Nz::Matrix4f::ConcatenateAffine(object.data.localMatrix, m_transformMatrix)); |
| 34 | object.renderable->UpdateData(&object.data); |
| 35 | object.dataUpdated = true; |
| 36 | } |
| 37 | |
| 38 | object.renderable->AddToRenderQueue(renderQueue, object.data); |
| 39 | } |
| 40 | } |
| 41 | |
| 42 | /*! |
| 43 | * \brief Attaches a renderable to the entity with a specific matrix |
no test coverage detected