看板 C_and_CPP 關於我們 聯絡資訊
比較漂亮的作法: 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
hilorrk:一般來說物理引擎也會負責跨平台所需的吧? 10/12 00:41