Create  Edit  Diff  FrontPage  Index  Search  Changes  Login

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/* を思いのままに実装しましょう。

Last modified:2008/12/25 16:08:10
Keyword(s):
References:[FrontPage]