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;
 | |
| 	}
 | |
| }
 |