#1 Le 19/03/2006, à 23:27
- zedtux
Anjuta et SDL ok ... mais marche pas !
Salut a tous !
Voila je code sous Anjuta, et je vient de passer à la programmation de GUI avec la librairie SDL.
Quand je créé une fenêtre, tout vas bien, mais quand je veux la remplir... elle reste transparante !
Voila le code :
#include <stdlib.h>
#include <stdio.h>
#include <SDL/SDL.h>
void pause();
int main(int argc, char *argv[])
{
SDL_Surface *ecran = NULL, *lignes[256] = {NULL};
SDL_Rect position;
int i = 0;
SDL_Init(SDL_INIT_VIDEO);
ecran = SDL_SetVideoMode(640, 256, 32, SDL_HWSURFACE); // Hauteur de 256 pixels
for (i = 0 ; i <= 255 ; i++)
lignes[i] = SDL_CreateRGBSurface(SDL_HWSURFACE, 640, 1, 32, 0, 0, 0, 0); // Allocation des 256 surfaces
SDL_WM_SetCaption("Mon dégradé en SDL !", NULL);
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
for (i = 0 ; i <= 255 ; i++)
{
position.x = 0; // Les lignes sont à gauche (abscisse de 0)
position.y = i; // La position verticale dépend du numéro de la ligne actuelle
SDL_FillRect(lignes[i], NULL, SDL_MapRGB(ecran->format, i, i, i)); // Remplissage
SDL_BlitSurface(lignes[i], NULL, ecran, &position); // Collage
}
pause();
for (i = 0 ; i <= 255 ; i++) // N'oubliez pas de libérer chacune des 256 surfaces !
SDL_FreeSurface(lignes[i]);
SDL_Quit();
return EXIT_SUCCESS;
}
void pause()
{
int continuer = 1;
SDL_Event event;
while (continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
}
}
}
Je suis sous Dapper Drake, avec Xgl et compiz en route.
Je code sous Anjuta 1.2.4a sur le noyau 2.6.15-18-k7
RECOLLER VOS FICHIERS XTM AVEC TUXTREMSPLIT !!
Adhérant April numéro 4985 [Rejoindre l'April moi aussi !].
Hors ligne
#2 Le 20/03/2006, à 08:42
- viddak
Re : Anjuta et SDL ok ... mais marche pas !
Je me rappelle plus tres bien mais tu dois pas faire une sorte de swapbuffer pour l'afficher?
Hors ligne
#3 Le 22/03/2006, à 02:31
- zedtux
Re : Anjuta et SDL ok ... mais marche pas !
Non enffet fallais ajouter un SDL_flip(Screen);
Mais aprés ca, ma fenetre reste translucide. Et ca c'est à cause de Xgl et compiz... Tout ce qui est noir devient transparent
( Surement a cause de la 3d ).
RECOLLER VOS FICHIERS XTM AVEC TUXTREMSPLIT !!
Adhérant April numéro 4985 [Rejoindre l'April moi aussi !].
Hors ligne
#4 Le 22/03/2006, à 09:31
- viddak
Re : Anjuta et SDL ok ... mais marche pas !
Ce qui serait interessant, c'est d'essayer de l'executer sur un autre environnement (sans XGL et compiz), histoire de voir si c'est ton programme qui merde.
Hors ligne
#5 Le 12/05/2006, à 14:35
- lost-in-the-shell
Re : Anjuta et SDL ok ... mais marche pas !
Tout baigne le blème vient certainement de XGL / Compiz .
Pour info, j'ai compilé avec GCC de cette manière : gcc main.c -lSDLmain -lSDL -o degrade-sdl && ./degrade-sdl . Anjuta utilise GCC donc ça ne vient pas de là.
Dernière modification par lost-in-the-shell (Le 12/05/2006, à 15:10)
Linux user #401253 - Ubuntu user #3023 .
Nick sur IRC : naji.
Pensez à adhérer au Comité de lutte contre le SMS.
Hors ligne