Skip to content

Commit

Permalink
Removed duplicate machine info which is already provided by PlatformU…
Browse files Browse the repository at this point in the history
…tils (#4581)
  • Loading branch information
kintel committed Mar 30, 2023
1 parent f334a14 commit 8a07b27
Show file tree
Hide file tree
Showing 7 changed files with 79 additions and 138 deletions.
17 changes: 1 addition & 16 deletions src/glview/OffscreenContextCGL.mm
Expand Up @@ -6,8 +6,6 @@
#include <sstream>

#import <AppKit/AppKit.h> // for NSOpenGL...
#include <CoreServices/CoreServices.h>
#include <sys/utsname.h>

struct OffscreenContext
{
Expand All @@ -21,22 +19,9 @@

std::string offscreen_context_getinfo(OffscreenContext *)
{
struct utsname name;
uname(&name);

SInt32 majorVersion,minorVersion,bugFixVersion;

std::string osVersion = [[[NSProcessInfo processInfo] operatingSystemVersionString] UTF8String];

const char *arch = "unknown";
if (sizeof(int*) == 4) arch = "32-bit";
else if (sizeof(int*) == 8) arch = "64-bit";

std::ostringstream out;
out << "GL context creator: Cocoa / CGL\n"
<< "PNG generator: Core Foundation\n"
<< "OS info: Mac OS X " << osVersion << " (" << name.machine << " kernel)\n"
<< "Machine: " << arch << "\n";
<< "PNG generator: Core Foundation\n";
return out.str();
}

Expand Down
25 changes: 8 additions & 17 deletions src/glview/OffscreenContextEGL.cc
Expand Up @@ -53,27 +53,18 @@ struct OffscreenContext {

#include "OffscreenContextAll.hpp"

std::string get_os_info()
std::string get_gl_info(EGLDisplay display)
{
struct utsname u;
std::stringstream result;

if (uname(&u) < 0) {
return STR("OS info: unknown, uname() error\n");
} else {
return STR("OS info: ", u.sysname, " ", u.release, " ", u.version, "\n",
"Machine: ", u.machine);
}
return "";
}
const char *vendor = eglQueryString(display, EGL_VENDOR);
const char *version = eglQueryString(display, EGL_VERSION);

std::string get_gl_info(EGLDisplay display)
{
char const *vendor = eglQueryString(display, EGL_VENDOR);
char const *version = eglQueryString(display, EGL_VERSION);
result << "GL context creator: EGL\n"
<< "EGL version: " << version << " (" << vendor << ")\n"
<< "PNG generator: lodepng\n";

return STR("GL context creator: EGL\n",
"EGL version: ", version, " (", vendor, ")", "\n",
get_os_info());
return result.str();
}

std::string offscreen_context_getinfo(OffscreenContext *ctx)
Expand Down
24 changes: 7 additions & 17 deletions src/glview/OffscreenContextGLX.cc
Expand Up @@ -60,19 +60,6 @@ struct OffscreenContext

#include "OffscreenContextAll.hpp"

std::string get_os_info()
{
struct utsname u;

if (uname(&u) < 0) {
return STR("OS info: unknown, uname() error\n");
} else {
return STR("OS info: ", u.sysname, " ", u.release, " ", u.version, "\n",
"Machine: ", u.machine);
}
return "";
}

std::string offscreen_context_getinfo(OffscreenContext *ctx)
{
assert(ctx);
Expand All @@ -81,13 +68,16 @@ std::string offscreen_context_getinfo(OffscreenContext *ctx)
return {"No GL Context initialized. No information to report\n"};
}

std::stringstream result;

int major, minor;
glXQueryVersion(ctx->xdisplay, &major, &minor);

return STR("GL context creator: GLX\n",
"PNG generator: lodepng\n",
"GLX version: ", major, ".", minor, "\n",
get_os_info());
result << "GL context creator: GLX\n"
<< "GLX version: " << major << "." << minor << "\n"
<< "PNG generator: lodepng\n";

return result.str();
}

static XErrorHandler original_xlib_handler = nullptr;
Expand Down
11 changes: 1 addition & 10 deletions src/glview/OffscreenContextNULL.cc
Expand Up @@ -30,16 +30,7 @@ void offscreen_context_init(OffscreenContext& ctx, int width, int height)

string offscreen_context_getinfo(OffscreenContext *ctx)
{
const char *arch = "unknown";
if (sizeof(int *) == 4) arch = "32-bit";
else if (sizeof(int *) == 8) arch = "64-bit";
#ifdef OPENSCAD_OS
auto OSInfo = OPENSCAD_OS;
#else
auto OSInfo = "unknown";
#endif
return STR("OS info: ", OSInfo,
"\nMachine: ", arch, "\n");
return "";
}

OffscreenContext *create_offscreen_context(int w, int h)
Expand Down
37 changes: 5 additions & 32 deletions src/glview/OffscreenContextWGL.cc
Expand Up @@ -45,41 +45,14 @@ void offscreen_context_init(OffscreenContext& ctx, int width, int height)
ctx.height = height;
}

std::string get_os_info()
{
OSVERSIONINFO osvi;

ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&osvi);

SYSTEM_INFO si;
GetSystemInfo(&si);
std::map<WORD, const char *> archs;
archs[PROCESSOR_ARCHITECTURE_AMD64] = "amd64";
archs[PROCESSOR_ARCHITECTURE_IA64] = "itanium";
archs[PROCESSOR_ARCHITECTURE_INTEL] = "x86";
archs[PROCESSOR_ARCHITECTURE_UNKNOWN] = "unknown";

std::ostringstream out;
out << "OS info: "
<< "Microsoft(TM) Windows(TM) " << osvi.dwMajorVersion << " "
<< osvi.dwMinorVersion << " " << osvi.dwBuildNumber << " "
<< osvi.szCSDVersion;
if (archs.find(si.wProcessorArchitecture) != archs.end()) out << " " << archs[si.wProcessorArchitecture];
out << "\n";

out << "Machine: " << si.dwProcessorType;

return out.str();
}

