#ifndef _DDRAW_DEVICEENUMERATOR_HPP_ #define _DDRAW_DEVICEENUMERATOR_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _COMMON_BLOCK_HPP_ #include #endif #ifndef _DDRAW_DEVICEDESCRIPTION_HPP_ #include #endif class DeviceEnumerator { public: friend class Direct3D; DeviceEnumerator(void); virtual ~DeviceEnumerator(); Block &enumeratedDevices(void); protected: virtual void enumDevice(DeviceDescription &deviceDescription); private: enum{PreferredDeviceBitDepth=24}; DeviceEnumerator(const DeviceEnumerator &someDeviceEnumerator); DeviceEnumerator &operator=(const DeviceEnumerator &someDeviceEnumerator); static HRESULT WINAPI enumDeviceCallback(LPGUID lpGUID,LPSTR lpszDeviceDesc,LPSTR lpszDeviceName,LPD3DDEVICEDESC lpd3dHWDeviceDesc,LPD3DDEVICEDESC lpd3dSWDeviceDesc,LPVOID lpUserArg); Block mEnumeratedDevices; }; #endif