1
0
Fork 0
2018-soft-3d-renderer/src/main.cpp

74 lines
1.5 KiB
C++

#include "engine.h"
#include "platform.h"
#include <cstdint>
#include <cstdio>
#include <cstdlib>
// CONSTANTS
const unsigned int WINDOW_WIDTH = 800;
const unsigned int WINDOW_HEIGHT = 600;
const unsigned int WINDOW_FPS = 30;
// MAIN
int main(int argc, char *argv[])
{
if (argc != 2)
{
fprintf(stderr, "Usage: %s <OBJ>\n", argv[0]);
return EXIT_FAILURE;
}
char *filename = argv[1];
Platform platform = {};
int result = Platform_Init(platform, WINDOW_WIDTH, WINDOW_HEIGHT);
platform.framerateMillis = (1000 / WINDOW_FPS);
if (result == PLATFORM_OK)
{
Engine_Buffer buffer = {};
buffer.pixels = (uint32_t*)platform.surface->pixels;
buffer.width = platform.surface->w;
buffer.height = platform.surface->h;
result = Engine_Init(filename);
if (result < 0)
{
return EXIT_FAILURE;
}
while (true)
{
Platform_GetFrameTime(platform);
result = Platform_CheckForEvents(platform);
if (result == PLATFORM_QUIT)
{
break;
}
Platform_ClearWindow(platform);
Engine_Render(buffer, platform.input);
Platform_UpdateWindow(platform);
Platform_SyncToFramerate(platform);
}
Engine_Shutdown();
Platform_Shutdown(platform);
}
else
{
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}