ウェブカメラを開いて 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 しか使用していないと思います)。アニメーションをスムーズにするにはどうすればよいでしょうか?
ありがとう。