diff options
| author | Dan Goodliffe <dan@randomdan.homeip.net> | 2026-03-07 11:42:46 +0000 |
|---|---|---|
| committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2026-03-07 11:42:46 +0000 |
| commit | c89a633f59d0e393695c10f28c4ba8635eadffba (patch) | |
| tree | 0e06a281efc2da637ebc19dca38f160e86516d9f /game/vehicles/railVehicleClass.cpp | |
| parent | Remove VertexArrayObject and supporting non-DSA gl_traits helpers (diff) | |
| download | ilt-c89a633f59d0e393695c10f28c4ba8635eadffba.tar.bz2 ilt-c89a633f59d0e393695c10f28c4ba8635eadffba.tar.xz ilt-c89a633f59d0e393695c10f28c4ba8635eadffba.zip | |
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.
Diffstat (limited to 'game/vehicles/railVehicleClass.cpp')
| -rw-r--r-- | game/vehicles/railVehicleClass.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
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<LocationVertex, &LocationVertex::body, &LocationVertex::bodyPos>(1, instances.bufferName()); + .addAttribs<LocationVertex, &LocationVertex::body, &LocationVertex::bodyPos>(1); bogies.front() ->configureVAO(instancesBogiesVAO.front(), 0) - .addAttribs<LocationVertex, &LocationVertex::front, &LocationVertex::frontPos>(1, instances.bufferName()); + .addAttribs<LocationVertex, &LocationVertex::front, &LocationVertex::frontPos>(1); bogies.back() ->configureVAO(instancesBogiesVAO.back(), 0) - .addAttribs<LocationVertex, &LocationVertex::back, &LocationVertex::backPos>(1, instances.bufferName()); + .addAttribs<LocationVertex, &LocationVertex::back, &LocationVertex::backPos>(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); |
