| 
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -150,11 +150,11 @@ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			        #include <GLFW/glfw3native.h>    // which are required for hiding mouse | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    #endif | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    //#include <GL/gl.h>        // OpenGL functions (GLFW3 already includes gl.h) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    //#define GLFW_DLL          // Using GLFW DLL on Windows -> No, we use static version! | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			     | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    #if !defined(SUPPORT_BUSY_WAIT_LOOP) && defined(_WIN32) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    __stdcall unsigned int timeBeginPeriod(unsigned int uPeriod); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    __stdcall unsigned int timeEndPeriod(unsigned int uPeriod); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    // NOTE: Those functions require linking with winmm library | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    unsigned int __stdcall timeBeginPeriod(unsigned int uPeriod); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    unsigned int __stdcall timeEndPeriod(unsigned int uPeriod); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    #endif | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#endif | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -351,7 +351,6 @@ extern void UnloadDefaultFont(void);        // [Module: text] Unloads default fo | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			static void InitGraphicsDevice(int width, int height);  // Initialize graphics device | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			static void SetupFramebufferSize(int displayWidth, int displayHeight); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			static void InitTimer(void);                            // Initialize timer | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			static double GetTime(void);                            // Returns time since InitTimer() was run | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			static void Wait(float ms);                             // Wait for some milliseconds (stop program execution) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			static bool GetKeyStatus(int key);                      // Returns if a key has been pressed | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			static bool GetMouseButtonStatus(int button);           // Returns if a mouse button has been pressed | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -421,6 +420,9 @@ void InitWindow(int width, int height, void *data) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    // Init graphics device (display device and OpenGL context) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    InitGraphicsDevice(width, height); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			     | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    // Init hi-res timer | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    InitTimer(); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#if defined(SUPPORT_DEFAULT_FONT) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    // Load default font | 
			
		
		
	
	
		
			
				| 
				
				
				
					
						
					
				
				 | 
			
			 | 
			
			@ -428,9 +430,6 @@ void InitWindow(int width, int height, void *data) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    LoadDefaultFont(); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#endif | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    // Init hi-res timer | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    InitTimer(); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#if defined(PLATFORM_RPI) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    // Init raw input system | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    InitMouse();        // Mouse init | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -786,7 +785,7 @@ void ClearBackground(Color color) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Setup canvas (framebuffer) to start drawing | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			void BeginDrawing(void) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    currentTime = GetTime();            // Number of elapsed seconds since InitTimer() was called | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    currentTime = GetTime();            // Number of elapsed seconds since InitTimer() | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    updateTime = currentTime - previousTime; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    previousTime = currentTime; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -1060,6 +1059,24 @@ float GetFrameTime(void) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    return (float)frameTime; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Get elapsed time measure in seconds since InitTimer() | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// NOTE: On PLATFORM_DESKTOP InitTimer() is called on InitWindow() | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// NOTE: On PLATFORM_DESKTOP, timer is initialized on glfwInit() | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			double GetTime(void) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_WEB) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    return glfwGetTime();                   // Elapsed time since glfwInit() | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#endif | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#if defined(PLATFORM_ANDROID) || defined(PLATFORM_RPI) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    struct timespec ts; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    clock_gettime(CLOCK_MONOTONIC, &ts); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    uint64_t time = (uint64_t)ts.tv_sec*1000000000LLU + (uint64_t)ts.tv_nsec; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    return (double)(time - baseTime)*1e-9;  // Elapsed time since InitTimer() | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#endif | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Converts Color to float array and normalizes | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			float *ColorToFloat(Color color) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -2118,22 +2135,6 @@ static void InitTimer(void) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    previousTime = GetTime();       // Get time as double | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Get elapsed time measure (in seconds) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			static double GetTime(void) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			{ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_WEB) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    return glfwGetTime();                   // Elapsed time since glfwInit() | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#endif | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#if defined(PLATFORM_ANDROID) || defined(PLATFORM_RPI) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    struct timespec ts; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    clock_gettime(CLOCK_MONOTONIC, &ts); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    uint64_t time = (uint64_t)ts.tv_sec*1000000000LLU + (uint64_t)ts.tv_nsec; | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			    return (double)(time - baseTime)*1e-9;  // Elapsed time since InitTimer() | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			#endif | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			} | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// Wait for some milliseconds (stop program execution) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// NOTE: Sleep() granularity could be around 10 ms, it means, Sleep() could | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			// take longer than expected... for that reason we use the busy wait loop | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
					
						
					
				
				
				 | 
			
			 | 
			
			@ -2602,6 +2603,9 @@ static void AndroidCommandCallback(struct android_app *app, int32_t cmd) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                { | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    // Init graphics device (display device and OpenGL context) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    InitGraphicsDevice(screenWidth, screenHeight); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                     | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    // Init hi-res timer | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    InitTimer(); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    #if defined(SUPPORT_DEFAULT_FONT) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    // Load default font | 
			
		
		
	
	
		
			
				| 
				
				
				
					
						
					
				
				 | 
			
			 | 
			
			@ -2624,9 +2628,6 @@ static void AndroidCommandCallback(struct android_app *app, int32_t cmd) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    } | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    */ | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    // Init hi-res timer | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    InitTimer(); | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			
 | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    // raylib logo appearing animation (if enabled) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    if (showLogo) | 
			
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
			                    { | 
			
		
		
	
	
		
			
				| 
				
					
						
					
				
				
				
				 | 
			
			 | 
			
			
 |