about summary refs log tree commit diff stats
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c29
1 files changed, 13 insertions, 16 deletions
diff --git a/src/main.c b/src/main.c
index aebc6aa..d15877e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1,4 +1,7 @@
 #include "pong.h"
+#include <SDL2/SDL_atomic.h>
+#include <SDL2/SDL_thread.h>
+#include <SDL2/SDL_timer.h>
 #include <raylib.h>
 
 int Difficulty = 1;
@@ -49,25 +52,19 @@ void set_screen_mode() {
 }
 
 static int internal_clock() {
-	const struct timespec Delay = {
-		0, 9999
-	};
-	struct timespec Remaining = {
-		0, 0
-	};
-	double OldTime = GetTime();
+	SDL_SetThreadPriority(SDL_THREAD_PRIORITY_TIME_CRITICAL);
+	double NewTime = 0;
+	double OldTime = 0;
+	double Milliseconds = (1000.0/60)/1000.0;
+	double DeltaTime = 0;
 	while(GameGoing == true) {
-		//nanosleep(&Delay, &Remaining);
-		double NewTime = GetTime();
-		while((NewTime-OldTime) < (1.0/60.0f)) {
-			NewTime = GetTime();
-		}	
-		if((NewTime-OldTime) >= (1.0/60.0f)) {
+		NewTime = SDL_GetTicks()/1000.0f;
+		DeltaTime += (NewTime-OldTime)/Milliseconds;
+		OldTime = NewTime;
+		while(DeltaTime >= 1.0) {
 			SDL_AtomicAdd(&Ticks, 1);
-			OldTime = GetTime();
+			DeltaTime--;
 		}
-
-		printf("%lf,%lf,%d\n", GetTime(),(NewTime-OldTime), SDL_AtomicGet(&Ticks));
 	}
 	return(0);
 }