From e80896dbf93f64970e49ba1efda8406543af397a Mon Sep 17 00:00:00 2001 From: Stefan Frederik Date: Mon, 7 Dec 2020 18:51:15 +0100 Subject: [PATCH] added render_format assignment that got deleted after xinit code refactoring --- src/draw.c | 4 ++-- src/xinit.c | 8 ++++++-- src/xschem.h | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/draw.c b/src/draw.c index 662dd76b..3fe7a681 100644 --- a/src/draw.c +++ b/src/draw.c @@ -116,7 +116,7 @@ void print_image() xctx->cairo_save_sfc = cairo_xcb_surface_create_with_xrender_format(xcbconn, screen_xcb, xctx->save_pixmap, &format_rgb, w, h); #else xctx->cairo_save_sfc = cairo_xlib_surface_create_with_xrender_format(display, - xctx->save_pixmap, DefaultScreenOfDisplay(display), format, w, h); + xctx->save_pixmap, DefaultScreenOfDisplay(display), render_format, w, h); #endif /*HAS_XCB */ #else xctx->cairo_save_sfc = cairo_xlib_surface_create(display, xctx->save_pixmap, visual, w, h); @@ -192,7 +192,7 @@ void print_image() xctx->cairo_save_sfc = cairo_xcb_surface_create_with_xrender_format(xcbconn, screen_xcb, xctx->save_pixmap, &format_rgb, w, h); #else xctx->cairo_save_sfc = cairo_xlib_surface_create_with_xrender_format (display, - xctx->save_pixmap, DefaultScreenOfDisplay(display), format, w, h); + xctx->save_pixmap, DefaultScreenOfDisplay(display), render_format, w, h); #endif /*HAS_XCB */ #else xctx->cairo_save_sfc = cairo_xlib_surface_create(display, xctx->save_pixmap, visual, w, h); diff --git a/src/xinit.c b/src/xinit.c index 34372c7d..233f36bf 100644 --- a/src/xinit.c +++ b/src/xinit.c @@ -425,8 +425,10 @@ void alloc_xschem_data() xctx->inst_color=NULL; xctx->window = xctx->save_pixmap = 0; xctx->xrect[0].width = xctx->xrect[0].height = xctx->xrect[0].x = xctx->xrect[0].y = 0; +#ifdef HAS_CAIRO xctx->cairo_ctx = xctx->cairo_save_ctx = NULL; xctx->cairo_sfc = xctx->cairo_save_sfc = NULL; +#endif xctx->gctiled = 0; /* get_unnamed_node() */ xctx->new_node = 0; @@ -912,7 +914,7 @@ void resetcairo(int create, int clear, int force_or_resize) &format_rgb, xctx->xschem_w, xctx->xschem_h); #else xctx->cairo_save_sfc = cairo_xlib_surface_create_with_xrender_format(display, xctx->save_pixmap, - DefaultScreenOfDisplay(display), format, xctx->xschem_w, xctx->xschem_h); + DefaultScreenOfDisplay(display), render_format, xctx->xschem_w, xctx->xschem_h); #endif /* HAS_XCB */ #else xctx->cairo_save_sfc = @@ -1462,7 +1464,9 @@ int Tcl_AppInit(Tcl_Interp *inter) dbg(1, "Tcl_AppInit(): done step e of xinit()\n"); /* xctx->save_pixmap must be created as resetwin() frees it before recreating with new size. */ - + #if HAS_XRENDER==1 + render_format = XRenderFindStandardFormat(display, PictStandardRGB24); + #endif resetwin(1, 0, 1); #ifdef HAS_CAIRO /* load font from tcl 20171112 */ diff --git a/src/xschem.h b/src/xschem.h index 2173665b..2991ac7b 100644 --- a/src/xschem.h +++ b/src/xschem.h @@ -772,7 +772,7 @@ extern Pixmap cad_icon_pixmap, cad_icon_mask, *pixmap; extern XColor xcolor_array[]; extern Visual *visual; #ifdef HAS_CAIRO -extern XRenderPictFormat *format; +extern XRenderPictFormat *render_format; #if HAS_XCB==1 extern xcb_connection_t *xcbconn; extern xcb_screen_t *screen_xcb;