aloin miettimään opengl tekstuurisysteemiä,
eli jos siinä on vaikka 3 tekstuuria 0, 1 ja 2
poistan glDeleteTextures() tekstuurin 1 ;
mitä käy? vaihtuuko tekstuuri 2, 1:sen tilalle
vai jääkö se varatuksi. entäs kun bindataan uusi,
tuleeko siitä 3, vai meneekö se poistetun ykkösen tilalle?
(ehkä helpompi kysyä ihmiseltä kun lähteä kokeilemaan koodilla)
Jos bindaat uuden niin sen pitäis mennä poistetun tilalle, ja muut olemassa olevat indeksit ei laskeudu alaspäin. Voit tietty itsekin kokeilla mitä lukuja glGenTextures antaa poiston jälkeen. (Saapipahan ainakin mielenrauhan kun näkee käytännössä)
ah löysin jo ohjeen tähän,
gldeletetextures poistaa välistä ja glgentexutres laittaa seuraavan siihen väliin
OpenGL tekstuuri id:t ovat tekstuuriolioiden "osoittimia". Näitä id:t ei saa keksiä itse, vaan ne tulee aina luoda glgentextures-funktiolla. Tekstuuri säilyttää saman id:n niin kauan kuin se on olemassa. Siis aivan samoin olio säilyttää osoittimensa.
gldeletetextures merkitsee tekstuurin poistettavaksi ja ajuri poistaa tekstuurin tämän jälkeen silloin kun parhaaksi katsoo. Poistettuun tekstuuriin ei saa mennä poiston jälkeen nykimään sen enempää, kuin poistettuun olioonkaan.
Se palauttaako glgentextures samoja id:t, joita gldeletetextures aikaisemmin poisti riippuu täysin siitä haluaako ajuri kierrättää vanhoja id:tä. Koska nämä id:t ("tekstuuriosoittimet") on toteutettu yleensä hajautustaulun avulla tullaan vanhoja id:tä yleensä ennemmin tai myöhemmin kierrättämään. Tilanne on sama kuin olioiden tapauksessakin, jossa uusi olio voi saada saman osoittimen kuin vanha poistettu, koska se luotiin edelliseltä vapautuneeseen muistitilaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.