int ycursInit(void) { if (type != -1) return type; initscr(); noecho(); cbreak(); curs_set(FALSE); keypad(stdscr, TRUE); start_color(); init_pair(1, COLOR_BLACK, COLOR_WHITE); type = ywidRegistreRender(resize, CPollEvent, CWaitEvent, CDraw, NULL, NULL); return type; }
int ysdl2Init(void) { if (type != -1) return type; /* Initialisation simple */ if (SDL_Init(SDL_INIT_EVERYTHING) != 0 ) { DPRINT_ERR("Échec de l'initialisation de la SDL (%s)\n",SDL_GetError()); return -1; } if(TTF_Init()==-1) { DPRINT_ERR("TTF_Init: %s\n", TTF_GetError()); goto ttf_fail; } // initializing Flags for PNG Images int imgFlags = IMG_INIT_PNG | IMG_INIT_JPG | IMG_INIT_TIF; // Simple check of the Flags if(!(IMG_Init(imgFlags)&imgFlags)) { DPRINT_ERR("SDL_image could not initialize! SDL_image Error: %s\n", IMG_GetError()); goto img_fail; } /* Création de la fenêtre */ sg.pWindow = SDL_CreateWindow("YIRL isn't a rogue like", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, WIN_W_SIZE, WIN_H_SIZE, SDL_WINDOW_SHOWN); if(!sg.pWindow) { DPRINT_ERR("Error to creeate window:: %s\n",SDL_GetError()); goto win_fail; } // Render for the main windows sg.renderer = SDL_CreateRenderer(sg.pWindow, -1, SDL_RENDERER_TARGETTEXTURE); if (!sg.renderer) { DPRINT_ERR("Get render from window: %s\n", TTF_GetError()); goto fail; } if (SDL_SetRenderDrawBlendMode(sg.renderer, SDL_BLENDMODE_BLEND) < 0) { goto fail; } if (sgSetDefaultFont("./sample.ttf") < 0) DPRINT_WARN("can not load \"./sample.ttf\"\n"); // fill the window with a black rectangle // SDL_Rect rect = sg.getRect(); SDL_RenderClear(sg.renderer); SDL_RenderPresent(sg.renderer); type = ywidRegistreRender(sdlResize, SDLPollEvent, SDLWaitEvent); return type; fail: SDL_DestroyWindow(sg.pWindow); win_fail: TTF_Quit(); img_fail: IMG_Quit(); ttf_fail: SDL_Quit(); return -1; }