forked from LeenkxTeam/LNXSDK
113 lines
2.7 KiB
Objective-C
113 lines
2.7 KiB
Objective-C
#import <Cocoa/Cocoa.h>
|
|
|
|
#include <kinc/display.h>
|
|
#include <kinc/log.h>
|
|
|
|
#define maxDisplays 10
|
|
// Display displays[maxDisplays];
|
|
|
|
/*void initMacDisplays() {
|
|
for (int i = 0; i < maxDisplays; ++i) {
|
|
displays[i]._data.index = i;
|
|
}
|
|
}*/
|
|
|
|
int kinc_count_displays(void) {
|
|
NSArray *screens = [NSScreen screens];
|
|
return (int)[screens count];
|
|
}
|
|
|
|
int kinc_primary_display(void) {
|
|
NSArray *screens = [NSScreen screens];
|
|
NSScreen *mainScreen = [NSScreen mainScreen];
|
|
for (int i = 0; i < maxDisplays; ++i) {
|
|
if (mainScreen == screens[i]) {
|
|
return i;
|
|
}
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
void kinc_display_init(void) {}
|
|
|
|
kinc_display_mode_t kinc_display_available_mode(int display, int mode) {
|
|
kinc_display_mode_t dm;
|
|
dm.width = 800;
|
|
dm.height = 600;
|
|
dm.frequency = 60;
|
|
dm.bits_per_pixel = 32;
|
|
return dm;
|
|
}
|
|
|
|
int kinc_display_count_available_modes(int display) {
|
|
return 1;
|
|
}
|
|
|
|
bool kinc_display_available(int display) {
|
|
return true;
|
|
}
|
|
|
|
const char *kinc_display_name(int display) {
|
|
return "Display";
|
|
}
|
|
|
|
kinc_display_mode_t kinc_display_current_mode(int display) {
|
|
NSArray *screens = [NSScreen screens];
|
|
NSScreen *screen = screens[display];
|
|
NSRect screenRect = [screen frame];
|
|
kinc_display_mode_t dm;
|
|
dm.width = screenRect.size.width;
|
|
dm.height = screenRect.size.height;
|
|
dm.frequency = 60;
|
|
dm.bits_per_pixel = 32;
|
|
|
|
NSDictionary *description = [screen deviceDescription];
|
|
NSSize displayPixelSize = [[description objectForKey:NSDeviceSize] sizeValue];
|
|
NSNumber *screenNumber = [description objectForKey:@"NSScreenNumber"];
|
|
CGSize displayPhysicalSize = CGDisplayScreenSize([screenNumber unsignedIntValue]); // in millimeters
|
|
double ppi = displayPixelSize.width / (displayPhysicalSize.width * 0.039370); // Convert MM to INCH
|
|
dm.pixels_per_inch = round(ppi);
|
|
|
|
return dm;
|
|
}
|
|
|
|
//**
|
|
/*
|
|
int Display::x() {
|
|
NSArray* screens = [NSScreen screens];
|
|
NSScreen* screen = screens[_data.index];
|
|
NSRect rect = [screen frame];
|
|
return rect.origin.x;
|
|
}
|
|
|
|
int Display::y() {
|
|
NSArray* screens = [NSScreen screens];
|
|
NSScreen* screen = screens[_data.index];
|
|
NSRect rect = [screen frame];
|
|
return rect.origin.y;
|
|
}
|
|
|
|
int Display::width() {
|
|
NSArray* screenArray = [NSScreen screens];
|
|
NSScreen* screen = [screenArray objectAtIndex:_data.index];
|
|
NSRect screenRect = [screen visibleFrame];
|
|
return screenRect.size.width;
|
|
}
|
|
|
|
int Display::height() {
|
|
NSArray* screenArray = [NSScreen screens];
|
|
// unsigned screenCount = [screenArray count];
|
|
NSScreen* screen = [screenArray objectAtIndex:_data.index];
|
|
NSRect screenRect = [screen visibleFrame];
|
|
return screenRect.size.height;
|
|
}
|
|
|
|
int Display::frequency() {
|
|
return 60;
|
|
}
|
|
|
|
int Display::pixelsPerInch() {
|
|
return 96;
|
|
}
|
|
*/
|