From b3f0df24c98dc6a7a341271dd85451345f2be1a7 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sat, 31 Jan 2026 01:49:07 +0000 Subject: Initial commit using tesselation shader to create curves Disables glslangValidator because of file extension mess up. --- game/network/rail.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'game/network/rail.cpp') diff --git a/game/network/rail.cpp b/game/network/rail.cpp index c0e597d..f265d6b 100644 --- a/game/network/rail.cpp +++ b/game/network/rail.cpp @@ -156,12 +156,12 @@ template<> NetworkLinkHolder::NetworkLinkHolder() namespace { template void - renderType(const NetworkLinkHolder & networkLinks, auto & shader) + renderType(const NetworkLinkHolder & networkLinks, auto & shader, GLenum mode) { if (auto count = networkLinks.vertices.size()) { shader.use(RAIL_CROSS_SECTION, RAIL_TEXTURE_POS); glBindVertexArray(networkLinks.vao); - glDrawArrays(GL_POINTS, 0, static_cast(count)); + glDrawArrays(mode, 0, static_cast(count)); } }; } @@ -169,12 +169,13 @@ namespace { void RailLinks::render(const SceneShader & shader, const Frustum &) const { - if (!links.empty()) { + if (auto _ = glDebugScope(0); !links.empty()) { texture->bind(); glEnable(GL_POLYGON_OFFSET_FILL); glPolygonOffset(-1, 0); - renderType(*this, shader.networkStraight); - renderType(*this, shader.networkCurve); + renderType(*this, shader.networkStraight, GL_POINTS); + glPatchParameteri(GL_PATCH_VERTICES, 1); + renderType(*this, shader.networkCurve, GL_PATCHES); glDisable(GL_POLYGON_OFFSET_FILL); glBindVertexArray(0); } -- cgit v1.2.3