chore: Initial commit
This commit is contained in:
67
src/main.cpp
Normal file
67
src/main.cpp
Normal file
@@ -0,0 +1,67 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
|
||||
#include "renderer.hpp"
|
||||
|
||||
#include "sim/world.hpp"
|
||||
#include "sim/aircraft.hpp"
|
||||
|
||||
static SDL_Window *window;
|
||||
static SDL_Renderer *sdl_renderer;
|
||||
static int width, height;
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
if (argc != 2)
|
||||
{
|
||||
printf("Usage: %s <WID>\n", argv[0]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int wid = 0;
|
||||
sscanf(argv[1], "%d", &wid);
|
||||
|
||||
SDL_Init(SDL_INIT_VIDEO);
|
||||
|
||||
SDL_PropertiesID props = SDL_CreateProperties();
|
||||
SDL_SetNumberProperty(props, SDL_PROP_WINDOW_CREATE_X11_WINDOW_NUMBER, wid);
|
||||
|
||||
window = SDL_CreateWindowWithProperties(props);
|
||||
sdl_renderer = SDL_CreateRenderer(window, NULL);
|
||||
|
||||
SDL_GetWindowSize(window, &width, &height);
|
||||
dxd::Renderer renderer = dxd::Renderer(sdl_renderer, width, height);
|
||||
|
||||
// World init
|
||||
dxd::sim::World world = dxd::sim::World({ .x = 10, .y = 10 });
|
||||
dxd::sim::Aircraft *ac = new dxd::sim::Aircraft({ 0, 0 }, 1, 0.1);
|
||||
world.add_obj(ac);
|
||||
|
||||
SDL_Event event;
|
||||
bool running = true;
|
||||
|
||||
while (running) {
|
||||
while (SDL_PollEvent(&event)) {
|
||||
if (event.type == SDL_EVENT_QUIT) running = false;
|
||||
}
|
||||
|
||||
// Clear
|
||||
renderer.color(0, 0, 0, 255);
|
||||
SDL_RenderClear(sdl_renderer);
|
||||
|
||||
// World draw
|
||||
renderer.color(255, 255, 255, 255);
|
||||
world.draw(&renderer);
|
||||
world.tick(1.0f / 60.0f);
|
||||
|
||||
// Usual test
|
||||
renderer.color(127, 0, 0, 255);
|
||||
renderer.line(-vec2_one, vec2_one);
|
||||
|
||||
SDL_RenderPresent(sdl_renderer);
|
||||
SDL_Delay(1000 / 60);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user