IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

InvalidRenderer SDL2 ?


Sujet :

SDL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut InvalidRenderer SDL2 ?
    Bonjour tout le monde !
    Je commence juste à prendre en main la SDL2, et j'ai eu mon premier problème que je n'arrive pas à corriger...
    J'ai un putain de Invalid Renderer, et du ocup mes tiles ne s'affichent pas Le prog compile biensur.
    Les fichier : main.c defs.h init.h init.c

    D'où ça vient ??

    MAIN.C
    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
    46
    47
    48
    49
    50
    51
    #include "defs.h"
     
     
    int main(int argc,char** argv)
    {
     
    // Inititalisation fenetre
    char *table[] = {
    "0000000000",
    "0000100000",
    "0000000000",
    "0000000000",
    "0000000000"};
     
    	SDL_Window* screen = NULL;
     
    	SDL_Init(SDL_INIT_VIDEO);	
     
    	init_window(screen, "Mon jeu");
     
    	// Chargement tileset
    	SDL_Surface *tileset = NULL;
    	tileset = SDL_LoadBMP("tileset.bmp");
     
    	if (tileset == NULL)
    	{
    		printf("Echec de chargement tileset.bmp\n %s", SDL_GetError());
    		SDL_Quit();
    		system("pause");
    	}
     
     
     
    	// Partie Principale
     
    	afficher(screen, tileset, table, NB_BLOC_LARGEUR, NB_BLOC_HAUTEUR);
     
     
    	SDL_Event event;
    	do{
     
    	SDL_PollEvent(&event);
     
    	} while(event.type!=SDL_QUIT);
     
     
    	// Quit
    	quit_sdl();
     
    	return 0;
    }

    DEFS.H
    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
     
    #include <SDL2/SDL.h>
    #include <SDL2/SDL_image.h>
     
     
    #define SCREEN_WIDTH 320
    #define SCREEN_HEIGHT 160
     
     
    #define LARGEUR_TILE 32
    #define HAUTEUR_TILE 32
     
     
    #define NB_BLOC_LARGEUR 10
    #define NB_BLOC_HAUTEUR 5


    INIT.C
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    #include "init.h"
     
     
     
    void	init_window(SDL_Window* screen, const char* title)
    {
    	screen = SDL_CreateWindow( title,
    				   SDL_WINDOWPOS_CENTERED,
    				   SDL_WINDOWPOS_CENTERED,
    				   SCREEN_WIDTH,
    				   SCREEN_HEIGHT,
    				   SDL_WINDOW_SHOWN);
     
    	if (screen == NULL)
    	{
    		printf("Echec de la fenetre %s", SDL_GetError());
    		SDL_Quit();
    	}
    }
     
     
    void	afficher(SDL_Window* window, SDL_Surface *tileset, char *table[], int nb_bloc_largeur, int nb_bloc_hauteur)
    {
    	int	i, j;
    	SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_PRESENTVSYNC);
     
    	SDL_Texture *tile_texture = SDL_CreateTextureFromSurface(renderer, tileset);
    	SDL_FreeSurface(tileset);
     
    	SDL_Rect Rect_dest;
    	SDL_Rect Rect_source;
     
    	Rect_source.w = LARGEUR_TILE;
    	Rect_source.h = HAUTEUR_TILE;
    	if (tile_texture == NULL)
    		printf("%s", SDL_GetError());
     
    	SDL_RenderClear(renderer);
     
    	for(i=0;i<nb_bloc_largeur;i++)
    	{
    		for(j=0;j<nb_bloc_hauteur;j++)
    		{
    			Rect_dest.x = i*LARGEUR_TILE;
    			Rect_dest.y = j*HAUTEUR_TILE;
    			Rect_source.x = (table[j][i]-'0')*LARGEUR_TILE;
    			Rect_source.y = 0;
    			SDL_RenderCopy(renderer, tile_texture, &Rect_source, &Rect_dest);
    		}
     
    	}
    SDL_RenderPresent(renderer);
     
    }
     
     
     
    void	quit_sdl()
    {
    	SDL_Quit();
    }

    INIT.H
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include "defs.h"
     
    void	init_window(SDL_Window* screen, const char* title);
    void	afficher(SDL_Window* window, SDL_Surface *tileset, char **table, int nb_bloc_largeur, int nb_bloc_hauteur);
    void	sdl_quit();

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2014
    Messages : 6
    Points : 9
    Points
    9
    Par défaut
    Tu as testé si SDL_CreateRenderer ne renvoie pas NULL ? Et si c'est le cas un appel à SDL_GetError juste après donnera plus d'informations.

Discussions similaires

  1. Informations et avis sur SDL/SDL2
    Par Eldergrim dans le forum SDL
    Réponses: 6
    Dernier message: 15/01/2014, 16h17
  2. Informations sur les Bindings SDL ou SDL2
    Par Eldergrim dans le forum Programmation multimédia/Jeux
    Réponses: 4
    Dernier message: 15/01/2014, 12h01
  3. Problème migration SDL -> SDL2
    Par la dos360 dans le forum SDL
    Réponses: 1
    Dernier message: 04/01/2014, 11h31
  4. Réponses: 11
    Dernier message: 05/10/2013, 14h20
  5. [SDL2] problème avec SDL_CreateRenderer
    Par drogeek dans le forum SDL
    Réponses: 3
    Dernier message: 24/08/2013, 04h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo