int main(int argc, char **argv) { int i; for(i = 1; i < argc; ++i) if (argv[i][0] != '-') { id = atoi(argv[i]); break; } carmen_ipc_initialize(argc, argv); carmen_velodyne_subscribe_pointcloud_message(NULL, (carmen_handler_t)velodyne_pointcloud_handler, CARMEN_SUBSCRIBE_ALL); signal(SIGINT, velodyne_sigint_handler); atexit(velodyne_finalize); pthread_create(&thread, 0, velodyne_listen, 0); gl_initialize(argc, argv); gl_clear_color(1.0, 1.0, 1.0); gl_clip(0.1, 60.0); gl_camera(0.0, 0.0, 0.0, 0.0, 89.0, 20.0); gl_loop(); while (!pointclouds.empty()) { velodyne_pointcloud_free(&pointclouds.front()); pointclouds.pop_front(); } return 0; }
bool view_initialize_display(char *err_str) { // is screen size legal? if (view_search_screen_size_list(setup.screen_wid,setup.screen_high)==-1) { setup.screen_wid=640; setup.screen_high=480; } // start openGL if (!gl_initialize(setup.screen_wid,setup.screen_high,setup.lock_fps_refresh,setup.fsaa_mode,FALSE,err_str)) { view_memory_release(); SDL_Quit(); return(FALSE); } // fix some OpenGL settings if not supported by card if (!gl_check_fsaa_ok()) setup.fsaa_mode=fsaa_mode_none; if (!gl_check_texture_compress_ok()) setup.texture_compression=FALSE; if (!gl_check_texture_anisotropic_filter_ok()) setup.anisotropic_mode=anisotropic_mode_none; // start the shaders read_settings_shader(); if (!gl_shader_initialize(err_str)) { gl_shutdown(); SDL_Quit(); return(FALSE); } // initialize text gl_text_initialize(); // back renderer if (!gl_back_render_initialize(err_str)) { gl_text_shutdown(); gl_shutdown(); view_memory_release(); SDL_Quit(); return(FALSE); } // shadows if (!shadow_initialize(err_str)) { gl_back_render_shutdown(); gl_text_shutdown(); gl_shutdown(); view_memory_release(); SDL_Quit(); return(FALSE); } // vertex objects view_create_vertex_objects(); return(TRUE); }