推 hilorrk:一般來說物理引擎也會負責跨平台所需的吧? 10/12 00:41
比較漂亮的作法:
class Renderer { // 某個處理繪圖用的 abstract class
public:
virtual void render(const Scene& scene) = 0; // 把場景畫出來
};
class RendererD3D9 : Renderer {
public:
void render(const Scene& scene)
{
// 使用 DirectX 進行繪圖
}
};
class RendererGL : Renderer {
public:
void render(const Scene& scene)
{
// 使用 OpenGL 進行繪圖
}
};
比較醜但是直接的做法
void Render(const Scene& scene)
{
#ifdef USE_OPENGL
// 使用 OpenGL 進行繪圖
#else
// 使用 DirectX 進行繪圖
#end
}
說穿了也沒什麼神奇的
當然其中也有一些技巧就是了 (比如 abstract factory pattern)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.79.175