2

ウェブカメラを開いて Xlib でビデオを表示したい。だから、私はウェブカメラを開いて画像を取得し、次のようなことをします:

for(x = 0; x < webcamX; x++){
    for(y = 0; y < webcamY; y++){
        pixel = GetCameraPixel(x, y);
        XDrawPoint(dpy, pixmap, pixel, x, y);
    }
}
XCopyArea(dpy, pixmal, window, ....);

しかし、XDrawPoint の呼び出しは遅すぎます。XImageでもやってみましたが、今回はXPutPixelもXPutImageも遅いです(Pixmapを使った方がXImageより速いです)

問題は、XDrawPoint を 640 * 480 回実行すると、X サーバーに多くの要求が行われることだと思います。XPutImage をするときも同じで、640*480 の画像を送るのは大変ですよね。

Webcam のことは忘れて、ゲーム、アニメーション、ビデオ プレーヤーなどを XLib だけで作りたいと想像してみてください。それは可能ですか? ピクセルごとに描画するのは効率的ではないと確信しています。どうすればうまくいくのでしょうか? インターネットで見つけたすべての情報は、Pixmap または XImage を使用することです。ウィンドウ自体に描画するよりは優れていますが、十分ではありません。

たとえば、xscreensavers は全画面で非常に優れたアニメーションを表示します (そして、Xlib しか使用していないと思います)。アニメーションをスムーズにするにはどうすればよいでしょうか?

ありがとう。

4

1 に答える 1