From c89a633f59d0e393695c10f28c4ba8635eadffba Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sat, 7 Mar 2026 11:42:46 +0000 Subject: Replace glContainer with glAllocator glContainer is no longer required, as we can use std::vector with a custom allocator which uses OpenGL buffers for storage. Minor irritation is that the mapped buffers aren't guaranteed to be flushed in the tests, so sometimes we're missing bits in a test render. --- game/vehicles/railVehicleClass.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'game/vehicles/railVehicleClass.cpp') diff --git a/game/vehicles/railVehicleClass.cpp b/game/vehicles/railVehicleClass.cpp index a11b435..100073d 100644 --- a/game/vehicles/railVehicleClass.cpp +++ b/game/vehicles/railVehicleClass.cpp @@ -34,13 +34,13 @@ RailVehicleClass::postLoad() { texture = getTexture(); bodyMesh->configureVAO(instanceVAO, 0) - .addAttribs(1, instances.bufferName()); + .addAttribs(1); bogies.front() ->configureVAO(instancesBogiesVAO.front(), 0) - .addAttribs(1, instances.bufferName()); + .addAttribs(1); bogies.back() ->configureVAO(instancesBogiesVAO.back(), 0) - .addAttribs(1, instances.bufferName()); + .addAttribs(1); static_assert(sizeof(LocationVertex) == 144UL); } @@ -52,6 +52,10 @@ RailVehicleClass::render(const SceneShader & shader, const Frustum &) const texture->bind(); } shader.basicInst.use(); + const auto instancesBuffer = instances.bufferName(); + glVertexArrayVertexBuffer(instanceVAO, 1, instancesBuffer, 0, sizeof(LocationVertex)); + glVertexArrayVertexBuffer(instancesBogiesVAO.front(), 1, instancesBuffer, 0, sizeof(LocationVertex)); + glVertexArrayVertexBuffer(instancesBogiesVAO.back(), 1, instancesBuffer, 0, sizeof(LocationVertex)); bodyMesh->DrawInstanced(instanceVAO, count); bogies.front()->DrawInstanced(instancesBogiesVAO.front(), count); bogies.back()->DrawInstanced(instancesBogiesVAO.back(), count); -- cgit v1.3