Working total ram, but needs restructuring

This commit is contained in:
NeeEoo
2023-03-24 02:06:15 +01:00
parent e0e59d4495
commit aeacb0fb3e
2 changed files with 60 additions and 2 deletions
+55
View File
@@ -0,0 +1,55 @@
package;
#if windows
@:headerCode("#include <windows.h>")
#elseif linux
@:headerCode("#include <stdio.h>")
#elseif mac
@:headerCode("#include <sys/sysctl.h>")
#end
class ExternalCode {
#if windows
@:functionCode("
// simple but effective code
unsigned long long allocatedRAM = 0;
GetPhysicallyInstalledSystemMemory(&allocatedRAM);
return (allocatedRAM / 1024);
")
#elseif linux
@:functionCode('
FILE *meminfo = fopen("/proc/meminfo", "r");
if(meminfo == NULL)
return -1;
char line[256];
while(fgets(line, sizeof(line), meminfo))
{
int ram;
if(sscanf(line, "MemTotal: %d kB", &ram) == 1)
{
fclose(meminfo);
return (ram / 1024);
}
}
fclose(meminfo);
return -1;
')
#elseif mac
@:functionCode('
int mib [] = { CTL_HW, HW_MEMSIZE };
int64_t value = 0;
size_t length = sizeof(value);
if(-1 == sysctl(mib, 2, &value, &length, NULL, 0))
return -1; // An error occurred
return value / 1024 / 1024;
')
#end
public static function getTotalRam():Float
{
return 0;
}
}
+5 -2
View File
@@ -1,5 +1,6 @@
package funkin.system.framerate;
import ExternalCode;
import native.HiddenProcess;
import funkin.utils.MemoryUtil;
@@ -39,8 +40,10 @@ class SystemInfo extends FramerateCategory {
vRAM = CoolUtil.getSizeString(cast(flixel.FlxG.stage.context3D.gl.getParameter(openfl.display3D.Context3D.__glMemoryTotalAvailable), UInt) * 1000);
}
#if cpp
totalMem = Std.string(MemoryUtil.getTotalMem() / 1024) + " GB";
#if cpp
var total = ExternalCode.getTotalRam();
trace("Total Ram: " + total);
totalMem = Std.string(total / 1024) + " GB";
#end
memType = MemoryUtil.getMemType();
}