Ejemplo n.º 1
0
// public
void GameofLifeMesh::fill_mesh()
{
    declare_element_nodes_ids();
    declare_element_ids();
    create_entities();
    number_coordinate_field();
}
Ejemplo n.º 2
0
int check_SDL_events()
{
    SDL_Event event;
    while(SDL_PollEvent(&event)) {
        if(event.type == SDL_QUIT)
            return 1;
        else if(event.type == SDL_KEYDOWN) {
            if(event.key.keysym.sym == SDLK_ESCAPE)
                return 1;
            else if(event.key.keysym.sym == SDLK_RETURN) {
                if(is_paused()) {
                    if(!is_started()) {
                        set_started(1);
                    }
                    else if(is_game_over()) {
                        set_game_over(0);
                        ent_table_shutdown();
                        ent_table_init();
                        create_entities();
                    }
                }

                toggle_paused();
            }
        }
    }

    return 0;
}
Ejemplo n.º 3
0
int main(int argc, char **argv)
{
    SDL_Surface *screen, *background,
                *pause_text, *press_enter_text, *game_over_text;

    const SDL_VideoInfo *video_info;
    Uint32 frame_start, frame_end = 0, game_frame_end = 0;

    systems_init();

    screen = SDL_SetVideoMode(800, 600, 0, SDL_HWSURFACE|SDL_DOUBLEBUF);
    video_info = SDL_GetVideoInfo();

    create_images(&press_enter_text, &pause_text, &game_over_text, &background);
    create_entities();

    for(;;) {
        start_frame(&frame_start, &frame_end);

        if(check_SDL_events())
            break;

        draw_background(background, screen, video_info);

        update_entities(game_frame_end  );

        if(is_paused()) {
            if(is_game_over()) {
                draw_centered(screen, video_info, game_over_text);
            } else if(is_started()) {
                draw_centered(screen, video_info, pause_text);
            } else {
                draw_centered(screen, video_info, press_enter_text);
            }
        }

        SDL_Flip(screen);

        finish_frame(&frame_start, &frame_end, &game_frame_end);
    }

    SDL_FreeSurface(background);
    SDL_FreeSurface(pause_text);
    SDL_FreeSurface(press_enter_text);

    systems_shutdown();
    return 0;
}
Ejemplo n.º 4
0
TEST( hex_refine, hex_refine)
{
  double start_time = stk::cpu_time();
  //unsigned ex=100, ey=100, ez=100;
  const int max_levels = 2;
  unsigned nn = 100/(1 << (max_levels-1));
  unsigned ex=nn, ey=nn, ez=nn;

  //unsigned num_elems = ex*ey*ez;
  fixtures::HexFixture fixture(MPI_COMM_WORLD, ex, ey, ez);
  fixture.m_meta.commit();
  fixture.generate_mesh();
  double create_time = stk::cpu_time() - start_time;

  std::vector<double> avg_centroid(3, 0.0);
  //const double tolerance = 1.e-6;
  //const double expected = ((double)ex)/2;

  start_time = stk::cpu_time();

  for (int level=1; level <= max_levels; ++level) {

    HexRefineInfo refine_info(level, ex, ey, ez);

    //Selector hex_elem_selector(fixture.m_hex_part & !fixture.m_node_part);

    unsigned num_elems_new = refine_info.num_elems();
    std::cout << "num_elems_new for level = " << level << " = " << num_elems_new << std::endl;
    fixture.m_bulk_data.modification_begin();
    create_entities(fixture.m_bulk_data, fixture.m_node_parts, fixture.m_elem_parts, refine_info);
    fixture.m_bulk_data.modification_end();
  }

  double refine_time = stk::cpu_time() - start_time;
  double total_time = refine_time + create_time;

  static const int NUM_TIMERS = 3;
  const double timers[NUM_TIMERS] = {create_time, refine_time, total_time};
  const char* timer_names[NUM_TIMERS] = {"Create mesh", "Refine", "Total time"};

  stk::print_timers_and_memory(&timer_names[0], &timers[0], NUM_TIMERS);

  stk::parallel_print_time_without_output_and_hwm(MPI_COMM_WORLD, total_time);
}