int main(int argc, char *argv[]) { int w, h; char in[256], out[256]; if (argc < 3) { usage(argv[0]); return EXIT_FAILURE; } strncpy(in, argv[argc - 1], sizeof(in) - 1); strncpy(out, argv[argc - 2], sizeof(out) - 1); chk(get_parameters(¶meters, argc, (char **)(argv))); print_parameters(¶meters); chk(scene = scene_load(in)); w = scene->camera.image_width; h = scene->camera.image_height; chk(image = hdr_image_new(w, h)); context = ir_context_new(parameters.num_paths, parameters.max_path_length, parameters.tmin, parameters.dist_clamp); ir_distribute(context, scene); chk(accumulate_mt(parameters.num_threads)); ir_render_vpls(context, image, scene, parameters.vpl_radius); ir_context_delete(&context); hdr_image_save(image, out); scene_delete(&scene); hdr_image_delete(&image); return EXIT_SUCCESS; error: scene_delete(&scene); hdr_image_delete(&image); return 1; }
void game_reload(Game* game, const char* tmp_path) { scene_save(game->scene, tmp_path); scene_destroy(game->scene); game->scene = scene_create(); scene_load(game->scene, tmp_path); }
void game_init(Game* game) { scene_load(game->scene, DW_DEFAULT_SCENE); }