Napisałem funkcje ładującą teksturę do OpenGL.
Do załadowania używam SFML.
void LoadTexture(GLuint &texture, std::string path)
{
sf::Image image;
if (!image.loadFromFile(path))return;
// generowanie nazwy tekstury
glGenTextures( 1, & texture );
// wybranie biezacej tekstury
glBindTexture( GL_TEXTURE_2D, texture );
// ustalenie parametrów tekstury
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);
// ustalenie trybu teksturowania
glTexEnvf(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,GL_REPLACE);
// tworzenie tekstury
glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, image.getSize().x,image.getSize().y,
0, GL_RGB, GL_UNSIGNED_BYTE, image.getPixelsPtr());
}
Jednak gdy wywołuje funkcje, program się kompiluje i wywala:
http://i.imgur.com/xbx5Yw0.png
a z głośnika efekt dźwiękowych w postaci trzech szybkich 'piknięć'.
Błąd jest na pewno w funkcji tylko nie wiem gdzie bo jestem początkujący w SFML'u