From 9e00920884357b04d6c99a3ebe163daee3dab526 Mon Sep 17 00:00:00 2001 From: amerhifi Date: Thu, 16 May 2019 14:30:11 -0700 Subject: [PATCH] adding computer model to platform for macos --- libraries/platform/src/MACOSPlatform.cpp | 13 +++++++++++++ libraries/platform/src/platform.cpp | 4 ++++ libraries/platform/src/platform.h | 1 + libraries/platform/src/platformInstance.h | 3 +++ libraries/shared/src/GPUIdent.cpp | 2 ++ 5 files changed, 23 insertions(+) diff --git a/libraries/platform/src/MACOSPlatform.cpp b/libraries/platform/src/MACOSPlatform.cpp index cdb9283657..6b2e39bac5 100644 --- a/libraries/platform/src/MACOSPlatform.cpp +++ b/libraries/platform/src/MACOSPlatform.cpp @@ -16,6 +16,7 @@ #ifdef Q_OS_MAC #include #include +#include #endif using namespace platform; @@ -34,6 +35,7 @@ static void getCpuId( uint32_t* p, uint32_t ax ) #endif } + void MACOSInstance::enumerateCpu() { json cpu = {}; uint32_t cpuInfo[4]={0,0,0,0}; @@ -62,6 +64,16 @@ void MACOSInstance::enumerateCpu() { cpu[jsonKeys::cpuNumCores] = std::thread::hardware_concurrency(); _cpu.push_back(cpu); + + + //get system name + size_t len=0; + sysctlbyname("hw.model",NULL, &len, NULL, 0); + char* model = (char *) malloc(sizeof(char)*len+1); + sysctlbyname("hw.model", model, &len, NULL,0); + + _computerModel=std::string(model); + free(model); } void MACOSInstance::enumerateGpu() { @@ -73,6 +85,7 @@ void MACOSInstance::enumerateGpu() { _gpu.push_back(gpu); _display = ident->getOutput(); + } void MACOSInstance::enumerateMemory() { diff --git a/libraries/platform/src/platform.cpp b/libraries/platform/src/platform.cpp index 27e773d435..6f9dc78768 100644 --- a/libraries/platform/src/platform.cpp +++ b/libraries/platform/src/platform.cpp @@ -77,3 +77,7 @@ int platform::getNumMemory() { json platform::getMemory(int index) { return _instance->getMemory(index); } + +std::string platform::getComputerModel(){ + return _instance->getComputerModel(); +} diff --git a/libraries/platform/src/platform.h b/libraries/platform/src/platform.h index 895114ba6d..250b9144ac 100644 --- a/libraries/platform/src/platform.h +++ b/libraries/platform/src/platform.h @@ -32,6 +32,7 @@ json getDisplay(int index); int getNumMemory(); json getMemory(int index); +std::string getComputerModel(); } // namespace platform #endif // hifi_platform_h diff --git a/libraries/platform/src/platformInstance.h b/libraries/platform/src/platformInstance.h index 4770200f07..59aede1fb3 100644 --- a/libraries/platform/src/platformInstance.h +++ b/libraries/platform/src/platformInstance.h @@ -31,6 +31,8 @@ public: int getNumDisplay() { return (int)_display.size(); } json getDisplay(int index); + std::string getComputerModel(){return _computerModel;} + void virtual enumerateCpu()=0; void virtual enumerateMemory()=0; void virtual enumerateGpu()=0; @@ -42,6 +44,7 @@ protected: std::vector _memory; std::vector _gpu; std::vector _display; + std::string _computerModel; }; } // namespace platform diff --git a/libraries/shared/src/GPUIdent.cpp b/libraries/shared/src/GPUIdent.cpp index a78ded483b..658f68a689 100644 --- a/libraries/shared/src/GPUIdent.cpp +++ b/libraries/shared/src/GPUIdent.cpp @@ -22,6 +22,7 @@ #elif defined(Q_OS_MAC) #include +#include #endif #include @@ -56,6 +57,7 @@ GPUIdent* GPUIdent::ensureQuery(const QString& vendor, const QString& renderer) } } } + _dedicatedMemoryMB = bestVRAM; CGLDestroyRendererInfo(rendererInfo);