Bonjour, je suis en train d'essayer de passer un jeu de la SDL 1.2 vers la SDL 2.0. Pour me mettre dans le bain je teste les fonctions de la SDL2 dans un projet distinct.
Seulement voilà, quelque soit mon projet, quoi que je fasse, la SDL me renvoit toujours une erreur, qui n'a aucune solution nulle part sur google:
Invalid renderer
Voici le code source de mon programme minimal de test :
J'ai tout essayé, enfin beaucoup, dans l'ordre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 #include <stdio.h> #include <stdlib.h> #include <SDL2/SDL.h> int main( int argc, char** argv ) { int ret = EXIT_SUCCESS; int i = 0; int j = 0; SDL_Renderer* renderer = NULL; SDL_RendererInfo info; SDL_Window* window = NULL; if( SDL_Init( SDL_INIT_VIDEO ) != -1 ) { printf( "There's %d renders drivers \n", SDL_GetNumRenderDrivers() ); while( i <= SDL_GetNumRenderDrivers() ) { if( SDL_GetRenderDriverInfo( i, &info ) != -1 ) { printf( "Render driver (%d) info :\n", i ); printf( "\tName : %s\n", info.name ); printf( "\tMax Texture height : %d\n", info.max_texture_height ); printf( "\tMax Texture width : %d\n", info.max_texture_width ); printf( "\tNumber of texture formats : %d\n", info.num_texture_formats ); for( j = 0; j < info.num_texture_formats; j++ ) printf( "\tTexture Pixel Format : %s\n", SDL_GetPixelFormatName( info.texture_formats[j] ) ); } i++; } if( SDL_CreateWindowAndRenderer( 800,800,0,&window, &renderer ) == -1 ) { ret = EXIT_FAILURE; } else { printf( "Is there any error ? %s\n", SDL_GetError() ); SDL_DestroyRenderer( renderer ); SDL_DestroyWindow( window ); } SDL_Quit(); } return ret; }
- Diviser le "SDL_CreateWindowAndRenderer(..)" en deux sous fonctions distinctes, l'erreur vient toujours à la création du renderer.
- Passer sur des structures, et non des pointeurs de structures.
- Passer sur des pointeurs de pointeurs de structures.
- Changer mes flags de compilation (qui ne sont que ceux des erreurs, aucune optimisation rien).
- Insulter mon programme.
Voici ma configuration:
Système
Linux 3.16.0-4-amd64
#1 SMP Debian 3.16.7-ckt25-2 (2016-04-08)
x86_64 GNU/Linux
SDL
sdl2-config --version : 2.0.2
Codeblocks
Code::Blocks svn build rev 0 Apr 13 2016, 04:53:52 - wx3.0.2 (Linux, unicode) - 64 bit
Je ne vois vraiment pas ce que j'ai mal fait, les bibliothèques sont toutes bien linkées à mon projet, j'ai tous les .lib/.a/.so nécessaires, et je n'ai rien trafiqué.
Merci de votre aide.
Partager