0
process1からprocess2にGCを渡してそこで使用することはできますか(クリッピング領域を更新する必要がありますか?別のプロセスでGC(X11グラフィックスコンテキスト)を使用する
私はウィンドウプロパティでGCを渡そうとしました。しかし、私はそのGC上でXSetRegionコールでSEGFAULTを取得しました。
process1からprocess2にGCを渡してそこで使用することはできますか(クリッピング領域を更新する必要がありますか?別のプロセスでGC(X11グラフィックスコンテキスト)を使用する
私はウィンドウプロパティでGCを渡そうとしました。しかし、私はそのGC上でXSetRegionコールでSEGFAULTを取得しました。
はい、可能です。ここでは、1つのプロセスでgcを作成し、コマンドラインパラメータとして別のプロセスに渡すことができる例(JavaScriptではnode-x11を使用しています)です。 gc(この例では前景色)に対するすべての変更は、別のプロセスで表示されます。最初のプロセスが終了するとサーバー上でGCが破棄され、続行しようとすると2番目のプロセスで「不正な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);
});
});
ありがとうございました!私はX11が新しく、このような操作が有効であることを知りたがっています。 –