예제 #1
0
display *newDisplay()
{
  int result;
  display *d = malloc(sizeof(display));
  result = SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO);
  if (result < 0) {
    SDL_Fail("Bad SDL", d);
  }
  d->window = SDL_CreateWindow("Diner 51", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);//frame dimenstion
  if (d->window == NULL) {
    SDL_Fail("Could not create window", d);
  }
  //MUSIC-------------
  if (Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 2040) < 0) {
    Mix_GetError();
    SDL_Fail("SDL Mixer could not initialise", d);
  }
  gCurrentSongIndex = 0;
  LoadMusic(d);
  if (Mix_PlayMusic(gMusic[gCurrentSongIndex], -1)< 0) {
    Mix_GetError();
    SDL_Fail("SDL Mixer could not initialise", d);
  }
  m_state = MUSIC_ON;
  //END
  d->surface = SDL_GetWindowSurface(d->window);
  if (d->surface == NULL) {
    SDL_Fail("Could not create surface", d);
  }
  d->red = SDL_MapRGB(d->surface->format, 102, 0, 0);
  if (d->red == 0) {
    SDL_Fail("Could not create color", d);
  }
  d->box = malloc(sizeof(SDL_Rect));
  if (d->box == NULL) {
    SDL_Fail("Allocation for the bpx failed", d);
  }
  *d->box = (SDL_Rect) { 0, 0, 32, 32 };
  d->renderer = SDL_CreateRenderer(d->window, -1, 0);
  if (d->renderer == NULL) {
    SDL_Fail("Redering failed", d);
  }
  loadAllImages(d);
  //event control
  d->event = malloc(sizeof(SDL_Event));
  if (d->event == NULL) {
      SDL_Fail("Allocation for the bpx failed", d);
    }
  //TTF Init and Money
  TTF_Init();
  d->font = TTF_OpenFont("Code.ttf", 23);/*font size changed------------------------*/
  if (d->font == NULL) {
    SDL_Fail("Bad font", d);
  }
  d->bg = (SDL_Color) { 253, 205, 146, 255 };
  d->fg = (SDL_Color) { 0, 0, 0, 255 };
  SDL_StartTextInput();
  SDL_RenderClear(d->renderer);
  return d;
}
예제 #2
0
void	cl_screen_put_img(t_removable *remove, SDL_Rect pos,
			  t_image img, SDL_Surface *texture)
{
  loadAllImages(&img);
  put_elem(remove, &img);
  if (SDL_BlitSurface(texture, NULL, img.screen,
		      &pos) == -1)
    Error("Cannot put image on screen", texture);
  if (SDL_Flip(img.screen) == -1)
    Error("Cannot refresh screen", texture);
}
예제 #3
0
int main(int argc, char **argv)
{
    GetPot cl(argc,argv);
    
    std::string path   = cl.follow("",2,"-i","--input");
    
    if (path.length() ==  0 ){
        printf("Error: path not found\n");
        exit(-1);
    }
    
    if ( path[path.length()-1] != separator() ){
        path = path + separator();
    }
    
    std::string defaultMovie = path + std::string("movie.mp4");
    std::string output = cl.follow(defaultMovie.c_str(),2,"-o","--output");
    
    int fd[2];
    pid_t cpid;
    
    pipe(fd);
    
    if((cpid = fork()) == -1)
    {
        perror("fork");
        exit(1);
    }

    if(cpid == 0)
    {
        close(fd[1]);
        dup2(fd[0],0);
        close(fd[0]);
        
        execl("/usr/bin/avconv","/usr/local/bin/avconv", "-y","-r","10","-f", "rawvideo", "-vcodec", "rawvideo","-s", "640x480", "-pix_fmt", "rgb24", "-i", "-","-an", output.c_str(),(void*)0);

        printf("Failed to execute program");
        exit(-1);
    }
    else{
        close(fd[0]);
        dup2(fd[1],1);
        close(fd[1]);
        loadAllImages(path);
        close(1);
        exit(0);
    }
}
예제 #4
0
int		main(int ac, char** av)
{
  SDL_Surface	*screen;
  SDL_Surface	*life_back;
  char		**map;
  char		*life;
  int		i;
  int		size_line;
  int		size_column;

  if (ac == 2)
    {
      map = loadMap(av[1]);
      size_line = check_map(map, &size_column);      
      life = constr_life(size_line, life);
      x_SDL_Init(SDL_INIT_VIDEO);
      screen = SDL_SetVideoMode(size_line*SIZE_IMAGE , size_column*SIZE_IMAGE
+ SIZE_IMAGE, 32, SDL_RESIZABLE | SDL_DOUBLEBUF);

      SDL_WM_SetCaption("Epikong", "KONG");
            
      loadAllImages(map, screen);
      life_back = SDL_CreateRGBSurface(SDL_HWSURFACE, SIZE_IMAGE, SIZE_IMAGE, 32, 0, 0, 0, 0);
      loadImagelife(screen, life, 0);
      
      /* 3 vies */
      loadImagelife(screen, life, 1);
      loadImagelife(screen, life, 1);
      loadImagelife(screen, life, 1);

      x_SDL_Flip(screen);
      x_SDL_Flip(life_back);
      waitImage();
      i = -1;
      while (map[++i] != NULL)
	free(map[i]);
      free(map);
      SDL_Quit();
    }
  else
    {
      printf("Format : %s filemap\n", av[0]);
      exitError("[ERROR] : Bad parameters\n");
    }
  return (EXIT_SUCCESS);
}
예제 #5
0
void		loadFile(t_image* img, char *filemap)
{
  t_removable	remove;

  img->map = loadMap(filemap);
  check_map(img);
  if (img->sizeX != SCREEN_X || img->sizeY != SCREEN_Y)
    {
      fprintf(stderr, "[ERROR] : The map have to have dimension of %d by %d\n",
	      SCREEN_X, SCREEN_Y);
      exitError("");
    }
  loadAllImages(img);
  x_SDL_Flip(img->screen);
  remove.monster = catch_monster(img->map);
  remove.item = catch_item(img->map, &remove);
  put_elem(&remove, img);
  x_SDL_Flip(img->screen);
  key(&remove, *img);
  x_SDL_Flip(img->screen);
  waitImage();
  freeMap(img->map);
}
bool ImageProcess::loadAllImages()
{
    return loadAllImages(Globals::PATH_TO_IMAGES);
}