diff options
Diffstat (limited to 'src/render/graphicshelpers/graphicshelpergl4.cpp')
-rw-r--r-- | src/render/graphicshelpers/graphicshelpergl4.cpp | 44 |
1 files changed, 27 insertions, 17 deletions
diff --git a/src/render/graphicshelpers/graphicshelpergl4.cpp b/src/render/graphicshelpers/graphicshelpergl4.cpp index 6972864cf..26f03ac8a 100644 --- a/src/render/graphicshelpers/graphicshelpergl4.cpp +++ b/src/render/graphicshelpers/graphicshelpergl4.cpp @@ -88,42 +88,42 @@ namespace Render { namespace { -GLbitfield memoryBarrierGLBitfield(QMemoryBarrier::BarrierTypes barriers) +GLbitfield memoryBarrierGLBitfield(QMemoryBarrier::Operations barriers) { GLbitfield bits = 0; - if (barriers.testFlag(QMemoryBarrier::AllBarrier)) { + if (barriers.testFlag(QMemoryBarrier::All)) { bits |= GL_ALL_BARRIER_BITS; return bits; } - if (barriers.testFlag(QMemoryBarrier::VertexAttributeArrayBarrier)) + if (barriers.testFlag(QMemoryBarrier::VertexAttributeArray)) bits |= GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT; - if (barriers.testFlag(QMemoryBarrier::ElementArrayBarrier)) + if (barriers.testFlag(QMemoryBarrier::ElementArray)) bits |= GL_ELEMENT_ARRAY_BARRIER_BIT; - if (barriers.testFlag(QMemoryBarrier::UniformBarrier)) + if (barriers.testFlag(QMemoryBarrier::Uniform)) bits |= GL_UNIFORM_BARRIER_BIT; - if (barriers.testFlag(QMemoryBarrier::TextureFetchBarrier)) + if (barriers.testFlag(QMemoryBarrier::TextureFetch)) bits |= GL_TEXTURE_FETCH_BARRIER_BIT; - if (barriers.testFlag(QMemoryBarrier::ShaderImageAccessBarrier)) + if (barriers.testFlag(QMemoryBarrier::ShaderImageAccess)) bits |= GL_SHADER_IMAGE_ACCESS_BARRIER_BIT; - if (barriers.testFlag(QMemoryBarrier::CommandBarrier)) + if (barriers.testFlag(QMemoryBarrier::Command)) bits |= GL_COMMAND_BARRIER_BIT; - if (barriers.testFlag(QMemoryBarrier::PixelBufferBarrier)) + if (barriers.testFlag(QMemoryBarrier::PixelBuffer)) bits |= GL_PIXEL_BUFFER_BARRIER_BIT; - if (barriers.testFlag(QMemoryBarrier::TextureUpdateBarrier)) + if (barriers.testFlag(QMemoryBarrier::TextureUpdate)) bits |= GL_TEXTURE_UPDATE_BARRIER_BIT; - if (barriers.testFlag(QMemoryBarrier::BufferUpdateBarrier)) + if (barriers.testFlag(QMemoryBarrier::BufferUpdate)) bits |= GL_BUFFER_UPDATE_BARRIER_BIT; - if (barriers.testFlag(QMemoryBarrier::FrameBufferBarrier)) + if (barriers.testFlag(QMemoryBarrier::FrameBuffer)) bits |= GL_FRAMEBUFFER_BARRIER_BIT; - if (barriers.testFlag(QMemoryBarrier::TransformFeedbackBarrier)) + if (barriers.testFlag(QMemoryBarrier::TransformFeedback)) bits |= GL_TRANSFORM_FEEDBACK_BARRIER_BIT; - if (barriers.testFlag(QMemoryBarrier::AtomicCounterBarrier)) + if (barriers.testFlag(QMemoryBarrier::AtomicCounter)) bits |= GL_ATOMIC_COUNTER_BARRIER_BIT; - if (barriers.testFlag(QMemoryBarrier::ShaderStorageBarrier)) + if (barriers.testFlag(QMemoryBarrier::ShaderStorage)) bits |= GL_SHADER_STORAGE_BARRIER_BIT; - if (barriers.testFlag(QMemoryBarrier::QueryBufferBarrier)) + if (barriers.testFlag(QMemoryBarrier::QueryBuffer)) bits |= GL_QUERY_BUFFER_BARRIER_BIT; return bits; @@ -1047,7 +1047,7 @@ GLint GraphicsHelperGL4::maxClipPlaneCount() return max; } -void GraphicsHelperGL4::memoryBarrier(QMemoryBarrier::BarrierTypes barriers) +void GraphicsHelperGL4::memoryBarrier(QMemoryBarrier::Operations barriers) { m_funcs->glMemoryBarrier(memoryBarrierGLBitfield(barriers)); } @@ -1128,6 +1128,16 @@ void GraphicsHelperGL4::dispatchCompute(GLuint wx, GLuint wy, GLuint wz) m_funcs->glDispatchCompute(wx, wy, wz); } +char *GraphicsHelperGL4::mapBuffer(GLenum target) +{ + return static_cast<char*>(m_funcs->glMapBuffer(target, GL_READ_WRITE)); +} + +GLboolean GraphicsHelperGL4::unmapBuffer(GLenum target) +{ + return m_funcs->glUnmapBuffer(target); +} + void GraphicsHelperGL4::blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) { m_funcs->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); |