From aa74c185f3dc3e8c9258ff29319c4f1049c80909 Mon Sep 17 00:00:00 2001 From: Themaister Date: Tue, 2 Oct 2012 22:18:53 +0200 Subject: [PATCH] Use glMapBuffer to copy data to texref bufs. --- gfx/gl.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/gfx/gl.c b/gfx/gl.c index 5d1b8dcfcf..81a4125369 100644 --- a/gfx/gl.c +++ b/gfx/gl.c @@ -892,16 +892,11 @@ static inline void gl_copy_frame(gl_t *gl, const void *frame, unsigned width, un const uint8_t *frame_copy = frame; size_t frame_copy_size = width * gl->base_size; - for (unsigned h = 0; h < height; h++) - { - glBufferSubData(GL_TEXTURE_REFERENCE_BUFFER_SCE, - buffer_addr, - frame_copy_size, - frame_copy); + uint8_t *buffer = (uint8_t*)glMapBuffer(GL_TEXTURE_REFERENCE_BUFFER_SCE, GL_WRITE_ONLY) + buffer_addr; + for (unsigned h = 0; h < height; h++, buffer += buffer_stride, frame_copy += pitch) + memcpy(buffer, frame_copy, frame_copy_size); - frame_copy += pitch; - buffer_addr += buffer_stride; - } + glUnmapBuffer(GL_TEXTURE_REFERENCE_BUFFER_SCE); } static void gl_init_textures(gl_t *gl)