窗口管理器如何从像素图渲染边框?

问题描述

任何人都可以解释什么是内在手段以及如何从像素图渲染窗口边框?谢谢。

源代码链接:https://github.com/wmutils/opt/blob/master/chwb2.c#L72

    xcb_rectangle_t inner[] = {
        /* you're not supposed to understand this. */
        {     w,b-o,h+b-   o      },{     w+b   +o,b  -o,h+         b  -  o},{     0,h,w+b  -o,b-   o      },h   +b+      o,w+     b-         o,b -o},{     w+b+o,b        +h    +o,b,b}
    };

    xcb_rectangle_t outer[] = {
        {w + b - o,o,h + b * 2},{w + b,{0,h + b - o,w + b * 2,o},h + b,{1,1,1}
    };

    xcb_pixmap_t pmap = xcb_generate_id(conn);
    xcb_create_pixmap(conn,geom->depth,pmap,win,geom->width  + (b*2),geom->height + (b*2));
    xcb_gcontext_t gc = xcb_generate_id(conn);
    xcb_create_gc(conn,gc,NULL);

    values[0] = oc;
    xcb_change_gc(conn,XCB_GC_FOREGROUND,values);
    xcb_poly_fill_rectangle(conn,5,outer);

    values[0] = ic;
    xcb_change_gc(conn,inner);

    values[0] = pmap;
    xcb_change_window_attributes(conn,XCB_CW_BORDER_PIXMAP,values);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)