SDLビデオドライバの書き方
毎度忘れるので書いておいた、メモ程度のものです。
configure.in の、
CheckDummyVideo() { AC_ARG_ENABLE(video-dummy, AC_HELP_STRING([--enable-video-dummy], [use dummy video driver [[default=yes]]]), , enable_video_dummy=yes) if test x$enable_video_dummy = xyes; then AC_DEFINE(SDL_VIDEO_DRIVER_DUMMY) SOURCES="$SOURCES $srcdir/src/video/dummy/*.c" have_video=yes fi }
をコピーして dummy を自分のドライバ名に置換します。以下ではドライバ名を hoge と仮定します。
configure.in の下の方で、
dnl Set up the configuration based on the host platform! case "$host" in
から始まる巨大な switch 文があるので、新しく作るドライバのターゲットとする環境を探して、 CheckDummyVideo? の下に CheckHogeVideo? を書きます。
次に src/video/SDL_sysvideo.h と src/video/SDL_video.c を編集します。 SDL_sysvideo.h の方は、
#if SDL_VIDEO_DRIVER_DUMMY extern VideoBootStrap DUMMY_bootstrap; #endif
などとなっている部分をコピペして、
#if SDL_VIDEO_DRIVER_HOGE extern VideoBootStrap HOGE_bootstrap; #endif
などを追加すれば良いです。同じように、 SDL_video.c は
#if SDL_VIDEO_DRIVER_DUMMY &DUMMY_bootstrap, #endif
をコピペして、
#if SDL_VIDEO_DRIVER_HOGE &HOGE_bootstrap, #endif
を追加すれば良いです。
次に src/video/dummy を src/video/hoge にコピーします。コピーしたファイルの中にある dummy や DUMMY は全て hoge や HOGE にそれぞれ置換します。ファイル名の SDL_null* もそれぞれ SDL_hoge* にリネームします。
これでたぶんコンパイルは通るので
% sh autogen.sh % ./configure --enable-video-hoge % make % sudo make install
などとしてインストールします。インストールした後に
% SDL_VIDEODRIVER=hoge ./testsprite
などとして文句を言われずに起動すれば OK です。
あとは src/video/hoge/* を思いのままに実装しましょう。
Keyword(s):
References:[FrontPage]