LinuxでIrrlichtをコンパイルする方法

Ubuntu7.10 gutsy ja版でIrrlichtをコンパイルする方法を紹介します。英語版でも手順は同じです。

Irrlichtサンプル 01.HelloWorld on Ubuntu7.10

まずはIrrlicht公式サイトからSDKをダウンロードし解凍てください。

Irrlicht SDK ダウンロード (公式)

解凍後、gcc等の開発用パッケージをインストールします。

$ > sudo apt-get install build-essential

コンパイルが可能になりました。source/Irrlichtをカレントディレクトリにしてmakeしてみましょう。

$ > make

OpenGLとX11関連の定義が足りないと言うエラーが出ると思います。そこで、これらの開発用ライブラリを追加します(既にランタイムだけはインストール済のものです)

$ > sudo apt-get install freeglut3-dev libxxf86vm-dev

再度makeをしてみればlib/LinuxにlibIrrlicht.aが無事作成されます。Irrlicht本体のコンパイルはこれで完了!

*もし、まだエラーが出たら?

include/IrrCompileConfig.hを使用環境に合わせて編集します。

$ > gedit include/IrrCompileConfig.h

OpenGLエラーなら_IRR_OPENGL_USE_EXTPOINTER_をdefineします。その他X11関連のエラーなら_IRR_LINUX_X11_VIDMODE_をコメントアウトするか、_IRR_LINUX_X11_RANDR_を定義してみてください。X11の定義はどちらかが有効になっていないと、フルスクリーンモードが使えなくなります。

最後にサンプルのコンパイル方法を補足しておきます。サンプルは該当ディレクトリでmakeすればbin/Linuxに実行ファイルが作成されます。しかし、01.HelloWorld以外はソースコードの修正が必要。大半のサンプルはデバイスが実行時選択方式になっているかDirectX9が指定されてします。このままでは上手く起動しません。ドライバタイプをvideo::EDT_OPENGLに固定してしまいましょう。

その他、compiz fusionの3Dデスクトップをお使いの場合は、IrrlichtをOpenGLデバイスで動かしたときに、タイトルバーが消失する不具合があります。ウィンドウが移動出来なくなるだけで特に問題でもないですが、鬱陶しいと思われたら[システム]-[設定]-[外観の設定]-[視覚効果]効果なしにしてください。

参考文献:Compiling On Linux (Irrlicht wiki) / Installing Irrlicht - Ubuntu (Irrlicht wiki)

Irrlicht日本語対応カスタムGUIテスト4

IrrIM Test 2007.11.21a Ver.

前回までの続き。Irrlicht.dllと多言語用改造コードを分離するプロジェクトです。

Windows版のみですが、ソースがまとまったので公開します。Irrlichtのライセンスに従い自由にご使用下さい。

IrrIM Test 2007.11.21a

また、フィードバック もお待ちしております。1.4betaとIrrIM、どちらの不具合か分からない場合でも、気にせずお気軽に報告下さい。

SeagateのHDD、工場出荷時にウィルス混入

Seagateの「Maxtor Basics Personal Storage 3200」が、「World of Warcraft」などのオンラインゲームのパスワードを盗むウイルスが混入された状態で出荷されていました。

Seagate HDDに混入のウイルス、ネットゲームを標的に (IT media)

ウィルスに感染しているハードディスクをPCに接続するとautorun.infが自動的にghost.pifを起動し、www.nice8.orgと www.we168.orgに強制的に接続してしまうというもので、台湾当局の調べによると台湾で生産された「Maxtor Basics 500G」約1800台がこのウイルスに感染したまま出荷されたと見ている。

遂に新品のHDDも信用できなくなりました。携帯用フラッシュメモリ、ポータブルプレイヤー、HDDビデオ等、全ての媒体が同様の危険性を孕んでいます。現に前年にはサンワサプライのフラッシュメモリにウィルスが混入していました。

サンワサプライ、フラッシュメモリ内蔵カードリーダにウイルス混入の可能性 (Impress Watch)

場合によっては、microSDカードに混入していて携帯電話が乗っ取られ、身に覚えのない多額の請求が来る事だってありえるのです。考えただけでも恐ろしい。

しかも、最近のウィルス対策ソフトは古いウィルスを検出できないものが沢山あるようです。

現代のウイルス対策ソフト、過去のウイルスに対処できず (IT media)

1994年に存在が確認されたウィルスがOSに依存せずに感染力が残っているというのも凄い話です。が、それよりも検出できないのは大問題。撲滅したはずのウィルスが知らず知らずのうちに広まり、それが突然猛威を振るう可能性もあります。

これらの防衛策は2つ。1つはOSの自動起動をOFFにしておく。そして、2つ目はフォーマット済みでも再フォーマットして使用する事。このときはBIOSからローレベルフォーマットをすることをお薦めします。ブートセクターに感染されていると通常フォーマットでは駆除されませんので。

Irrlicht日本語対応カスタムGUIテスト2

前回に続き、Irrlicht.dllに手を加えず各国語対応するテスト第二弾。今回はマルチバイト文字の入力にチャレンジ。1.4βで試作。

Official Irrlicht with Custom GUI 2

Irrlichtのキーイベントでは、幾ら頑張っても完全にマルチバイト文字を取得することは出来ません(Linuxの場合は不明)。そこで、Irrlicht外部でWM_IME_CHARを横取りしてしまおうと計画。テストソースを書き上げて実行。

動 か な い

コンパイルエラーという訳ではありません。そもそも、WM_IME_CHARイベントを取得できないんです。IrrlichtMLでは内部でWM_IME_CHARを検出し、その情報を元にマルチバイト文字を取得しています。それが、外部に移しただけで機能しなくなるとは…。

とりあえず、回避作の目処は立ちましたので、近いうちに前回の分もセットで新しい実装をお披露目できるかと思います。