--- deliantra/Deliantra-Client/pango-render.c 2009/11/29 14:45:12 1.17 +++ deliantra/Deliantra-Client/pango-render.c 2018/11/18 03:06:13 1.20 @@ -40,7 +40,7 @@ int flags; rc_t *rc; // rendercache rc_key_t key; // current render key - rc_array_t *arr; + rc_t::array_t *arr; }; G_DEFINE_TYPE (PangoOpenGLRenderer, pango_opengl_renderer, PANGO_TYPE_RENDERER) @@ -62,7 +62,7 @@ size = (size + 4095) & ~4095; free (buffer); alloc = size; - buffer = malloc (size); + buffer = (char *)malloc (size); } return buffer; @@ -92,7 +92,7 @@ glyph->top = top; glyph->left = left; - glyph->bitmap = temp_buffer (width * height); + glyph->bitmap = (uint8_t *)temp_buffer (width * height); memset (glyph->bitmap, 0, glyph->stride * height); for (i = width; i--; ) @@ -177,10 +177,10 @@ if (!apple_nvidia_bug_workaround) { glPixelStorei (GL_UNPACK_ROW_LENGTH, stride); - glPixelStorei (GL_UNPACK_ALIGNMENT, 1); + /*glPixelStorei (GL_UNPACK_ALIGNMENT, 1); expected cfplus default */ glTexSubImage2D (GL_TEXTURE_2D, 0, x, y, w, h, GL_ALPHA, GL_UNSIGNED_BYTE, bm); + /*glPixelStorei (GL_UNPACK_ALIGNMENT, 4);*/ glPixelStorei (GL_UNPACK_ROW_LENGTH, 0); - glPixelStorei (GL_UNPACK_ALIGNMENT, 4); } else { @@ -212,7 +212,7 @@ glyph = PANGO_GLYPH_UNKNOWN_FLAG; } - g = _pango_opengl_font_get_cache_glyph_data (font, glyph); + g = (glyph_info *)_pango_opengl_font_get_cache_glyph_data (font, glyph); if (!g || g->generation != tc_generation) { @@ -244,10 +244,10 @@ if (g->tex.name != renderer->key.texname) { renderer->key.texname = g->tex.name; - renderer->arr = rc_array (renderer->rc, &renderer->key); + renderer->arr = &renderer->rc->array (renderer->key); } - rc_glyph (renderer->arr, g->tex.x, g->tex.y, g->tex.w, g->tex.h, x, y); + renderer->arr->glyph (g->tex.x, g->tex.y, g->tex.w, g->tex.h, x, y); } static void @@ -262,21 +262,20 @@ { PangoOpenGLRenderer *renderer = (PangoOpenGLRenderer *)renderer_; rc_key_t key = renderer->key; - rc_array_t *arr; key.mode = GL_QUADS; key.format = GL_V2F; key.texname = 0; - arr = rc_array (renderer->rc, &key); + auto &arr = renderer->rc->array (key); - rc_v2f (arr, x11, y1); - rc_v2f (arr, x21, y1); - rc_v2f (arr, x22, y2); - rc_v2f (arr, x12, y2); + arr.v2f (x11, y1); + arr.v2f (x21, y1); + arr.v2f (x22, y2); + arr.v2f (x12, y2); } -void +void pango_opengl_render_layout_subpixel (PangoLayout *layout, rc_t *rc, int x, int y, @@ -293,17 +292,17 @@ renderer = _pango_opengl_font_map_get_renderer (PANGO_OPENGL_FONT_MAP (fontmap)); gl = PANGO_OPENGL_RENDERER (renderer); - gl->rc = rc; - gl->r = r; - gl->g = g; - gl->b = b; - gl->a = a; + gl->rc = rc; + gl->r = r; + gl->g = g; + gl->b = b; + gl->a = a; gl->flags = flags; pango_renderer_draw_layout (renderer, layout, x, y); } -void +void pango_opengl_render_layout (PangoLayout *layout, rc_t *rc, int x, int y, @@ -343,12 +342,12 @@ for (l = run->item->analysis.extra_attrs; l; l = l->next) { - PangoAttribute *attr = l->data; + PangoAttribute *attr = (PangoAttribute *)l->data; switch (attr->klass->type) { case PANGO_ATTR_UNDERLINE: - renderer->underline = ((PangoAttrInt *)attr)->value; + renderer->underline = (PangoUnderline)((PangoAttrInt *)attr)->value; break; case PANGO_ATTR_STRIKETHROUGH: @@ -370,7 +369,7 @@ g = fg->green * (255.f / 65535.f); b = fg->blue * (255.f / 65535.f); } - else + else { r = gl->r * 255.f; g = gl->g * 255.f;