Souci avec la bibliothèque SDL...
Résolu/Fermé
Oguona
Messages postés
19
Date d'inscription
samedi 15 septembre 2012
Statut
Membre
Dernière intervention
28 décembre 2012
-
27 déc. 2012 à 16:33
Oguona Messages postés 19 Date d'inscription samedi 15 septembre 2012 Statut Membre Dernière intervention 28 décembre 2012 - 28 déc. 2012 à 15:28
Oguona Messages postés 19 Date d'inscription samedi 15 septembre 2012 Statut Membre Dernière intervention 28 décembre 2012 - 28 déc. 2012 à 15:28
A voir également:
- Sdl_doublebuf
- Seven musique bibliothèque ✓ - Forum Musique / Radio / Clip
- Le point d'entrée de procédure est introuvable dans la bibliothèque de liens dynamiques ✓ - Forum Windows
- Point d'entrée introuvable dans KERNEL32.dll ✓ - Forum Windows
- Ce fichier contient l'historique des livres empruntés à la bibliothèque. combien de titres différents contient-il ? ✓ - Forum Excel
- Bibliothèque ✓ - Forum Windows 10
3 réponses
armasousou
Messages postés
1270
Date d'inscription
dimanche 16 août 2009
Statut
Membre
Dernière intervention
30 décembre 2016
83
27 déc. 2012 à 23:50
27 déc. 2012 à 23:50
Déjà définie tes variables au debut de la fonction, ça sera plus propre :)
Il te manque un sdlfreesurface à la fin pour le plateau.
Les couleurs sont des Uint32, mais tu peux mettre int tout simplement.
Il te manque un sdlfreesurface à la fin pour le plateau.
Les couleurs sont des Uint32, mais tu peux mettre int tout simplement.
Oguona
Messages postés
19
Date d'inscription
samedi 15 septembre 2012
Statut
Membre
Dernière intervention
28 décembre 2012
28 déc. 2012 à 10:52
28 déc. 2012 à 10:52
J'ai donc un peu arrangé mon main(), je n'utilise plus de variables pour les couleurs et toutes les déclarations se font au début, mais la surface "Plateau" reste toujours noire et non blanche comme elle devrait être :
int main(){ //On déclare les deux surfaces SDL_Surface *ecran = NULL; SDL_Surface *plateau = NULL; //On définit la position du rectangle "plateau" SDL_Rect position; position.x = 220; position.y = 180; SDL_Init(SDL_INIT_VIDEO); //On définit la fenêtre et on initialise les surfaces ecran = SDL_SetVideoMode(640, 480, 8, SDL_HWSURFACE | SDL_DOUBLEBUF); plateau = SDL_CreateRGBSurface(SDL_HWSURFACE, 220, 180, 8, 0, 0, 0, 0); SDL_WM_SetCaption("Cherchez le nombre", NULL); //On donne les deux couleurs utiles //Uint8 Couleur1 = SDL_MapRGB(ecran->format, 0, 0, 0); //Uint8 Couleur2 = SDL_MapRGB(ecran->format, 255, 255, 255); //printf("%d\n%d\n", Couleur1, Couleur2); //On colore les deux surfaces SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0)); SDL_FillRect(plateau, NULL, SDL_MapRGB(ecran->format, 255, 255, 255)); //On colle plateau sur ecran SDL_BlitSurface(plateau, NULL, ecran, &position); //On actualise SDL_Flip(ecran); //On met en pause jusqu'à la fermeture de la fenêtre pause(); SDL_FreeSurface(plateau); SDL_Quit(); return 0; }
armasousou
Messages postés
1270
Date d'inscription
dimanche 16 août 2009
Statut
Membre
Dernière intervention
30 décembre 2016
83
28 déc. 2012 à 13:13
28 déc. 2012 à 13:13
plateau = SDL_CreateRGBSurface(SDL_HWSURFACE, 220, 180, 8, 0, 0, 0, 0);
Pas 8 mais 32 !!!!!!!!
Pas 8 mais 32 !!!!!!!!
Oguona
Messages postés
19
Date d'inscription
samedi 15 septembre 2012
Statut
Membre
Dernière intervention
28 décembre 2012
28 déc. 2012 à 14:46
28 déc. 2012 à 14:46
Même si je fais le SetVideo à 8bit? Tout ne dois pas être en 8bit si je commençe avec ce format?
SDL_SetVideoMode(640, 480, 8, SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_SetVideoMode(640, 480, 8, SDL_HWSURFACE | SDL_DOUBLEBUF);
Oguona
Messages postés
19
Date d'inscription
samedi 15 septembre 2012
Statut
Membre
Dernière intervention
28 décembre 2012
Modifié par Oguona le 28/12/2012 à 15:02
Modifié par Oguona le 28/12/2012 à 15:02
Je viens de tester, ça fonctionne avec le 32bit. Mais pourquoi pas avec le 8bit? (Sans forcement d'utilité particulière, mais je ne comprends pas pourquoi ça ne fonctionne pas...)
armasousou
Messages postés
1270
Date d'inscription
dimanche 16 août 2009
Statut
Membre
Dernière intervention
30 décembre 2016
83
Modifié par armasousou le 28/12/2012 à 15:29
Modifié par armasousou le 28/12/2012 à 15:29
Tu code tes couleurs de 0/0/0 à 255/255/255 c'est un format 32bit, si tu veux le faire sur 8, faut aller de 0/0/0 à x/x/x (cherche sur le net ^^). Sachant qu'un uint8 fait la même taille qu'un char donc, 1 octet, soit maximum 256 couleurs.
Sachant qu'en 32 tu as 4 milliards de couleurs
Sachant qu'en 32 tu as 4 milliards de couleurs
Oguona
Messages postés
19
Date d'inscription
samedi 15 septembre 2012
Statut
Membre
Dernière intervention
28 décembre 2012
28 déc. 2012 à 15:28
28 déc. 2012 à 15:28
=) Evidemment... Merci ^^ Je devais être fatigué. Problème résolu !