Archief - OpenGL Probleem, hulp nodig!

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Grayfox

Legacy Member
Lo, we zitten hier dus met een raar probleem... de textures willen niet werken
texture loading gaat allemaal ok, en al de texture code is ok
maar als ik glGenTextures(1,&texture[0]) aanroep bijvoorbeeld, verandert de waarde van texture[0] niet... (normaal moet deze dus een unieke id krijgen, dat wordt gebruikt als de naam van de texture)

dan heb ik dus geprobeerd om glGetError() te gebruiken, en het bleek dat er een error was, namelijk GL_INVALID_OPERATION, maar als je glGetError() aanroept dan wordt de error flag normaal gereset, maar dat gebeurt dus ook niet...
Blijkbaar genereerd glGetError() ook nog een extra GL_INVALID_OPERATION zodat je als je direct hierna glGetError() aanroept geen GL_NO_ERROR krijgt..
en GL_INVALID_OPERATION wordt gegenereerd als er dus een invalid operation wordt uitgevoerd tussen glBegin() en glEnd()...
dat zou dan betekenen dat er ergens in de code uit glBegin() en glEnd() gegaan is ofzo... maar ik heb alle glBegins en glEnds gechecked en ik heb nergens iets gevonden met een return ofzo.

heeft er nog iemand ideëen of weet er iemand hoe het komt dat dit dus niet werkt?
in linux werkt het om een of andere reden wel...

killgore

Legacy Member
1) krijg je iets met glIsTexture????
2) Zelfde fout met glGenTextures(1,texture) ???
3) Roep je die glGetError functies echt na-een aan?

4) je gebruikt toch geen functie-aanroepen tussen glBegin en glEnd die er niet mogen staan ??? (zet je glGenTextures er eens buiten) -- Het effect van "niet toegestane" functieaanroepen tussen glBegin en glEnd kan nogal variëren naargelang de opengl-implentatie.

edit:
dit is wat er in m'n boek hier staat:
allowed between glBegin & glEnd:
glVertex*
glColor*
glIndex*
glSecondaryColor*
glNormal*
glMaterial*
glFogCoord*
glTexCoord*
glMultiTexCoord*
glEdgeFlag*
glArrayElement*
glEvalCoord*
glEvalPoint*
glCallList
glCallLists

Grayfox

Legacy Member
killgore zei:
1) krijg je iets met glIsTexture????
2) Zelfde fout met glGenTextures(1,texture) ???
3) Roep je die glGetError functies echt na-een aan?

4) je gebruikt toch geen functie-aanroepen tussen glBegin en glEnd die er niet mogen staan ??? (zet je glGenTextures er eens buiten) -- Het effect van "niet toegestane" functieaanroepen tussen glBegin en glEnd kan nogal variëren naargelang de opengl-implentatie.

1- glIsTexture, dunno wak daarmee moe doen als ik geen textureid heb :p
2- glGenTextures(1,texture) <- nog ni geprobeerd, zal ik direct eens doen, lijkt me eigenlijk logisch om het zo te doen maar in Nehe's tutorial wordt het ook anders gedaan en daar werkt da dusja :p
3- glGetError: ja direct na elkaar, zonder ook maar iets ertussen behalve een write command naar een textfile
4- Das het probleem juist, GL_INVALID_OPERATION betekent dat je een invalid operation tussen glBegin en glEnd aanroept, maar ik vind niets...

anyway, thx for the help, kga nummer 2 eens uitproberen, you never know :)

killgore

Legacy Member
kzou et maar raar vinden moest het aan die 2° liggen. Voor de rest kan ik maar gokken, kben zelf ook nog niet denderend lang met openGL bezig :(

Welke compiler gebruik je? (Als opengl er std opzat kan je mssch eens overwegen de libs en headers opnieuw te downloaden).

Grayfox

Legacy Member
MSVC++ 6.0, en kheb al heel wat andere dingen gedaan met opengl en textures zijn nooit een probleem geweest... tot nu :| (mja ik heb da deel van de code ni geschreven, dus da maakt het nog eens moelijker :))

SlasZ

Legacy Member
Grayfox zei:
MSVC++ 6.0, en kheb al heel wat andere dingen gedaan met opengl en textures zijn nooit een probleem geweest... tot nu :| (mja ik heb da deel van de code ni geschreven, dus da maakt het nog eens moelijker :))

als het echt een probleem blijft geef je gewoon zelf een waarde aan texture[0] he, beginnende bij 1. werkt even goed :niceone:

Grayfox

Legacy Member
ja heb ik al geprobeerd, maar glGenTexture is niet de enige openglcommand die GL_INVALID_OPERATION genereert, wss ook al die andere zoals glEnable(GL_TEXTURE_2D) en glBindTexture


*edit* lol een plaats in de code gevonden waar ik GL_NO_ERROR krijg, dan heb ik daar mn renderscene gezet en nu werken de textures ^^^^
maja, de bug is nog altijd ni weg :X

Grayfox

Legacy Member
Eindelijk bug gevonden ^^
die gast die de loading code geschreven had (en ook al het grootste deel van het project :p) die had de files laten loaden in telkens een aparte thread (dus ook de textureloading) en dan liet hij de loadinganimation tegelijkertijd runnen tijdens het andere laden gebeurde (textures, map, sounds)
dat zorgde ervoor dat de gl calls om de textures te genereren tussen de glBegin en glEnd van de loading animatie kwamen...

da was dus niet direct zichtbaar in de code zelf, mja tis nu eindelijk gefixed ^^
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan