RavEngine
Loading...
Searching...
No Matches
SystemInfo.hpp
1#pragma once
2#include <cstdint>
3#include <string>
4#include <bitset>
5
6namespace RavEngine {
7
14 namespace SystemInfo {
18 uint16_t NumLogicalProcessors();
19
23 std::string CPUBrandString();
24
25 std::string GPUBrandString();
26
27 enum class EArchitecture{
28 Unknown, x86_64, aarch64, aarch64e
29 };
30
31 constexpr static EArchitecture Architecture(){
32 #if defined __aarch64__ || defined _M_ARM // first is clang/gcc, second is msvc
33 return EArchitecture::aarch64;
34 #elif defined __x86_64__ || defined _M_X64 // first is clang/gcc, second is msvc
35 return EArchitecture::x86_64;
36 #else
37 return EArchitecture::Unknown;
38 #endif
39 }
40
44 constexpr static const char* ArchitectureString(){
45
46 switch(Architecture()){
47 case EArchitecture::Unknown:
48 return "Unknown";
49 case EArchitecture::x86_64:
50 return "x86_64";
51 case EArchitecture::aarch64:
52 return "aarch64";
53 case EArchitecture::aarch64e:
54 return "aarch64e";
55 default:
56 return "Error";
57 }
58
59 };
60
64 std::string OperatingSystemNameString();
65
69 uint32_t SystemRAM();
70
71 struct OSVersion{
72 uint16_t major = 0, minor = 0, patch = 0, extra = 0;
73 };
74 OSVersion OperatingSystemVersion();
75
76 uint32_t GPUVRAM();
77
78 uint32_t GPUVRAMinUse();
79
81 bool
82 DrawIndirect : 1,
83 HDR10 : 1,
84 HIDPI : 1,
85 OcclusionQuery : 1,
86 DMA : 1,
87 Readback : 1,
88 Uint10Attribute :1,
89 HalfAttribute : 1;
91 std::memset(this,0,sizeof(GPUFeatures));
92 }
93 };
94 GPUFeatures GetSupportedGPUFeatures();
95
96 struct PCIDevice {
97 uint16_t vendorID;
98 uint16_t deviceID;
99 };
100 PCIDevice GPUPCIData();
101
102 struct Features{
103 bool HasTouchScreen : 1;
104 Features();
105 };
106
107 static const Features& getSupportedFeatures();
108 }
109}
std::string OperatingSystemNameString()
Definition SystemInfo.cpp:96
uint16_t NumLogicalProcessors()
Definition SystemInfo.cpp:48
std::string CPUBrandString()
Definition SystemInfo.cpp:53
uint32_t SystemRAM()
Definition SystemInfo.cpp:141
Definition Animation.hpp:6
Definition SystemInfo.hpp:102
Definition SystemInfo.hpp:80
Definition SystemInfo.hpp:71
Definition SystemInfo.hpp:96