I had to change this:
Code: Select all
qglTexSubImage2D (GL_TEXTURE_2D, 0,
gl_lms.lightrect[i].left, gl_lms.lightrect[i].top,
(gl_lms.lightrect[i].right - gl_lms.lightrect[i].left), (gl_lms.lightrect[i].bottom - gl_lms.lightrect[i].top),
GL_LIGHTMAP_FORMAT, GL_UNSIGNED_BYTE,
gl_lms.lightmap_update[i] + ((gl_lms.lightrect[i].top * LM_BLOCK_WIDTH + gl_lms.lightrect[i].left) * LIGHTMAP_BYTES));
Code: Select all
// update full width of lm texture, because qglTexSubImage2D doesn't wrap around to starting column
qglTexSubImage2D (GL_TEXTURE_2D, 0,
0, gl_lms.lightrect[i].top,
LM_BLOCK_WIDTH, (gl_lms.lightrect[i].bottom - gl_lms.lightrect[i].top),
GL_LIGHTMAP_FORMAT, GL_UNSIGNED_BYTE,
gl_lms.lightmap_update[i] + ((gl_lms.lightrect[i].top * LM_BLOCK_WIDTH) * LIGHTMAP_BYTES));