int main(int _argc, char** _argv) { LOG_GOOD("Initializing SDL"); if (SDL_Init(SDL_INIT_GAMECONTROLLER) != 0) { LOG_BAD("SDL initialization failed: %s", SDL_GetError()); exit(ERROR_SDL_INIT); } LOG_GOOD("Creating SDL Window"); int width = 800; int height = 600; SDL_Window* window = SDL_CreateWindow("bgfx with SDL2", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, width, height, SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE ); if (window == NULL) { LOG_BAD("Can't create a window: %s", SDL_GetError()); exit(ERROR_CREATE_WINDOW); } char* resPath = strdup(_argv[0]); drawing_initialize(window, dirname(resPath)); free(resPath); SDL_SetEventFilter((SDL_EventFilter)eventFilter, window); LOG_GOOD("Starting event processing"); while (processEvents() != erExit) { drawing_frame(window); } drawing_finalize(window); LOG_GOOD("Destroying the window"); SDL_DestroyWindow(window); LOG_GOOD("Quitting SDL"); SDL_Quit(); return 0; }
// Initialize the program static void prv_initialize(void) { // cancel any existing wakeup events wakeup_cancel_all(); // load timer timer_persist_read(); // set initial states if (timer_is_paused()) { // get time parts uint16_t hr, min, sec; timer_get_time_parts(&hr, &min, &sec); if (hr) { main_data.control_mode = ControlModeEditHr; } else { main_data.control_mode = ControlModeEditMin; } } else { main_data.control_mode = ControlModeCounting; } // initialize window main_data.window = window_create(); ASSERT(main_data.window); window_set_click_config_provider(main_data.window, prv_click_config_provider); Layer *window_root = window_get_root_layer(main_data.window); GRect window_bounds = layer_get_bounds(window_root); #ifdef PBL_SDK_2 window_set_fullscreen(main_data.window, true); window_bounds.size.h = 168; #endif window_stack_push(main_data.window, true); // initialize main layer main_data.layer = layer_create(window_bounds); ASSERT(main_data.layer); layer_set_update_proc(main_data.layer, prv_layer_update_proc_handler); layer_add_child(window_root, main_data.layer); // initialize drawing singleton drawing_initialize(main_data.layer); // subscribe to tick timer service tick_timer_service_subscribe(MINUTE_UNIT, prv_tick_timer_service_callback); // start refreshing prv_app_timer_callback(NULL); }