Príkaz glGenTextures vypisuje chybu

Príkaz glGenTextures vypisuje chybu
« kdy: 10. 11. 2012, 19:08:32 »
Prechádzam seriál Grafická knihovna OpenGL a v 26. lekcii som narazil na problém s kompiláciou demonštračného príkladu.
(Všetky predchádzajúce príklady som po malej úprave skompiloval a otestoval.)

V tomto príklade mi druhý riadok:

Kód: [Vybrat]
int loadTextures(void)
{
    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);          // zpusob ulozeni bytu v texure
    glGenTextures(4, textures);                     // vytvoreni jmena textur
    if (bitmapLoad(textures[TEXTURE_GROUND],   "ground.bmp"))   exit(0);
    if (bitmapLoad(textures[TEXTURE_WALL1],    "wall1.bmp"))    exit(0);
    if (bitmapLoad(textures[TEXTURE_WALL2],    "wall2.bmp"))    exit(0);
    if (bitmapLoad(textures[TEXTURE_TREASURE], "treasure.bmp")) exit(0);
}

vypisuje 2 chyby:

Kód: [Vybrat]
error: invalid conversion from 'int*' to 'GLuint*'
error:   initializing argument 2 of 'void glGenTextures(GLsizei, GLuint*)'

Hľadal som na nete a boli tam rady, ktoré som vyskúšal:

Kód: [Vybrat]
glGenTextures(4, &textures);
 glGenTextures(4, textures[4]);

Nepomohlo to.
Poradí niekto?

Používam Code:Blocks 10.05 na win7. Súbor je vložený do projektu GLUT a ako som už písal, ostatné príklady fungujú.
Ďakujem.
« Poslední změna: 11. 11. 2012, 21:01:06 od Petr Krčmář »


Neviditelný

Re:príkaz: glGenTextures(4, textures); vypisuje chybu
« Odpověď #1 kdy: 11. 11. 2012, 00:28:47 »
Střelím od boku, buď zkuste
Kód: [Vybrat]
glGenTextures(4, (GLuint*)textures);
nebo upravte
Kód: [Vybrat]
int textures[4];
na
Kód: [Vybrat]
GLuint textures[4];

Re:príkaz: glGenTextures(4, textures); vypisuje chybu
« Odpověď #2 kdy: 11. 11. 2012, 10:58:07 »
Toto:
GLuint textures[4];
som si nakoniec uvedomil aj ja.
Chybu to už nevypisuje, ale program nepracuje ako má.

Pavel Tisnovsky

Re:Príkaz glGenTextures vypisuje chybu
« Odpověď #3 kdy: 12. 11. 2012, 10:36:49 »
textures je pole, tudiz uz nema vyznam psat &textures, kdyz uz, tak &textures[0]. To pretypovani na GLuint by melo byt ok, musim to jeste vyzkouset.