0

私はしばらくの間自分のゲームに取り組んできました、そしてそれは窓でうまく働きます。すべてがクロスプラットフォームをサポートするように設計されています。あなたが私の質問を理解するために、私はすべてがどのように機能するかを少し説明する必要があります:

複数のライブラリがあります:プラットフォーム、ビデオ、XML、イメージ、エンジン。これらはそれぞれ、WindowsではDLLとして、iOSでは静的ライブラリとしてコンパイルされます。

ライブラリ内のすべては、通常の関数(で宣言されているextern "C")またはインターフェイスを持つオブジェクトのいずれかです。

フォルダ構造は、プロジェクト、インクルード、ソースのように構成されています。

インクルードフォルダーには、インターフェイスや関数プロトタイプなどのすべてのプラットフォームに共通のコードのみがあります。ソースフォルダには、各プラットフォームに固有の他のフォルダがあります。

私は問題なくiOSにプラットフォームライブラリを移植することができましたが、今はビデオのもので立ち往生しています。

これは、レンダリングAPI(WindowsではOpenGL、iOSではOpengl-ES 2)を処理します。

ドライバーを作成するには、次の関数を使用する必要があります。

IVideoDriver* CreateVideoDriver(void* container) 

コンテナはHWND窓の下にあります。

問題は、iOSでこの初期化スタイルを使用する方法がわからないということです。

いくつかのチュートリアルを読み、サンプルのソースコードを見ましたが、これを行う方法がわかりません。私が見たところ、OpenGLの初期化はビューで実行する必要があり、それらすべてをコードにリンクする方法がわかりません。私はいくつかのobjective-cコードを使用する必要があることを知っていますが、それは問題ではありません。

誰かがこの問題で私を助けてくれますか?

4

2 に答える 2

2

iOS 5.0で、AppleはGLKitビューを導入しました。これは、OpenGLES対応ビューのデフォルトの実装を提供します。GLKitビューを管理するGLKitビューコントローラーを使用することもできます。これらは、XCodeを介してメインの.xibに直接ドラッグし、実装にシームレスに接続できるオブジェクトです。

Ray Wenderlichは、優れたスターターポストを作成しました。これは、すべてをフックするのに役立つ可能性があります。 http://www.raywenderlich.com/5223/beginning-opengl-es-2-0-with-glkit-part-1

幸運を!

于 2012-06-19T12:23:40.290 に答える
1

多くのiOSサンプルで提供されているEAGLViewおよびESRendererを使用します( GLEssentialsまたはGLES2Sampleを参照)。

使い方はとても簡単です。OGLESフレームワークとのリンクを忘れないでください。これで完了です。

VideoDriverIOSは次のようになります。

VideoDriverIOS.h/VideoDriverIOS.mm内

class VideoDriverIOS : public IVideoDriver
{
public:
    ...
    // implement the pure virual here
protected:
    EAGLView* mView;
    ...
}

また、メソッドはmViewオブジェクトを直接使用できます。

于 2012-06-19T12:45:53.107 に答える