0

process1 から process2 に GC を渡してそこで使用することは可能ですか (クリッピング領域を更新する必要があります)。

ウィンドウプロパティを介してGCを渡そうとしました。しかし、その GC の XSetRegion 呼び出しで SEGFAULT を取得しました。

4

2 に答える 2

1

はい、可能です。これは、あるプロセスで gc を作成し、それをコマンドラインパラメーターとして別のプロセスに渡すことができる例です (JavaScript では、node-x11を使用して申し訳ありません)。gc (この例では前景色) へのすべての変更は、別のプロセスで表示されます。最初のプロセスが終了するとサーバー上で GC が破棄され、引き続き使用しようとすると、2 番目のプロセスで「Bad GContext」エラーが表示されることに注意してください。

var x11 = require('x11');

var gc;
x11.createClient(function(display) {
    var X = display.client;
    var root = display.screen[0].root;

    var wid = X.AllocID();
    X.CreateWindow(wid, root, 0, 0, 400, 300);

    var _gc = parseInt(process.argv[2]);
    if (_gc != 0)
       gc = _gc;
    else {
       gc = X.AllocID();
       X.CreateGC(gc, root);
       console.log('GC created: ' + gc);
       setInterval(function() {
           X.ChangeGC(gc, { foreground: parseInt(Math.random()*0xffffff) });
           console.log('gc updated!');
       }, 500);
    }
    X.MapWindow(wid);
    setInterval(function() {
       X.PolyText8(wid, gc, 50, 50, ['Hello, Node.JS!', ' Hello, world!']);
       console.log(gc);
    }, 100);
    X.on('error', function(err) {
        console.log(err);
    });
});
于 2012-04-18T05:06:01.687 に答える