summaryrefslogtreecommitdiff
path: root/indra/llwindow/llopenglview-objc.mm
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llwindow/llopenglview-objc.mm')
-rw-r--r--indra/llwindow/llopenglview-objc.mm22
1 files changed, 22 insertions, 0 deletions
diff --git a/indra/llwindow/llopenglview-objc.mm b/indra/llwindow/llopenglview-objc.mm
index e89c9267d5..a1dece54f4 100644
--- a/indra/llwindow/llopenglview-objc.mm
+++ b/indra/llwindow/llopenglview-objc.mm
@@ -39,6 +39,28 @@
@implementation LLOpenGLView
+- (unsigned long)getVramSize
+{
+ unsigned long vram_bytes = 0;
+
+ io_service_t display_port = CGDisplayIOServicePort(kCGDirectMainDisplay);
+
+ const void* type_code = IORegistryEntryCreateCFProperty(display_port, CFSTR(kIOFBMemorySizeKey), kCFAllocatorDefault, kNilOptions);
+
+ // Ensure we have valid data from IOKit
+ if(type_code && CFGetTypeID(type_code) == CFNumberGetTypeID())
+ {
+ long val;
+ // Retrieve actual number...is Apple ever embarrassed by this nonsense?
+ //
+ CFNumberGetValue((const __CFNumber*)type_code, kCFNumberSInt32Type, &val);
+ vram_bytes = (unsigned long)val;
+ CFRelease(type_code);
+ }
+
+ return vram_bytes;
+}
+
- (void)viewDidMoveToWindow
{
[[NSNotificationCenter defaultCenter] addObserver:self