Hoi,
Sinds enkele dagen geleden ben ik begonnen met het herprogrammeren van m'n 3d engine (die nog niet af was). Hierbij ga ik meer OO te werk om later die engine ook voor andere toepassingen te gebruiken.
Wat ik doe is een pointer naar abstracte basisklasse "device" aanmaken waaraan ik dan een windowsDevice, linuxDevice of pocketpcDevice bijvoorbeeld aankoppel. Aan elk device is onder andere ook een 3d renderer gekoppeld, bijvoorbeeld een opengl of directx video klasse, die gemaakt is van de abstracte basisklasse "video" of iets dergelijks. Nu is mijn vraag: opengl is op zich OS-onafhankelijk (in mijn geval device-onafhankelijk), maar het initialiseren van opengl en soortgelijke libraries hangt natuurlijk af van het device, omdat het oftewel moet gekoppeld worden aan een windows venster of bvb een linux venster. hoe splits ik dat het beste op?
maak ik een klasse openglWindows en een klasse openglLinux of iets dergelijks? of maak ik best een aparte klasse die bijvoorbeeld een brug vormt tussen het device en de video render?
dus bvb:
deviceWindows <> videoBridgeWindows <> openglUniverseel
*2 *2 *1
deviceLinux<> videoBridgeLinux <> openglUniverseel
*2 *2 *1
of eerder dit:
deviceWindows <> openglWindows
*2 *2
deviceLinux <> openglLinux
*2 *2
*2 is OS afhankelijk
*1 is OS onafhankelijk
Dus hoe koppel ik het best opengl aan mijn universele "device" klasse? Ik vermoed dat ik best voor elk specifieke "device" (bvb windowsDevice) een soort brug-klasse maak naar opengl én bvb directx?
Sinds enkele dagen geleden ben ik begonnen met het herprogrammeren van m'n 3d engine (die nog niet af was). Hierbij ga ik meer OO te werk om later die engine ook voor andere toepassingen te gebruiken.
Wat ik doe is een pointer naar abstracte basisklasse "device" aanmaken waaraan ik dan een windowsDevice, linuxDevice of pocketpcDevice bijvoorbeeld aankoppel. Aan elk device is onder andere ook een 3d renderer gekoppeld, bijvoorbeeld een opengl of directx video klasse, die gemaakt is van de abstracte basisklasse "video" of iets dergelijks. Nu is mijn vraag: opengl is op zich OS-onafhankelijk (in mijn geval device-onafhankelijk), maar het initialiseren van opengl en soortgelijke libraries hangt natuurlijk af van het device, omdat het oftewel moet gekoppeld worden aan een windows venster of bvb een linux venster. hoe splits ik dat het beste op?
maak ik een klasse openglWindows en een klasse openglLinux of iets dergelijks? of maak ik best een aparte klasse die bijvoorbeeld een brug vormt tussen het device en de video render?
dus bvb:
deviceWindows <> videoBridgeWindows <> openglUniverseel
*2 *2 *1
deviceLinux<> videoBridgeLinux <> openglUniverseel
*2 *2 *1
of eerder dit:
deviceWindows <> openglWindows
*2 *2
deviceLinux <> openglLinux
*2 *2
*2 is OS afhankelijk
*1 is OS onafhankelijk
Dus hoe koppel ik het best opengl aan mijn universele "device" klasse? Ik vermoed dat ik best voor elk specifieke "device" (bvb windowsDevice) een soort brug-klasse maak naar opengl én bvb directx?