#include #include #include #include #include #include #include SaffronWindow* saffron_window_new(const char* title, int w, int h) { SaffronWindow* window = malloc(sizeof(SaffronWindow)); window->root = saffron_widget_new(); // frick, need to implement this. window->title = title; window->w = w; window->h = h; window->sdl_window = SDL_CreateWindow(title, w, h, SDL_WINDOW_RESIZABLE); window->renderer = SDL_CreateRenderer(window->sdl_window, NULL); return window; } void saffron_window_free(SaffronWindow* window) { SDL_DestroyRenderer(window->renderer); SDL_DestroyWindow(window->sdl_window); saffron_widget_free(window->root); free(window); } void saffron_window_main(SaffronWindow *window) { if (!window) return; bool running = true; SDL_Event event; while (running) { while (SDL_PollEvent(&event)) { if (event.type == SDL_EVENT_QUIT) { running = false; } // TODO: send events to widgets and stuff } SDL_SetRenderDrawColor(window->renderer, 0, 0, 0, 255); SDL_RenderClear(window->renderer); saffron_widget_draw(window->root, window->renderer); SDL_RenderPresent(window->renderer); SDL_Delay(16); // around 60fps or so } }