From 00fc3cb9b2c06026fab0e4760609fe02e027b6df Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 8 Mar 2026 16:02:56 +0000 Subject: Move all low level texture operations to DSA helpers in glTexture --- game/scenary/foliage.cpp | 16 ++++++++-------- game/scenary/foliage.h | 4 ++-- game/scenary/illuminator.cpp | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) (limited to 'game/scenary') diff --git a/game/scenary/foliage.cpp b/game/scenary/foliage.cpp index bd88a06..528d3e1 100644 --- a/game/scenary/foliage.cpp +++ b/game/scenary/foliage.cpp @@ -43,8 +43,8 @@ Foliage::postLoad() const auto & size = bodyMesh->getDimensions().size; billboardSize = billboardTextureSizeForObject(size); - ShadowStenciller::configureStencilTexture(shadowStencil, billboardSize, billboardSize); - BillboardPainter::configureBillBoardTextures(billboard, billboardSize, billboardSize); + ShadowStenciller::configureStencilTexture(shadowStencil, {billboardSize, billboardSize}); + BillboardPainter::configureBillBoardTextures(billboard, {billboardSize, billboardSize}); useMeshClipDist = (ASSUMED_VIEWPORT * OVER_SAMPLE_MULTIPLIER * size) / static_cast(billboardSize); } @@ -98,9 +98,9 @@ Foliage::render(const SceneShader & shader, const Frustum &) const glDebugScope _ {0, "Billboard"}; const auto dimensions = bodyMesh->getDimensions(); shader.billboard.use(dimensions.size, dimensions.centre); - billboard[0].bind(GL_TEXTURE_2D_ARRAY, GL_TEXTURE0); - billboard[1].bind(GL_TEXTURE_2D_ARRAY, GL_TEXTURE1); - billboard[2].bind(GL_TEXTURE_2D_ARRAY, GL_TEXTURE2); + billboard[0].bind(0); + billboard[1].bind(1); + billboard[2].bind(2); glBindVertexArray(instancePointVAO); instancePointVAO.useBuffer(0, instances); glDrawArrays(GL_POINTS, static_cast(instancePartitions.second.first), static_cast(count)); @@ -110,7 +110,7 @@ Foliage::render(const SceneShader & shader, const Frustum &) const glDebugScope _ {0, "Mesh"}; shader.basicInst.use(); if (texture) { - texture->bind(); + texture->bind(0); } instanceVAO.useBuffer(1, instances); bodyMesh->drawInstanced(instanceVAO, static_cast(count)); @@ -127,7 +127,7 @@ Foliage::shadows(const ShadowMapper & mapper, const Frustum &) const if (const auto count = instancePartitions.second.second - instancePartitions.second.first) { const auto dimensions = bodyMesh->getDimensions(); mapper.stencilShadowProgram.use(dimensions.centre, dimensions.size); - shadowStencil.bind(GL_TEXTURE_2D_ARRAY, GL_TEXTURE0); + shadowStencil.bind(0); glBindVertexArray(instancePointVAO); instancePointVAO.useBuffer(0, instances); glDrawArrays(GL_POINTS, static_cast(instancePartitions.second.first), static_cast(count)); @@ -135,7 +135,7 @@ Foliage::shadows(const ShadowMapper & mapper, const Frustum &) const } if (const auto count = instancePartitions.second.first) { if (texture) { - texture->bind(GL_TEXTURE3); + texture->bind(3); mapper.dynamicPointInstWithTextures.use(); } else { diff --git a/game/scenary/foliage.h b/game/scenary/foliage.h index 3d73573..bf98d55 100644 --- a/game/scenary/foliage.h +++ b/game/scenary/foliage.h @@ -38,9 +38,9 @@ protected: GLsizei billboardSize {}; RelativeDistance useMeshClipDist {}; mutable Direction2D shadowStencilDir {std::numeric_limits::infinity()}; - glTexture shadowStencil; + glTexture shadowStencil; mutable Angle billboardAngle = std::numeric_limits::infinity(); - glTextures<3> billboard; + glTextures billboard; private: InstanceVertices::PartitionResult instancePartitions; diff --git a/game/scenary/illuminator.cpp b/game/scenary/illuminator.cpp index 0c5919a..382cc60 100644 --- a/game/scenary/illuminator.cpp +++ b/game/scenary/illuminator.cpp @@ -72,7 +72,7 @@ Illuminator::render(const SceneShader & shader, const Frustum &) const if (const auto count = instances.size()) { shader.basicInst.use(); if (texture) { - texture->bind(); + texture->bind(0); } instanceVAO.useBuffer(1, instances); bodyMesh->drawInstanced(instanceVAO, static_cast(count)); -- cgit v1.3