forked from LeenkxTeam/LNXSDK
151 lines
3.1 KiB
Haxe
151 lines
3.1 KiB
Haxe
package kha;
|
|
|
|
@:headerCode("
|
|
#include <kinc/display.h>
|
|
")
|
|
class Display {
|
|
var num: Int;
|
|
|
|
static var displays: Array<Display> = null;
|
|
|
|
function new(num: Int) {
|
|
this.num = num;
|
|
}
|
|
|
|
@:functionCode("return kinc_count_displays();")
|
|
static function count(): Int {
|
|
return 0;
|
|
}
|
|
|
|
@:functionCode("kinc_display_init();")
|
|
static function initKoreDisplay(): Void {}
|
|
|
|
public static function init() {
|
|
if (displays == null) {
|
|
initKoreDisplay();
|
|
displays = [];
|
|
for (i in 0...count()) {
|
|
displays.push(new Display(i));
|
|
}
|
|
}
|
|
}
|
|
|
|
@:functionCode("return kinc_primary_display();")
|
|
static function primaryId() {
|
|
return 0;
|
|
}
|
|
|
|
public static var primary(get, never): Display;
|
|
|
|
static function get_primary(): Display {
|
|
init();
|
|
return displays[primaryId()];
|
|
}
|
|
|
|
public static var all(get, never): Array<Display>;
|
|
|
|
static function get_all(): Array<Display> {
|
|
init();
|
|
return displays;
|
|
}
|
|
|
|
public var available(get, never): Bool;
|
|
|
|
@:functionCode("return kinc_display_available(num);")
|
|
function get_available(): Bool {
|
|
return true;
|
|
}
|
|
|
|
public var name(get, never): String;
|
|
|
|
@:functionCode("return ::String(kinc_display_name(num));")
|
|
function get_name(): String {
|
|
return "Display";
|
|
}
|
|
|
|
public var x(get, never): Int;
|
|
|
|
@:functionCode("return kinc_display_current_mode(num).x;")
|
|
function get_x(): Int {
|
|
return 0;
|
|
}
|
|
|
|
public var y(get, never): Int;
|
|
|
|
@:functionCode("return kinc_display_current_mode(num).y;")
|
|
function get_y(): Int {
|
|
return 0;
|
|
}
|
|
|
|
public var width(get, never): Int;
|
|
|
|
@:functionCode("return kinc_display_current_mode(num).width;")
|
|
function get_width(): Int {
|
|
return 800;
|
|
}
|
|
|
|
public var height(get, never): Int;
|
|
|
|
@:functionCode("return kinc_display_current_mode(num).height;")
|
|
function get_height(): Int {
|
|
return 600;
|
|
}
|
|
|
|
public var frequency(get, never): Int;
|
|
|
|
@:functionCode("return kinc_display_current_mode(num).frequency;")
|
|
function get_frequency(): Int {
|
|
return 60;
|
|
}
|
|
|
|
public var pixelsPerInch(get, never): Int;
|
|
|
|
@:functionCode("return kinc_display_current_mode(num).pixels_per_inch;")
|
|
function get_pixelsPerInch(): Int {
|
|
return 72;
|
|
}
|
|
|
|
public var modes(get, never): Array<DisplayMode>;
|
|
|
|
var allModes: Array<DisplayMode> = null;
|
|
|
|
@:functionCode("return kinc_display_count_available_modes(num);")
|
|
function modeCount(): Int {
|
|
return 0;
|
|
}
|
|
|
|
@:functionCode("return kinc_display_available_mode(num, modeIndex).width;")
|
|
function getModeWidth(modeIndex: Int) {
|
|
return 800;
|
|
}
|
|
|
|
@:functionCode("return kinc_display_available_mode(num, modeIndex).height;")
|
|
function getModeHeight(modeIndex: Int) {
|
|
return 600;
|
|
}
|
|
|
|
@:functionCode("return kinc_display_available_mode(num, modeIndex).frequency;")
|
|
function getModeFrequency(modeIndex: Int) {
|
|
return 60;
|
|
}
|
|
|
|
@:functionCode("return kinc_display_available_mode(num, modeIndex).bits_per_pixel;")
|
|
function getModeBitsPerPixel(modeIndex: Int) {
|
|
return 32;
|
|
}
|
|
|
|
function initModes() {
|
|
if (allModes == null) {
|
|
allModes = [];
|
|
for (i in 0...modeCount()) {
|
|
allModes.push(new DisplayMode(getModeWidth(i), getModeHeight(i), getModeFrequency(i), getModeBitsPerPixel(i)));
|
|
}
|
|
}
|
|
}
|
|
|
|
function get_modes(): Array<DisplayMode> {
|
|
initModes();
|
|
return allModes;
|
|
}
|
|
}
|