プラットフォームに依存しないゲーム オブジェクトがプラットフォーム固有の Application オブジェクトに含まれる C++ で記述されたゲーム エンジンの設計があります。
私が解決しようとしている問題は、アプリケーションからゲームに OS 固有のデータを渡す必要がある場合です。この場合、DirectX 用の Windows からのメイン HWND、または他のプラットフォーム用の OpenGL コンテキストを、使用しているレンダラーに渡す必要があります。残念ながら、プラットフォーム固有のデータを期待できるレンダラーをほとんど制御できません。
アプリケーション側でレンダラーを初期化できることはわかっていますが、それを行うタイミングと場所をゲームに決定させたいと考えています。通常、私はアプリケーション側を制御できますが、ゲーム側は制御できません。ゲーム ライターは、別のレンダラーを使用することを選択する場合があります。
また、文字列を介してデータを渡すことができるある種の「Property Manager」を用意するというアイデアも楽しみましたが、そのアイデアはあまり好きではありません。
何か案は?