/* SST_WMEnum_MacOSX.m Author: Patrick Baggett Created: 11/16/2012 Purpose: Enumerates graphics adapters and screens on MacOS X License: This program is free software. It comes without any warranty, to the extent permitted by applicable law. You can redistribute it and/or modify it under the terms of the Do What The Fuck You Want To Public License, Version 2, as published by Sam Hocevar. See http://sam.zoy.org/wtfpl/COPYING for more details. */ #import #import #import #include #include "MacOSXPrivate.h" #include #include /******************************************************************************/ SST_GraphicsEnumerator SST_WM_CreateGraphicsEnumerator(void) { SST_GraphicsEnumerator_MacOSX* enumerator; uint32_t count = 0, i; CGDirectDisplayID* ids; /* Get list of active displays */ CGGetActiveDisplayList(UINT32_MAX, NULL, &count); if(count == 0) return NULL; /* Allocate array of displays, then fetch */ ids = malloc(sizeof(CGDirectDisplayID) * count); if(ids == NULL) return NULL; if(CGGetActiveDisplayList(count, ids, &count) != kCGErrorSuccess) { free(ids); return NULL; } /* Match GPU to display */ for(i=0; i (*bufferSize)-1) copyAmount = (*bufferSize)-1; memcpy(nameReturn, s, copyAmount); nameReturn[copyAmount] = '\0'; } } /******************************************************************************/ size_t SST_WM_GetEnumScreenCount(SST_GraphicsEnumerator enumerator, size_t adapterId) { /* TODO: Implement */ return 1; } /******************************************************************************/ void SST_WM_GetEnumVideoModes(SST_GraphicsEnumerator enumerator, size_t adapterId, size_t screenId, SST_VideoMode* modesReturn, size_t* modeCountReturn) { /* TODO: Implement */ } /******************************************************************************/ void SST_WM_GetEnumCurrentVideoMode(SST_GraphicsEnumerator enumerator, size_t adapterId, size_t screenId, SST_VideoMode* mode) { /* TODO: Implement */ } /******************************************************************************/ void SST_WM_DestroyGraphicsEnumerator(SST_GraphicsEnumerator enumerator) { /* TODO: Implement */ SST_GraphicsEnumerator_MacOSX* enumMac = (SST_GraphicsEnumerator_MacOSX*)enumerator; free(enumMac); } /******************************************************************************/