Funkcję ładującą teksturę masz wyżej i ona cała odpowiada za ładowanie tekstury więc tam nie grzeb Do bindowania tekstury służy glBindTexture(), ale ja w swoim frameworku korzystam z czegoś takiego:
Ewentualnie jeśli chcesz wiedzieć to za załadowanie obrazka z dysku do pamięci odpowiada ilLoadImage() a za załadowanie danych z obrazka do tekstury OpenGL odpowiada glTexImage2D.
Wiesz co -> skończ z pomysłem rozbijania tej funkcji ładującej na dwie bo to nie ma zwyczajnie sensu. Funkcję która ładuje ci teksturę masz w pierwszym poście, sam podałeś do niej linka. Gdy już taką teksturę załadujesz, OpenGL będzie ją trzymał w pamięci karty graficznej dopóki nie każesz jej usunąć (glDeleteTextures()). Żeby jej użyć/zbindować/ustawić na aktywną wystarczy, że wywołasz funkcję, którą podałem w drugim swoim poście. Przykład kodu:
GLuint tex1 = LoadTexture("image1.png");
GLuint tex2 = LoadTexture("image2.png");
int x = 0;
int y = 0;
BindTexture(tex1);
drawQuad(x, y); // rysujemy 1 prostokąt z nałożoną tex1
drawQuad(x + 25, y + 25); // rysujemy 2 prostokąt z nałożoną tex1
BindTexture(tex2);
drawQuad(x + 50, y + 50); // rysujemy prostokąt z nałożoną tex2
glDeleteTextures(1, &tex2) // usuwamy tekstury
glDeleteTextures(1, &tex1)
Gdzie drawQuad() rysuje po prostu czworokąt. Proste?
Ps.
A tak w ogóle zobacz sobie jeszcze to: http://www.lonesock.net/soil.html, może łatwiej ci się przyswoi, bo to co wyprawiasz z DevIL’em woła o pomstę do nieba.
Tu masz też przykładową klasę reprezentującą teksturę napisaną przy użyciu SOIL’a: http://wklejto.pl/113377. Mam nadzieję, że to ci trochę rozjaśni w głowie.