Voila, grace à f56bre (merci encore ) j'ai résolu mon pb dasn mon application test sur VBO.

Elle utilise un tableau serialisé qui stocke pour chaque vertex la couleur , la position et les cordonnees de texture.

Mon cube s'affiche bien avec une couleur par face. Donc il est temps d'y appliquer une texture.
Et là souci avec ma fonction 'convertImageToTexture()' qui converti une image en texture GL (j'ai une autre application dans laquelle ma fonction marche parfaitement, où dans le header j'utilise gl.h). Sans avoir à l'appeler sa simple présence fait planter l'appli ??? (si je la commente tout va bien). Cette fonction appelle une autre fonction qui elle n'est pour rien dans le plantage.

Y a t-il des conflits entre Glew et certaines fonctions Gl?
Ca n'a peut etre rien avoir

Merci de votre aide.

voici le code de ma fonction :
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
 
GLuint convertImageToTexture(const char *nomFichier)
{
    GLuint glID;
    SDL_Surface * picture_surface = NULL;
    SDL_Surface * gl_surface = NULL;
    SDL_Surface * gl_fliped_surface = NULL;
    Uint32 rmask, gmask, bmask, amask;
 
    picture_surface = IMG_Load(nomFichier);
    if (picture_surface == NULL)
    {
	   std::cerr << "Impossible de charger Fichier image! \n";
	   return 0;
    }
 
#if SDL_BYTEORDER == SDL_BIG_ENDIAN
 
    rmask = 0xff000000;
    gmask = 0x00ff0000;
    bmask = 0x0000ff00;
    amask = 0x000000ff;
#else
 
    rmask = 0x000000ff;
    gmask = 0x0000ff00;
    bmask = 0x00ff0000;
    amask = 0xff000000;
#endif
 
    SDL_PixelFormat format = *(picture_surface->format);
    format.BitsPerPixel = 32;
    format.BytesPerPixel = 4;
    format.Rmask = rmask;
    format.Gmask = gmask;
    format.Bmask = bmask;
    format.Amask = amask;
 
    gl_surface = SDL_ConvertSurface(picture_surface,&format,SDL_SWSURFACE);
 
    gl_fliped_surface = flipSurface(gl_surface);
 
    glGenTextures(1, &glID);
 
    glBindTexture(GL_TEXTURE_2D, glID);
 
 
    glTexImage2D(GL_TEXTURE_2D, 0, 4, gl_fliped_surface->w,
                 gl_fliped_surface->h, 0, GL_RGBA,GL_UNSIGNED_BYTE,
                 gl_fliped_surface->pixels);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
 
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
 
 
    SDL_FreeSurface(gl_fliped_surface);
    SDL_FreeSurface(gl_surface);
    SDL_FreeSurface(picture_surface);
 
	std::cerr << "Load TEXTURES : OK, id :" << glID << "\n";
 
    return glID;
}
 
SDL_Surface * flipSurface(SDL_Surface * surface)
{
    int current_line,pitch;
    SDL_Surface * fliped_surface = SDL_CreateRGBSurface(SDL_SWSURFACE,
                                   surface->w,surface->h,
                                   surface->format->BitsPerPixel,
                                   surface->format->Rmask,
                                   surface->format->Gmask,
                                   surface->format->Bmask,
                                   surface->format->Amask);
 
 
 
    SDL_LockSurface(surface);
    SDL_LockSurface(fliped_surface);
 
    pitch = surface->pitch;
    for (current_line = 0; current_line < surface->h; current_line ++)
    {
        memcpy(&((unsigned char* )fliped_surface->pixels)[current_line*pitch],
               &((unsigned char* )surface->pixels)[(surface->h - 1  -
                                                    current_line)*pitch],
               pitch);
    }
 
    SDL_UnlockSurface(fliped_surface);
    SDL_UnlockSurface(surface);
    return fliped_surface;
}