From 8b81d0ac3f4a973bd3581aa140bdcf53bb64f679 Mon Sep 17 00:00:00 2001 From: vlj Date: Sat, 16 Aug 2014 00:33:47 +0200 Subject: [PATCH] Map UBO to change its value. --- src/graphics/render.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/graphics/render.cpp b/src/graphics/render.cpp index 28544dc33..ad3dcad4f 100644 --- a/src/graphics/render.cpp +++ b/src/graphics/render.cpp @@ -584,7 +584,8 @@ void IrrDriver::computeCameraMatrix(scene::ICameraSceneNode * const camnode, siz 50., }; - float *tmp = new float[18 * 8]; + glBindBuffer(GL_UNIFORM_BUFFER, SharedObject::ViewProjectionMatrixesUBO); + float *tmp = (float *) glMapBufferRange(GL_UNIFORM_BUFFER, 0, (16 * 8 + 2) * sizeof(float), GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_BUFFER_BIT); memcpy(tmp, irr_driver->getViewMatrix().pointer(), 16 * sizeof(float)); memcpy(&tmp[16], irr_driver->getProjMatrix().pointer(), 16 * sizeof(float)); @@ -710,10 +711,7 @@ void IrrDriver::computeCameraMatrix(scene::ICameraSceneNode * const camnode, siz tmp[128] = float(width); tmp[129] = float(height); - - glBindBuffer(GL_UNIFORM_BUFFER, SharedObject::ViewProjectionMatrixesUBO); - glBufferSubData(GL_UNIFORM_BUFFER, 0, (16 * 8 + 2) * sizeof(float), tmp); - delete []tmp; + glUnmapBuffer(GL_UNIFORM_BUFFER); }