int main (int argc, const char * argv[]) { Command cmd; char lineBuff[100]; // http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Reference/Quartz_Services_Ref/Reference/reference.html#//apple_ref/doc/uid/TP30001070 g_screenWidth = CGDisplayPixelsWide(CGDisplayPrimaryDisplay(CGMainDisplayID())); g_screenHeight = CGDisplayPixelsHigh(CGDisplayPrimaryDisplay(CGMainDisplayID())); while (true) { readLine(lineBuff, 100); parseCommand(&cmd, lineBuff); execCommand(&cmd); } return 0; }
int fs_ml_video_mode_get_current(fs_ml_video_mode *mode) { mode->width = 0; mode->height = 0; mode->fps = 0; mode->bpp = 0; mode->flags = 0; #if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1060 // CGDisplayCurrentMode is deprecated in Mac OS X 10.6, so we use // the new API here CGDirectDisplayID currentDisplay = CGDisplayPrimaryDisplay( kCGDirectMainDisplay); CGDisplayModeRef currentMode = CGDisplayCopyDisplayMode( currentDisplay); mode->width = CGDisplayModeGetWidth(currentMode); mode->height = CGDisplayModeGetHeight(currentMode); mode->fps = CGDisplayModeGetRefreshRate(currentMode); CGDisplayModeRelease(currentMode); #else CFNumberRef number; long refresh, width, height; CFDictionaryRef currentMode = CGDisplayCurrentMode(kCGDirectMainDisplay); number = CFDictionaryGetValue(currentMode, kCGDisplayWidth); CFNumberGetValue(number, kCFNumberLongType, &width); number = CFDictionaryGetValue(currentMode, kCGDisplayHeight); CFNumberGetValue(number, kCFNumberLongType, &height); number = CFDictionaryGetValue(currentMode, kCGDisplayRefreshRate); CFNumberGetValue(number, kCFNumberLongType, &refresh); mode->width = width; mode->height = height; mode->fps = refresh; #endif //fs_log("WARNING: assuming 60 Hz refresh rate on Mac OS X\n"); //mode->fps = 60; if (mode->fps == 0) { fs_log("WARNING: refresh rate was not detected\n"); fs_log("full video sync will not be enabled automatically, but can " "be forced\n"); } return 0; }