Sokoban  1.1.3
Le fameux jeu Sokoban, poussez les boîtes !
sdl2.c
Aller à la documentation de ce fichier.
1 /*
2 SDL2 display management functions for Sokoban
3 Copyright (C) 2022, 2023 Efe ERKEN
4 
5 This file is part of Sokoban
6 
7 Sokoban is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11 
12 Sokoban is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with Sokoban. If not, see <https://www.gnu.org/licenses/>.
19 
20 SPDX-License-Identifier: GPL-3.0-or-later
21 */
22 
34 #include "sdl2.h"
35 
36 SDLContext context;
37 
48 void sdl_init()
49 {
50  // la taille de la fenêtre
51  int const width = 1280;
52  int const height = 720;
53  // initialisation à zero du context
54  context = (SDLContext){NULL, NULL, .width = 0, .height = 0};
55  // lancement du système video et événement de SDL2
56  if (SDL_Init(SDL_INIT_VIDEO))
57  {
58  return;
59  }
60  // création d'une fenêtre
61  SDL_Window *window = SDL_CreateWindow("Sokoban", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_SHOWN);
62  if (!window)
63  {
64  return;
65  }
66  // création d'un renderer
67  SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
68  // mise à jour du context avec les nouvelles informations
69  context = (SDLContext){.window = window, .renderer = renderer, .width = width, .height = height};
70 }
71 
82 void sdl_quit()
83 {
84  SDL_DestroyWindow(context.window);
85  SDL_DestroyRenderer(context.renderer);
86  context.window = NULL;
87  context.renderer = NULL;
88  SDL_Quit();
89 }
void sdl_quit()
Fonction qui referme la bibliothèque SDL2.
Definition: sdl2.c:82
void sdl_init()
Fonction qui lance SDL2 et crée une fenêtre.
Definition: sdl2.c:48
Fichier header contenant la structure pour gérer SDL2 pour le jeu.
struct SDLContext SDLContext
Structure contenant les informations pour l'affichage SDL2.
Structure contenant les informations pour l'affichage SDL2.
Definition: sdl2.h:47
SDL_Window * window
Pointeur sur la fenêtre.
Definition: sdl2.h:48
SDL_Renderer * renderer
Pointeur sur le renderer.
Definition: sdl2.h:49
int width
Largeur de la fenêtre.
Definition: sdl2.h:50