2022/06/05(日) [n年前の日記]
#1 [xlib] Xlibでラスタースクロールっぽい処理
_昨日、
_一昨日
と、Xlib を使って小さい画面(Pixmap)をディスプレイ一杯に拡大して描画できるか試してたけど、小さい画面を対象にして処理するならラスタースクロールっぽい処理もできるかなと思えてきたので試してみた。
環境は、Ubuntu Linux 20.04 LTS。Windows10 x64 21H2 + VMware Player 上で動かしている。
こんな感じになった。
動画の解像度が小さくて見辛いかもしれんけど、画面下半分がチラチラと動いてることぐらいは分かるかなと。元画面は640x360で、ディスプレイ解像度は1440x900。
環境は、Ubuntu Linux 20.04 LTS。Windows10 x64 21H2 + VMware Player 上で動かしている。
こんな感じになった。
動画の解像度が小さくて見辛いかもしれんけど、画面下半分がチラチラと動いてることぐらいは分かるかなと。元画面は640x360で、ディスプレイ解像度は1440x900。
◎ ソース。 :
ソースと使用画像は以下。
_08rasterscroll.c
_bg03.xpm.txt
コンパイルは以下。
実行は以下。
ラスタースクロールと言っても、あくまでモドキで…。画面の下半分は、元画像を参照する際のx座標をcos()で変化させて、縦幅1ドットずつ、Pixmap から Pixmap にコピーしてるだけ。
元画像は、640x360の左右に32ドットずつ足して、704x360で作成。左右にcos()で揺らして描画するので、横640ドットぴったりで作ってしまうと描画されない部分が出てきてしまう。左右に少しだけ絵を追加しておかないといけない。
_08rasterscroll.c
_bg03.xpm.txt
コンパイルは以下。
gcc 08rasterscroll.c -o 08rasterscroll -I /usr/include/X11 -lX11 -lXext -lm -lXpm
実行は以下。
./08rasterscroll
ラスタースクロールと言っても、あくまでモドキで…。画面の下半分は、元画像を参照する際のx座標をcos()で変化させて、縦幅1ドットずつ、Pixmap から Pixmap にコピーしてるだけ。
元画像は、640x360の左右に32ドットずつ足して、704x360で作成。左右にcos()で揺らして描画するので、横640ドットぴったりで作ってしまうと描画されない部分が出てきてしまう。左右に少しだけ絵を追加しておかないといけない。
[ ツッコむ ]
以上です。