1212#include " math/AABB.h"
1313#include " math/Plane.h"
1414#include " video/Camera.h"
15+ #include " video/Renderer.h"
1516#include " video/RendererInterface.h"
1617#include " video/ScopedState.h"
1718#include " video/Shader.h"
@@ -37,6 +38,7 @@ bool GridRenderer::init() {
3738 }
3839 core_assert_always (_uniformBlock.create (_uniformBlockData));
3940 core_assert_always (_planeShader.setUniformblock (_uniformBlock.getUniformblockUniformBuffer ()));
41+ _planeVAO = video::genVertexArray ();
4042
4143 return true ;
4244}
@@ -202,19 +204,19 @@ void GridRenderer::renderPlane(const video::Camera &camera) {
202204 if (!_renderPlane) {
203205 return ;
204206 }
207+
208+ video::ScopedState facecull (video::State::CullFace, false );
209+ video::ScopedState depthdepth (video::State::DepthTest, true );
205210 video::ScopedShader scopedShader (_planeShader);
206- _uniformBlockData.cameraPos = camera.eye ();
211+ video::bindVertexArray (_planeVAO);
212+
213+ _uniformBlockData.cameraPos = camera.worldPosition ();
207214 _uniformBlockData.proj = camera.projectionMatrix ();
208215 _uniformBlockData.view = camera.viewMatrix ();
216+ // video::bindBuffer(video::BufferType::UniformBuffer, _uniformBlock.getUniformblockUniformBuffer().handle());
209217 core_assert_always (_uniformBlock.update (_uniformBlockData));
210218 core_assert_always (_planeShader.setUniformblock (_uniformBlock.getUniformblockUniformBuffer ()));
211219
212- video::bindVertexArray (video::InvalidId);
213- core_assert (video::boundVertexArray () == video::InvalidId);
214- video::unbindBuffer (video::BufferType::IndexBuffer);
215- core_assert (video::boundBuffer (video::BufferType::IndexBuffer) == video::InvalidId);
216- video::unbindBuffer (video::BufferType::ArrayBuffer);
217- core_assert (video::boundBuffer (video::BufferType::ArrayBuffer) == video::InvalidId);
218220 video::drawArrays (video::Primitive::TriangleStrip, 4 );
219221}
220222
@@ -239,6 +241,7 @@ void GridRenderer::shutdown() {
239241 _shapeBuilder.shutdown ();
240242 _planeShader.shutdown ();
241243 _uniformBlock.shutdown ();
244+ video::deleteVertexArray (_planeVAO);
242245}
243246
244247} // namespace render
0 commit comments