forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			109 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			109 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | #include <kinc/audio2/audio.h>
 | ||
|  | #include <kinc/graphics4/graphics.h>
 | ||
|  | #include <kinc/input/keyboard.h>
 | ||
|  | #include <kinc/input/mouse.h>
 | ||
|  | #include <kinc/log.h>
 | ||
|  | #include <kinc/system.h>
 | ||
|  | #include <kinc/window.h>
 | ||
|  | #include <stdio.h>
 | ||
|  | #include <stdlib.h>
 | ||
|  | 
 | ||
|  | __attribute__((import_module("imports"), import_name("js_time"))) int js_time(); | ||
|  | 
 | ||
|  | extern int kinc_internal_window_width; | ||
|  | extern int kinc_internal_window_height; | ||
|  | 
 | ||
|  | #ifdef KINC_KONG
 | ||
|  | void kong_init(void); | ||
|  | #endif
 | ||
|  | 
 | ||
|  | int kinc_init(const char *name, int width, int height, kinc_window_options_t *win, kinc_framebuffer_options_t *frame) { | ||
|  | 	kinc_window_options_t defaultWin; | ||
|  | 	if (win == NULL) { | ||
|  | 		kinc_window_options_set_defaults(&defaultWin); | ||
|  | 		win = &defaultWin; | ||
|  | 	} | ||
|  | 	kinc_framebuffer_options_t defaultFrame; | ||
|  | 	if (frame == NULL) { | ||
|  | 		kinc_framebuffer_options_set_defaults(&defaultFrame); | ||
|  | 		frame = &defaultFrame; | ||
|  | 	} | ||
|  | 	win->width = width; | ||
|  | 	win->height = height; | ||
|  | 
 | ||
|  | 	kinc_internal_window_width = width; | ||
|  | 	kinc_internal_window_height = height; | ||
|  | 
 | ||
|  | 	kinc_g4_internal_init(); | ||
|  | 	kinc_g4_internal_init_window(0, frame->depth_bits, frame->stencil_bits, true); | ||
|  | 
 | ||
|  | #ifdef KINC_KONG
 | ||
|  | 	kong_init(); | ||
|  | #endif
 | ||
|  | 
 | ||
|  | 	return 0; | ||
|  | } | ||
|  | 
 | ||
|  | bool kinc_internal_handle_messages() { | ||
|  | 	return true; | ||
|  | } | ||
|  | 
 | ||
|  | void kinc_set_keep_screen_on(bool on) {} | ||
|  | 
 | ||
|  | double kinc_frequency(void) { | ||
|  | 	return 1000.0; | ||
|  | } | ||
|  | 
 | ||
|  | kinc_ticks_t kinc_timestamp(void) { | ||
|  | 	return (kinc_ticks_t)(js_time()); | ||
|  | } | ||
|  | 
 | ||
|  | double kinc_time(void) { | ||
|  | 	return js_time() / 1000.0; | ||
|  | } | ||
|  | 
 | ||
|  | int kinc_cpu_cores(void) { | ||
|  | 	return 4; | ||
|  | } | ||
|  | 
 | ||
|  | int kinc_hardware_threads(void) { | ||
|  | 	return 4; | ||
|  | } | ||
|  | 
 | ||
|  | void kinc_internal_shutdown(void) {} | ||
|  | 
 | ||
|  | extern int kickstart(int argc, char **argv); | ||
|  | 
 | ||
|  | __attribute__((export_name("_start"))) void _start(void) { | ||
|  | 	kickstart(0, NULL); | ||
|  | } | ||
|  | 
 | ||
|  | __attribute__((export_name("_update"))) void _update(void) { | ||
|  | 	kinc_internal_update_callback(); | ||
|  | 	kinc_a2_update(); | ||
|  | } | ||
|  | 
 | ||
|  | __attribute__((export_name("_mousedown"))) void _mousedown(int button, int x, int y) { | ||
|  | 	kinc_internal_mouse_trigger_press(0, button, x, y); | ||
|  | } | ||
|  | 
 | ||
|  | __attribute__((export_name("_mouseup"))) void _mouseup(int button, int x, int y) { | ||
|  | 	kinc_internal_mouse_trigger_release(0, button, x, y); | ||
|  | } | ||
|  | 
 | ||
|  | __attribute__((export_name("_mousemove"))) void _mousemove(int x, int y) { | ||
|  | 	kinc_internal_mouse_trigger_move(0, x, y); | ||
|  | } | ||
|  | 
 | ||
|  | __attribute__((export_name("_wheel"))) void _wheel(int delta) { | ||
|  | 	kinc_internal_mouse_trigger_scroll(0, delta); | ||
|  | } | ||
|  | 
 | ||
|  | __attribute__((export_name("_keydown"))) void _keydown(int key) { | ||
|  | 	kinc_internal_keyboard_trigger_key_down(key); | ||
|  | } | ||
|  | 
 | ||
|  | __attribute__((export_name("_keyup"))) void _keyup(int key) { | ||
|  | 	kinc_internal_keyboard_trigger_key_up(key); | ||
|  | } |