// 3ddevice.hclass C3DDevice{public: virtual ~C3DDevice() { } virtual void RenderTriangle() pure; static 3DDevice* m_pCurrent;private:}; // 3ddevice_d3d.hclass C3DDevice_Direct3D : public C3DDevice{public: void RenderTriangle();}; // 3ddevice_d3d.cppvoid C3DDevice_Direct3D::RenderTriangle(){ ...} // 3ddevice_ogl.hclass C3DDevice_OpenGL : public C3DDevice{public: void RenderTriangle();}; // 3ddevice_ogl.cppvoid C3DDevice_OpenGL::RenderTriangle(){ ...} // Initialize...C3DDevice::m_pCurrent = new C3DDevice_OpenGL; // OpenGL // Ah, the user changed to Direct3d in the menudelete C3DDevice::m_pCurrent;C3DDevice::m_pCurrent = new C3DDevice_Direct3D; // Direct3D
That's what I would do..
[edited by - Sunray on August 19, 2003 10:25:26 AM]
[edited by - Sunray on August 19, 2003 10:26:16 AM]