diff --git a/core/engine.c b/core/engine.c index 24fd6ba..3f16f22 100644 --- a/core/engine.c +++ b/core/engine.c @@ -190,10 +190,19 @@ void execEngine() { //calc the time passed gettimeofday(&engine.realTime, NULL); + // printf("real time: %ld.%ld sim time: %ld.%ld + (delta: %ld.%ld)\n", + // engine.realTime.tv_sec, + // engine.realTime.tv_usec, + // engine.simTime.tv_sec, + // engine.simTime.tv_usec, + // delta.tv_sec, + // delta.tv_usec + // ); + //if not enough time has passed - if (engine.simTime.tv_sec < engine.realTime.tv_sec && engine.simTime.tv_usec < engine.realTime.tv_usec) { + if (timercmp(&engine.simTime, &engine.realTime, <)) { //while not enough time has passed - while(engine.simTime.tv_sec < engine.realTime.tv_sec && engine.simTime.tv_usec < engine.realTime.tv_usec) { + while(timercmp(&engine.simTime, &engine.realTime, <)) { //simulate the world execStep(); @@ -206,8 +215,8 @@ void execEngine() { } //render the world - // SDL_SetRenderDrawColor(engine.renderer, 0, 0, 0, 255); //NOTE: This line can be disabled later - // SDL_RenderClear(engine.renderer); //NOTE: This line can be disabled later - // SDL_RenderPresent(engine.renderer); + SDL_SetRenderDrawColor(engine.renderer, 0, 0, 0, 255); //NOTE: This line can be disabled later + SDL_RenderClear(engine.renderer); //NOTE: This line can be disabled later + SDL_RenderPresent(engine.renderer); } } diff --git a/core/lib_engine.c b/core/lib_engine.c index 62ffbdf..2cad529 100644 --- a/core/lib_engine.c +++ b/core/lib_engine.c @@ -126,12 +126,18 @@ static int nativeInitWindow(Interpreter* interpreter, LiteralArray* arguments) { } //init the renderer + // SDL_SetHint(SDL_HINT_RENDER_DRIVER, "software"); engine.renderer = SDL_CreateRenderer(engine.window, -1, 0); if (engine.renderer == NULL) { fatalError("Failed to initialize the renderer\n"); } + SDL_RendererInfo rendererInfo; + SDL_GetRendererInfo(engine.renderer, &rendererInfo); + + printf("Renderer: %s\n", rendererInfo.name); + SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "best"); SDL_RenderSetLogicalSize(engine.renderer, engine.screenWidth, engine.screenHeight);