我目前正在使用 C++ 开发精灵引擎。我有一个带有虚函数 init_api 的抽象类 IEngine。这需要一个 void*。
// Initialise the engines' API
// api_params - void* to api parameters for initalisation
// hWnd - window handle
virtual bool init_api( void* api_params, HWND hWnd ) = 0;
然后我有一个 DirectX 实现的引擎类 CEngineDX。然后将 api_params 转换为 D3DPRESENT_PARAMETERS*,因此它可以用于初始化 DirectX。
// Cast api_params to a D3DPRESENT_PARAMETERS
D3DPRESENT_PARAMETERS* presentParams = NULL;
presentParams = reinterpret_cast< D3DPRESENT_PARAMETERS* >( api_params );
我对这个设置很满意,但如果你愿意,我想让其他程序员对这个“解决方案”有看法。
为回复干杯!
卡尔