summaryrefslogtreecommitdiff
path: root/game/water.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'game/water.cpp')
-rw-r--r--game/water.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/game/water.cpp b/game/water.cpp
index 527e85a..96f35cf 100644
--- a/game/water.cpp
+++ b/game/water.cpp
@@ -1,5 +1,6 @@
#include "water.h"
#include "game/geoData.h"
+#include "gfx/gl/gldebug.h"
#include "gfx/models/texture.h"
#include <algorithm>
#include <cstddef>
@@ -24,10 +25,10 @@ namespace glm {
}
template<>
-VertexArrayObject &
-VertexArrayObject::addAttribsFor<Water::Vertex>(const GLuint arrayBuffer, const GLuint divisor)
+Impl::VertexArrayConfigurator &
+Impl::VertexArrayConfigurator::addAttribsFor<Water::Vertex>(const GLuint divisor)
{
- return addAttribs<Water::Vertex, &Water::Vertex::pos>(arrayBuffer, divisor);
+ return addAttribs<Water::Vertex, &Water::Vertex::pos>(divisor);
}
Water::Water(std::shared_ptr<GeoData> tm) : geoData {std::move(tm)}, water {std::make_shared<Texture>("water.png")}
@@ -42,6 +43,7 @@ static constexpr GlobalDistance BORDER = TILE_SIZE / 2;
void
Water::generateMeshes()
{
+ glDebugScope _ {0};
// Map out where a water square needs to exist to cover all terrain faces with a low vertex
std::set<GlobalPosition2D> waterPositions;
std::for_each(geoData->vertices_sbegin(), geoData->vertices_end(), [this, &waterPositions](const auto vh) {
@@ -104,7 +106,8 @@ Water::tick(TickDuration dur)
void
Water::render(const SceneShader & shader, const Frustum &) const
{
+ glDebugScope _ {0};
shader.water.use(waveCycle);
- water->bind();
- meshes.apply(&MeshT<GlobalPosition3D>::Draw);
+ water->bind(0);
+ meshes.apply(&MeshT<GlobalPosition3D>::draw);
}