uint32_t *framebuf;
+struct scene *scn;
/* available screens */
#define MAX_SCREENS 8
char *start_scr_name;
static rtk_draw_ops guigfx = {gui_fill, gui_blit, gui_drawtext, gui_textrect};
- init_logger();
-
#if !defined(NDEBUG) && defined(DBG_FPEXCEPT)
printf("floating point exceptions enabled\n");
enable_fpexcept();
#endif
+#ifdef GFX_SW
+ gaw_sw_init();
+#endif
+
load_options("retroray.cfg");
app_resize(opt.xres, opt.yres);
app_vsync(opt.vsync);
rtk_setup(&guigfx);
+ if(!(scn = create_scene())) {
+ return -1;
+ }
+
/* initialize screens */
screens[num_screens++] = &scr_model;
screens[num_screens++] = &scr_rend;
destroy_font(uifont);
free(uifont);
+#ifdef GFX_SW
+ gaw_sw_destroy();
+#endif
+
+ free_scene(scn);
+
cleanup_logger();
}
int numpix = x * y;
int prev_numpix = win_width * win_height;
- if(numpix > prev_numpix) {
+ printf("reshape(%d, %d)\n", x, y);
+
+ if(!framebuf || numpix > prev_numpix) {
void *tmp;
if(!(tmp = realloc(framebuf, numpix * sizeof *framebuf))) {
errormsg("failed to resize framebuffer to %dx%d\n", x, y);