強火で進め

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

工学ナビさんが急募してたのでMacでGLMetaseqを使ってみた(続き)


前回のエントリーでまだ未対応だった以下の部分に手を付ける事にしました。

  • テクスチャはTGAファイルのみ対応でPNGファイルとJPEGファイルには対応していません。
  • テクスチャファイルのパス指定が絶対パスであるかどうかの判定がWindows向けになっていてMacでは正しく動作しない。

この内、2番目のテクスチャファイルのパス指定についてはよく考えるとメタセコイアWindows版しか有りません。そのためここが絶対パスの場合はそもそもMacでは使えないファイルとなり対応しようが無いという結論になります。そのためこちらについては対応は無しとなります。

ということで今回行うのは1番目のPNGファイルとJPEGファイルの対応のみとなります。

Macの場合、 libjpeg.lib と libpng.lib の代わりに libjpeg.dylib と libpng.dylib 。もしくは、libjpeg.a と libpng.a を使うことになると思いますが今回は .a の方を使いました。

これらのファイルはMac Portsでインストールした場合、以下のパスにあります。

/opt/local/lib/libjpeg.a
/opt/local/lib/libpng.a

こちらをプロジェクトに追加。

GLMetaseq.c ファイルの以下の部分を変更しました。
詳しくはこちらからソースコードをDLして参照下さい。

#ifdef WIN32
	#include <windows.h>
#else
    #include <string.h>
    #include <ctype.h>
	#ifndef MAX_PATH
		#define MAX_PATH    256
	#endif
#ifndef __APPLE__
    #include "jpeg.h"
#else
	#include "jpeglib.h"
	#pragma comment(lib,"libjpeg.lib")
#endif
#include "png.h"

#ifdef WIN32
	#include "png.h"
	#include "zlib.h"
	#pragma comment(lib,"libpng.lib")
	#pragma comment(lib,"zlib.lib")
#endif

ここで使用したincludeファイルは /opt/local/include/ に有るため。includeディレクトリの指定をする必要が有ります。
プロジェクトのビルド設定から「Other C Flags」を検索し、 -I/opt/local/include/ と設定します。
※この設定をすると「Other C++ Flags」にも自動的に同じ記述が表示されます。

【サンプルアプリの操作方法】
操作方法は前回と同じで以下の様になります。

操作
回転 マウスでドラッグ
縮小 Aキー
拡大 Zキー

(2009/12/17 追記)
肝心の動作環境が抜けてたので追記。
動作環境は初代Air、OSはLeopardでバージョンは10.5.8。