Example #1
0
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;
}
Example #2
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);
}