Maintenant que j'ai les icônes, je veux les dessiner correctement. En ce moment j'utilise Cairo pour dessiner ces images sur une fenêtre. J'ai un masque et l'icône en tant que pixmap.dessiner une icône avec transparence dans xlib et cairo
cairo_surface_t *image;
cairo_surface_t *imask;
cairo_surface_t *surface;
cairo_t *csurface;
surface = cairo_xlib_surface_create(display, d, DefaultVisual(display, screen), 400, 400);
csurface = cairo_create(surface);
Pixmap icon;
Pixmap mask;
//XWM Stuff ...
if(icon != 0)
{
get_pixmap_geometry(display, icon, &width, &height, &depth);
image = cairo_xlib_surface_create(display, icon, DefaultVisual(display, screen), width, height);
cairo_set_source_surface(csurface, image, 0, 0);
//How do I apply the mask?
//I tried cairo_set_operator(csurface, CAIRO_OPERATOR_SOURCE);
cairo_paint(csurface);
}
Mais les icônes n'ont pas de transparents. Je n'ai trouvé aucun exemple pour résoudre ce problème avec le cairo sur Internet. Il n'y a qu'une manière compliquée mais c'est tellement mal documenté que ça ne m'aide pas du tout. Est-ce que quelqu'un a un lien ou un exemple pour restaurer l'icône d'origine avec ses transparents? Merci d'avance.