--- deliantra/Deliantra-Client/pango-render.c 2009/11/26 07:19:11 1.16 +++ deliantra/Deliantra-Client/pango-render.c 2009/11/29 14:45:12 1.17 @@ -161,13 +161,12 @@ g_slice_free (glyph_info, g); } -static char *apple_nvidia_bug_buf; +static int apple_nvidia_bug_workaround; static void apple_nvidia_bug (int enable) { - g_slice_free1 (TC_WIDTH * TC_HEIGHT, apple_nvidia_bug_buf); - apple_nvidia_bug_buf = enable ? g_slice_alloc (TC_WIDTH * TC_HEIGHT) : 0; + apple_nvidia_bug_workaround = enable; } static void @@ -175,7 +174,7 @@ { glBindTexture (GL_TEXTURE_2D, name); - if (!apple_nvidia_bug_buf) + if (!apple_nvidia_bug_workaround) { glPixelStorei (GL_UNPACK_ROW_LENGTH, stride); glPixelStorei (GL_UNPACK_ALIGNMENT, 1); @@ -190,12 +189,12 @@ /* reading/patching/uploading the full texture one each change */ int r; - glGetTexImage (GL_TEXTURE_2D, 0, GL_ALPHA, GL_UNSIGNED_BYTE, apple_nvidia_bug_buf); + glGetTexImage (GL_TEXTURE_2D, 0, GL_ALPHA, GL_UNSIGNED_BYTE, tc_temptile); for (r = 0; r < h; ++r) - memcpy ((char *)apple_nvidia_bug_buf + (y + r) * TC_WIDTH + x, (char *)bm + r * stride, w); + memcpy (tc_temptile + (y + r) * TC_WIDTH + x, (char *)bm + r * stride, w); - glTexImage2D (GL_TEXTURE_2D, 0, GL_ALPHA, TC_WIDTH, TC_HEIGHT, 0, GL_ALPHA, GL_UNSIGNED_BYTE, apple_nvidia_bug_buf); + glTexImage2D (GL_TEXTURE_2D, 0, GL_ALPHA, TC_WIDTH, TC_HEIGHT, 0, GL_ALPHA, GL_UNSIGNED_BYTE, tc_temptile); } }