Nazara Engine  0.4
A fast, complete, cross-platform API designed for game development
HardwareInfo.hpp
1 // Copyright (C) 2017 Jérôme Leclercq
2 // This file is part of the "Nazara Engine - Core module"
3 // For conditions of distribution and use, see copyright notice in Config.hpp
4 
5 #pragma once
6 
7 #ifndef NAZARA_HARDWAREINFO_HPP
8 #define NAZARA_HARDWAREINFO_HPP
9 
10 #include <Nazara/Prerequesites.hpp>
11 #include <Nazara/Core/Enums.hpp>
12 #include <Nazara/Core/String.hpp>
13 
14 namespace Nz
15 {
16  class NAZARA_CORE_API HardwareInfo
17  {
18  public:
19  HardwareInfo() = delete;
20  ~HardwareInfo() = delete;
21 
22  static void Cpuid(UInt32 functionId, UInt32 subFunctionId, UInt32 result[4]);
23 
24  static String GetProcessorBrandString();
25  static unsigned int GetProcessorCount();
26  static ProcessorVendor GetProcessorVendor();
27  static String GetProcessorVendorName();
28  static UInt64 GetTotalMemory();
29 
30  static bool HasCapability(ProcessorCap capability);
31 
32  static bool Initialize();
33 
34  static bool IsCpuidSupported();
35  static bool IsInitialized();
36 
37  static void Uninitialize();
38  };
39 }
40 
41 #endif // NAZARA_HARDWAREINFO_HPP
Core class that represents the info we can get from hardware.
Definition: HardwareInfo.hpp:16
TODO: Inherit SoundEmitter from Node.
Definition: Algorithm.hpp:12
Core class that represents a string.
Definition: String.hpp:22