static XftDraw * xftfont_get_xft_draw (struct frame *f) { XftDraw *xft_draw = font_get_frame_data (f, &xftfont_driver); if (! xft_draw) { block_input (); xft_draw= XftDrawCreate (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), FRAME_X_VISUAL (f), FRAME_X_COLORMAP (f)); unblock_input (); eassert (xft_draw != NULL); font_put_frame_data (f, &xftfont_driver, xft_draw); } return xft_draw; }
static int xftfont_end_for_frame (struct frame *f) { XftDraw *xft_draw; /* Don't do anything if display is dead */ if (FRAME_X_DISPLAY (f) == NULL) return 0; xft_draw = font_get_frame_data (f, &xftfont_driver); if (xft_draw) { block_input (); XftDrawDestroy (xft_draw); unblock_input (); font_put_frame_data (f, &xftfont_driver, NULL); } return 0; }
static int xftfont_end_for_frame (FRAME_PTR f) { XftDraw *xft_draw; /* Don't do anything if display is dead */ if (FRAME_X_DISPLAY (f) == NULL) return 0; xft_draw = font_get_frame_data (f, &xftfont_driver); if (xft_draw) { BLOCK_INPUT; XftDrawDestroy (xft_draw); UNBLOCK_INPUT; font_put_frame_data (f, &xftfont_driver, NULL); } return 0; }
static XftDraw * xftfont_get_xft_draw (FRAME_PTR f) { XftDraw *xft_draw = font_get_frame_data (f, &xftfont_driver); if (! xft_draw) { BLOCK_INPUT; xft_draw= XftDrawCreate (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), FRAME_X_VISUAL (f), FRAME_X_COLORMAP (f)); UNBLOCK_INPUT; if (! xft_draw) abort (); font_put_frame_data (f, &xftfont_driver, xft_draw); } return xft_draw; }