[Xrdp-devel] Interface rendering error for help

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[Xrdp-devel] Interface rendering error for help


Firstly,I downloaded the latest Xrdp and NeutrinoRDP source code of the master branch from the following website:
Then, installed them in a debian server successfully, but got incorrect interface rendering after the following steps:
1)Connect to the proxy server using mstsc in a window7 computer.
2)select NeutrinoRDP proxy module to connect to the remote server which runs Windows Server 2003
3)open software of Microsoft virtual Manager 2008 R2,then choose one option and a new window created,but there will Interface rendering error as follow:


we can find the second picture has mixed with the background and some part of it doesn't rendering at all.
the normal window should show as follow:

What’s more,I find a problem in the source file xrdp-neutrinordp.c which I think cause the error. I got the log information as follow but we can

See the polygon_sc->nDeltaEntries =4. And I can’t understand the process of handling the polygon_sc. Why doesn’t  it handle the important data

polygon_sc -> codeDeltaList?  I am looking forward to your help,thank you very much!

In Neutrinordp:



    sint32 xStart;

    sint32 yStart;

    uint32 bRop2;

    uint32 fillMode;

    uint32 brushColor;

    uint32 nDeltaEntries;

    uint32 cbData;

    uint8* codeDeltaList;



In xrdp_devel xrdp-neutrinordp.c file:

static void DEFAULT_CC lfreerdp_polygon_sc(rdpContext* context, POLYGON_SC_ORDER* polygon_sc)


    struct mod *mod;

    int i, npoints;

    XPoint points[4];

    int fgcolor;

    int server_bpp, client_bpp;


    mod = ((struct mod_context *)context)->modi;

    LLOGLN(10, ("lfreerdp_polygon_sc :%d(points) %d(color) %d(fillmode) "

           "%d(bRop) %d(cbData) %d(x) %d(y)",

           polygon_sc->nDeltaEntries, polygon_sc->brushColor,

           polygon_sc->fillMode, polygon_sc->bRop2,

           polygon_sc->cbData, polygon_sc->xStart,


    if (polygon_sc->nDeltaEntries == 3)


        server_bpp = mod->inst->settings->color_depth;

        client_bpp = mod->bpp;


        points[0].x = polygon_sc->xStart;

        points[0].y = polygon_sc->yStart;


        for (i = 0; i < polygon_sc->nDeltaEntries; i++)


            points[i + 1].x = 0; // polygon_sc->points[i].x;

            points[i + 1].y = 0; // polygon_sc->points[i].y;


        fgcolor = convert_color(server_bpp, client_bpp,

                                polygon_sc->brushColor, mod->colormap);


        mod->server_set_opcode(mod, polygon_sc->bRop2);

        mod->server_set_bgcolor(mod, 255);

        mod->server_set_fgcolor(mod, fgcolor);

        mod->server_set_pen(mod, 1, 1); // style, width

        // TODO replace with correct brush; this is a workaround

        // This workaround handles the text cursor in microsoft word.


//        mod->server_fill_rect(mod, points[0].x, points[0].y,

//                         points[0].x-points[3].x, points[0].y-points[2].y);

//      mod->server_set_brush(mod,); // howto use this on our indata??

        mod->server_set_opcode(mod, 0xcc);




        LLOGLN(0, ("Not handled number of points in lfreerdp_polygon_sc"));





Slashdot TV.  Videos for Nerds.  Stuff that Matters.
xrdp-devel mailing list
[hidden email]