--- a/src/MacSrc/OpenGL.cc +++ b/src/MacSrc/OpenGL.cc @@ -525,6 +525,13 @@ bind_texture(s_uiTexture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + // uiRgba is tightly packed, but gl4es implements GL_UNPACK_ROW_LENGTH/ + // GL_UNPACK_ALIGNMENT client-side and persists whatever was last set + // across draw calls in the same context. Reset both to the packed + // defaults here so this upload doesn't inherit unrelated unpack state + // set elsewhere in the frame. + glPixelStorei(GL_UNPACK_ROW_LENGTH, 0); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, uiRgba->w, uiRgba->h, 0, GL_RGBA, GL_UNSIGNED_BYTE, uiRgba->pixels);