Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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;
        }
    }
}

capture9ry.png


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 mad
( 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 big_smile 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à.

degradesdl9qf.png

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