74 lines
1.5 KiB
C++
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;
|
|
}
|
|
|