| 
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -83,6 +83,23 @@ extern CoreData CORE;                   // Global CORE state context | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			static PlatformData platform = { 0 };   // Platform specific data | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			//---------------------------------------------------------------------------------- | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Local Variables Definition | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			//---------------------------------------------------------------------------------- | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			static const char cursorLUT[11][12] = { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    "default",     // 0  MOUSE_CURSOR_DEFAULT | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    "default",     // 1  MOUSE_CURSOR_ARROW | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    "text",        // 2  MOUSE_CURSOR_IBEAM | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    "crosshair",   // 3  MOUSE_CURSOR_CROSSHAIR | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    "pointer",     // 4  MOUSE_CURSOR_POINTING_HAND | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    "ew-resize",   // 5  MOUSE_CURSOR_RESIZE_EW | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    "ns-resize",   // 6  MOUSE_CURSOR_RESIZE_NS | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    "nwse-resize", // 7  MOUSE_CURSOR_RESIZE_NWSE | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    "nesw-resize", // 8  MOUSE_CURSOR_RESIZE_NESW | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    "move",        // 9  MOUSE_CURSOR_RESIZE_ALL | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    "not-allowed"  // 10 MOUSE_CURSOR_NOT_ALLOWED | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			}; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			//---------------------------------------------------------------------------------- | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Module Internal Functions Declaration | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			//---------------------------------------------------------------------------------- | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -749,13 +766,23 @@ const char *GetClipboardText(void) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Show mouse cursor | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void ShowCursor(void) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    CORE.Input.Mouse.cursorHidden = false; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if (CORE.Input.Mouse.cursorHidden) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        EM_ASM( { document.getElementById("canvas").style.cursor = UTF8ToString($0); }, cursorLUT[CORE.Input.Mouse.cursor]); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        CORE.Input.Mouse.cursorHidden = false; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Hides mouse cursor | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void HideCursor(void) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    CORE.Input.Mouse.cursorHidden = true; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if (!CORE.Input.Mouse.cursorHidden) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        EM_ASM(document.getElementById('canvas').style.cursor = 'none';); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        CORE.Input.Mouse.cursorHidden = true; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Enables cursor (unlock cursor) | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -837,32 +864,9 @@ void SetMouseCursor(int cursor) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    if (CORE.Input.Mouse.cursor != cursor) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        const char *cursorName = NULL; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        CORE.Input.Mouse.cursor = cursor; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        if (!CORE.Input.Mouse.cursorHidden) EM_ASM( { document.getElementById('canvas').style.cursor = UTF8ToString($0); }, cursorLUT[cursor]); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        switch (cursor) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            case MOUSE_CURSOR_IBEAM: cursorName = "text"; break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            case MOUSE_CURSOR_CROSSHAIR: cursorName = "crosshair"; break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            case MOUSE_CURSOR_POINTING_HAND: cursorName = "pointer"; break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            case MOUSE_CURSOR_RESIZE_EW: cursorName = "ew-resize"; break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            case MOUSE_CURSOR_RESIZE_NS: cursorName = "ns-resize"; break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            case MOUSE_CURSOR_RESIZE_NWSE: cursorName = "nwse-resize"; break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            case MOUSE_CURSOR_RESIZE_NESW: cursorName = "nesw-resize"; break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            case MOUSE_CURSOR_RESIZE_ALL: cursorName = "move"; break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            case MOUSE_CURSOR_NOT_ALLOWED: cursorName = "not-allowed"; break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            case MOUSE_CURSOR_ARROW: // WARNING: It does not seem t be a specific cursor for arrow | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            case MOUSE_CURSOR_DEFAULT: cursorName = "default"; break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            default: | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                cursorName = "default"; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                CORE.Input.Mouse.cursor = MOUSE_CURSOR_DEFAULT; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			            } break; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        // Set the cursor element on the canvas CSS | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        // The canvas is coded to the Id "canvas" on init | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        EM_ASM({document.getElementById("canvas").style.cursor = UTF8ToString($0);}, cursorName); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        CORE.Input.Mouse.cursor = cursor; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
				
				 | 
			
			 | 
			
			
 |