32 lines
908 B
C++
32 lines
908 B
C++
#pragma once
|
|
#include <memory>
|
|
|
|
#include "UserDeviceInfo.h"
|
|
#include <Mmdeviceapi.h>
|
|
|
|
namespace WinDevice
|
|
{
|
|
class WinDeviceManager {
|
|
public:
|
|
WinDeviceManager();
|
|
~WinDeviceManager();
|
|
|
|
UserDeviceInfo GetUserDeviceInfo();
|
|
static bool IsDirectDrawAccelerationAvailable();
|
|
static bool IsDirect3DAccelerationAvailable();
|
|
|
|
private:
|
|
std::shared_ptr<OsInfo> osInfo;
|
|
std::shared_ptr<CpuInfo> cpuInfo;
|
|
std::shared_ptr<std::vector<GpuInfo>> gpuInfos;
|
|
std::shared_ptr<std::vector<DisplayMonitorInfo>> monitorInfos;
|
|
|
|
void _UpdateOperatingSystemInfo();
|
|
void _UpdateCpuInfo();
|
|
void _UpdateGpuInfo();
|
|
BOOL _EnumMonitorProc(HMONITOR hMonitor);
|
|
static BOOL CALLBACK Monitor_enum_proc_(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData);
|
|
void _UpdateMonitorInfo();
|
|
};
|
|
}
|