std::string offscreen_context_getinfo(OffscreenContext * /*ctx*/)
{
std::stringstream result;
// should probably get some info from WGL context here?
return STR("GL context creator: WGL\n",
"PNG generator: lodepng\n",
get_os_info());
result << "GL context creator: WGL\n"
<< "PNG generator: lodepng\n";

return result.str();
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
Expand Down
78 changes: 37 additions & 41 deletions src/platform/PlatformUtils-mac.mm
@@ -1,6 +1,10 @@
#include "PlatformUtils.h"

#include <sstream>

#include <sys/types.h>
#include <sys/sysctl.h>
#include <sys/utsname.h>
#include <boost/lexical_cast.hpp>

#import <Foundation/Foundation.h>
Expand All @@ -9,12 +13,12 @@

std::string PlatformUtils::pathSeparatorChar()
{
return ":";
return ":";
}

std::string PlatformUtils::userDocumentsPath()
{
return documentsPath();
return documentsPath();
}

std::string PlatformUtils::documentsPath()
Expand All @@ -24,12 +28,12 @@

std::string PlatformUtils::userConfigPath()
{
NSError *error;
NSURL *appSupportDir = [[NSFileManager defaultManager] URLForDirectory:NSApplicationSupportDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:&error];
if (error) {
return "";
}
return std::string([[appSupportDir path] UTF8String]) + std::string("/") + PlatformUtils::OPENSCAD_FOLDER_NAME;
NSError *error;
NSURL *appSupportDir = [[NSFileManager defaultManager] URLForDirectory:NSApplicationSupportDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:&error];
if (error) {
return "";
}
return std::string([[appSupportDir path] UTF8String]) + std::string("/") + PlatformUtils::OPENSCAD_FOLDER_NAME;
}

unsigned long PlatformUtils::stackLimit()
Expand All @@ -51,55 +55,47 @@

const std::string PlatformUtils::user_agent()
{
std::string result;
std::stringstream result;

result += "OpenSCAD/";
result += openscad_detailedversionnumber;
result += " (";
result += sysinfo(false);
result += ")";
result << "OpenSCAD/" << openscad_detailedversionnumber
<< " (" << sysinfo(false) << ")";

return result;
return result.str();
}

const std::string PlatformUtils::sysinfo(bool extended)
{
std::string result;
std::stringstream result;

result += "Mac OS X ";
result += [[[NSProcessInfo processInfo] operatingSystemVersionString] UTF8String];
NSOperatingSystemVersion version = [[NSProcessInfo processInfo] operatingSystemVersion];
struct utsname name;
uname(&name);
result << "macOS " << version.majorVersion << "." << version.minorVersion << "." << version.patchVersion
<< " " << name.machine;

int64_t physical_memory;
int32_t numcpu;
size_t length64 = sizeof(int64_t);
size_t length32 = sizeof(int32_t);;

sysctlbyname("hw.memsize", &physical_memory, &length64, nullptr, 0);
sysctlbyname("hw.physicalcpu", &numcpu, &length32, nullptr, 0);

size_t modellen = 0;
sysctlbyname("hw.model", nullptr, &modellen, nullptr, 0);
if (modellen) {
char *model = (char *)malloc(modellen*sizeof(char));
sysctlbyname("hw.model", model, &modellen, nullptr, 0);
result += " ";
result += model;
free(model);
std::string model;
if (modellen > 0) {
model.resize(modellen - 1);
sysctlbyname("hw.model", model.data(), &modellen, nullptr, 0);
result << " " << model;
}

if (extended) {
result += " ";
result += boost::lexical_cast<std::string>(numcpu);
result += " CPU";
if (numcpu > 1) result += "s";
int32_t numcpu;
size_t length32 = sizeof(int32_t);;
sysctlbyname("hw.physicalcpu", &numcpu, &length32, nullptr, 0);
int64_t physical_memory;
size_t length64 = sizeof(int64_t);
sysctlbyname("hw.memsize", &physical_memory, &length64, nullptr, 0);

result += " ";
result += PlatformUtils::toMemorySizeString(physical_memory, 2);
result += " RAM ";
result << " " << numcpu << " CPU";
if (numcpu > 1) result << "s";
result << " " << PlatformUtils::toMemorySizeString(physical_memory, 2) << " RAM ";
}

return result;
return result.str();
}

void PlatformUtils::ensureStdIO(void) {}

25 changes: 20 additions & 5 deletions src/platform/PlatformUtils-win.cc
@@ -1,4 +1,7 @@
#include "PlatformUtils.h"

#include <map>

#include "printutils.h"
#include "findversion.h"
#ifndef _WIN32_WINNT
Expand Down Expand Up @@ -149,16 +152,28 @@ const std::string PlatformUtils::sysinfo(bool extended)
{
std::string result;

SYSTEM_INFO si;
GetSystemInfo(&si);
std::map<WORD, const char *> archs;
archs[PROCESSOR_ARCHITECTURE_AMD64] = "x86_64";
archs[PROCESSOR_ARCHITECTURE_ARM] = "arm";
archs[PROCESSOR_ARCHITECTURE_ARM64] = "arm64";
archs[PROCESSOR_ARCHITECTURE_IA64] = "itanium";
archs[PROCESSOR_ARCHITECTURE_INTEL] = "x86";
archs[PROCESSOR_ARCHITECTURE_UNKNOWN] = "unknown";

OSVERSIONINFOEX osinfo;
osinfo.dwOSVersionInfoSize = sizeof(osinfo);

if (GetVersionExEx(&osinfo) == 0) {
result += "Unknown Windows(TM)";
result += "Microsoft Windows Unknown Version";
} else {
boost::format fmt("Windows(TM) %d.%d SP %d.%d NTW %i MSDN 724833");
fmt % osinfo.dwMajorVersion % osinfo.dwMinorVersion
% osinfo.wServicePackMajor % osinfo.wServicePackMinor
% (osinfo.wProductType == VER_NT_WORKSTATION);
int majorVersion = osinfo.dwMajorVersion;
if (majorVersion == 10 && osinfo.dwBuildNumber >= 22000) {
majorVersion = 11;
}
boost::format fmt("Microsoft Windows %d (%d.%d.%d) %s");
fmt % majorVersion % osinfo.dwMajorVersion % osinfo.dwMinorVersion % osinfo.dwBuildNumber % archs[si.wProcessorArchitecture];
result += fmt.str();
}

Expand Down

0 comments on commit 8a07b27

Please sign in to comment.