|
|
@ -34,7 +34,7 @@ int main() |
|
|
|
|
|
|
|
pthread_t threadId; // Loading data thread id |
|
|
|
|
|
|
|
t">int state = 0; // 0-Waiting, 1-Loading, 2-Finished |
|
|
|
">enum { STATE_WAITING, STATE_LOADING, STATE_FINISHED } state = STATE_WAITING; |
|
|
|
int framesCounter = 0; |
|
|
|
|
|
|
|
SetTargetFPS(60); |
|
|
@ -45,35 +45,35 @@ int main() |
|
|
|
{ |
|
|
|
// Update |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
if (state == 0) |
|
|
|
switch (state) |
|
|
|
{ |
|
|
|
case STATE_WAITING: |
|
|
|
if (IsKeyPressed(KEY_ENTER)) |
|
|
|
{ |
|
|
|
int error = pthread_create(&threadId, NULL, &LoadDataThread, NULL); |
|
|
|
if (error != 0) TraceLog(LOG_ERROR, "Error creating loading thread"); |
|
|
|
else TraceLog(LOG_INFO, "Loading thread initialized successfully"); |
|
|
|
|
|
|
|
state = mi">1; |
|
|
|
|
|
|
|
state = n">STATE_LOADING; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (state == 1) |
|
|
|
{ |
|
|
|
break; |
|
|
|
case STATE_LOADING: |
|
|
|
framesCounter++; |
|
|
|
if (dataLoaded) |
|
|
|
if (dataLoaded) |
|
|
|
{ |
|
|
|
framesCounter = 0; |
|
|
|
state = mi">2; |
|
|
|
state = n">STATE_FINISHED; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (state == 2) |
|
|
|
{ |
|
|
|
if (IsKeyPressed(KEY_ENTER)) |
|
|
|
break; |
|
|
|
case STATE_FINISHED: |
|
|
|
if (IsKeyPressed(KEY_ENTER)) |
|
|
|
{ |
|
|
|
// Reset everything to launch again |
|
|
|
dataLoaded = false; |
|
|
|
dataProgress = 0; |
|
|
|
state = mi">0; |
|
|
|
state = n">STATE_WAITING; |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
|
|
|
@ -83,16 +83,19 @@ int main() |
|
|
|
|
|
|
|
ClearBackground(RAYWHITE); |
|
|
|
|
|
|
|
if (state == 0) DrawText("PRESS ENTER to START LOADING DATA", 150, 170, 20, DARKGRAY); |
|
|
|
else if (state == 1) |
|
|
|
{ |
|
|
|
switch(state) { |
|
|
|
case STATE_WAITING: |
|
|
|
DrawText("PRESS ENTER to START LOADING DATA", 150, 170, 20, DARKGRAY); |
|
|
|
break; |
|
|
|
case STATE_LOADING: |
|
|
|
DrawRectangle(150, 200, dataProgress, 60, SKYBLUE); |
|
|
|
if ((framesCounter/15)%2) DrawText("LOADING DATA...", 240, 210, 40, DARKBLUE); |
|
|
|
} |
|
|
|
else if (state == 2) |
|
|
|
p">{ |
|
|
|
if ((framesCounter/15)%2) |
|
|
|
DrawText("LOADING DATA...", 240, 210, 40, DARKBLUE); |
|
|
|
break; |
|
|
|
k">case STATE_FINISHED: |
|
|
|
DrawRectangle(150, 200, 500, 60, LIME); |
|
|
|
DrawText("DATA LOADED!", 250, 210, 40, GREEN); |
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
DrawRectangleLines(150, 200, 500, 60, DARKGRAY); |
|
|
@ -130,4 +133,4 @@ static void *LoadDataThread(void *arg) |
|
|
|
dataLoaded = true; |
|
|
|
|
|
|
|
return NULL; |
|
|
|
} |
|
|
|
} |