From a5965635a69fc4a0f58aaeae8c2430c3925bb574 Mon Sep 17 00:00:00 2001 From: Doug Binks Date: Wed, 19 Feb 2014 21:53:22 +0100 Subject: [PATCH] Reset pixel storage settings after load texture. --- src/nanovg_gl3buf.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/nanovg_gl3buf.h b/src/nanovg_gl3buf.h index 309ff31..c510265 100644 --- a/src/nanovg_gl3buf.h +++ b/src/nanovg_gl3buf.h @@ -487,10 +487,16 @@ static int glnvg__renderUpdateTexture(void* uptr, int image, int x, int y, int w { struct GLNVGcontext* gl = (struct GLNVGcontext*)uptr; struct GLNVGtexture* tex = glnvg__findTexture(gl, image); + int align,length,pixels,rows; if (tex == NULL) return 0; glBindTexture(GL_TEXTURE_2D, tex->tex); + glGetIntegerv(GL_UNPACK_ALIGNMENT,&align); + glGetIntegerv(GL_UNPACK_ROW_LENGTH,&length); + glGetIntegerv(GL_UNPACK_SKIP_PIXELS,&pixels); + glGetIntegerv(GL_UNPACK_SKIP_ROWS,&rows); + glPixelStorei(GL_UNPACK_ALIGNMENT,1); glPixelStorei(GL_UNPACK_ROW_LENGTH, tex->width); glPixelStorei(GL_UNPACK_SKIP_PIXELS, x); @@ -501,6 +507,11 @@ static int glnvg__renderUpdateTexture(void* uptr, int image, int x, int y, int w else glTexSubImage2D(GL_TEXTURE_2D, 0, x,y, w,h, GL_RED, GL_UNSIGNED_BYTE, data); + glPixelStorei(GL_UNPACK_ALIGNMENT,align); + glPixelStorei(GL_UNPACK_ROW_LENGTH,length); + glPixelStorei(GL_UNPACK_SKIP_PIXELS,pixels); + glPixelStorei(GL_UNPACK_SKIP_ROWS,rows); + return 1; }