snprintf(buf, MSG_SIZ, "%s/%s%s.svg", dir, color ? "Black" : "White", name);
- if(svg || *dir && (svg = rsvg_handle_new_from_file(buf, &svgerror))) {
+ if(!svg && *dir) {
+ svg = rsvg_handle_new_from_file(buf, &svgerror);
+ if(!svg && *appData.inscriptions) { // if there is no piece-specific SVG, but we make inscriptions, try general background
+ snprintf(buf, MSG_SIZ, "%s/%sTile.svg", dir, color ? "Black" : "White");
+ svg = rsvg_handle_new_from_file(buf, &svgerror);
+ }
+ }
+ if(svg) {
rsvg_handle_get_dimensions(svg, &svg_dimensions);
img = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, squareSize, squareSize);
int s = 1 - 2*flip;
PangoLayout *layout;
PangoFontDescription *desc;
+ PangoRectangle r;
char fontName[MSG_SIZ];
cr = cairo_create (canvas);
- cairo_translate(cr, x + s*squareSize/6 + (1-s)*squareSize/2, y + s*squareSize/5 + (1-s)*squareSize/2);
- if(s < 0) cairo_rotate(cr, G_PI);
layout = pango_cairo_create_layout(cr);
pango_layout_set_text(layout, string, -1);
- snprintf(fontName, MSG_SIZ, "Sans Bold %dpx", 2*squareSize/3);
+ snprintf(fontName, MSG_SIZ, "Sans Normal %dpx", 5*squareSize/8);
desc = pango_font_description_from_string(fontName);
pango_layout_set_font_description(layout, desc);
pango_font_description_free(desc);
+ pango_layout_get_pixel_extents(layout, NULL, &r);
+ cairo_translate(cr, x + squareSize/2 - s*r.width/2, y + (8+s)*squareSize/16 - s*r.height/2);
+ if(s < 0) cairo_rotate(cr, G_PI);
cairo_set_source_rgb(cr, (id == '+' ? 1.0 : 0.0), 0.0, 0.0);
pango_cairo_update_layout(cr, layout);
pango_cairo_show_layout(cr, layout);