強火で進め

このブログではプログラム関連の記事を中心に書いてます。

iPhoneでSDLを使ってみた


マルチプラットフォームのマルチメディアライブラリであるSDL、バージョン1.3ではiPhone対応をしているみたいなのでちょっと使ってみました。

Simple DirectMedia Layer
http://www.libsdl.org/

ライブラリの作成

iPhoneに対応しているバージョン1.3のファイルはSVNからDLする必要が有る様です。

Simple DirectMedia Layer
http://www.libsdl.org/svn.php

以下のコマンドでDLします。

svn checkout http://svn.libsdl.org/trunk/SDL

このファイルの中にはSDLのライブラリをビルドするためのXcodeのプロジェクトがあります。しかし、そのままビルドすると SDL_revision.h が存在しないためにエラーとなります。

先にコマンドラインから以下のコマンドを実行して下さい。

./autogen.sh
chmod +x /configure
./configure
make

次にこのパスのプロジェクトを開き、

XCodeiPhoneOS/SDL/SDLiPhoneOS.xcodeproj

以下の設定のビルドを順番に行います。

iPhoneのライブラリ作成
  • アクティブ SDKiPhone Device 2.0
  • アクティブなビルド構成 → Release
  • アクティブターゲット → StaticLibiPhoneOS
シミュレータのライブラリ作成
  • アクティブ SDKiPhone Simulator 2.0
  • アクティブなビルド構成 → Release
  • アクティブターゲット → StaticLibSimulator
ヘッダとライブラリファイルを組み込んだテンプレートを作成
  • アクティブ SDKiPhone Simulator 2.0
  • アクティブなビルド構成 → Release
  • アクティブターゲット → Template

Xcodeのテンプレートを追加

次に作成したテンプレートをXcodeのプロジェクト新規作成時のテンプレートに追加します。

1. Finder上で Cmd+Shift+G 押した後に以下を入力しディレクトリを開く。

~/Library/Application Support/Developer/Shared/Xcode/Project Templates/

3. そこにフォルダ「Application」を作成
2. ビルドしたテンプレートはSDLをDLしたフォルダ内の以下のパスに生成されます。このフォルダにあるフォルダ「SDL Application」を 3. で作成したの「Application」フォルダにコピーします。

/XCodeiPhoneOS/SDL/build/Release-template

しかしこのテンプレートは不具合があり、そのままビルドするとエラーが発生します。
main.c の以下の部分を修正して下さい。

    SDL_RenderFill(r, g, b, 255, &rect);

    SDL_SetRenderDrawColor(r, g, b, 255);
    SDL_RenderFill(&rect);
    SDL_RenderFill(0, 0, 0, 0, NULL);

    SDL_SetRenderDrawColor(0, 0, 0, 0);
    SDL_RenderFill(NULL);

正しくテンプレートが追加されるとこのような画面になります。

このテンプレートを使用し、ビルドすると以下の様に描画されます。