【发布时间】:2010-01-25 15:00:11
【问题描述】:
我有一个用 C++ 编写的游戏引擎设计,其中独立于平台的游戏对象包含在特定于平台的应用程序对象中。
我要解决的问题是我需要将特定于操作系统的数据从应用程序传递到游戏。在这种情况下,我需要将用于 DirectX 的 Windows 的主要 HWND 或用于其他平台的 OpenGL 上下文传递给我正在使用的渲染器。不幸的是,我对渲染器几乎没有控制权,它可以期待特定于平台的数据。
我意识到我可以在应用程序端初始化渲染器,但我宁愿让游戏决定何时何地执行此操作。一般来说,我可以控制应用程序端,但不能控制游戏端。游戏编写者可能会选择使用不同的渲染器。
我也有过使用某种“属性管理器”的想法,我可以在其中通过字符串传递数据,但我不太喜欢这个想法。
有什么想法吗?
【问题讨论】:
-
如果游戏对象是平台无关的,那为什么还要传递平台依赖变量呢?
-
好问题!长话短说,我们可以控制 Application 类,但不能控制渲染器或游戏类。这只是我们目前正在探索的东西。
标签: c++ design-patterns cross-platform platform