1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| bool Texture::charger(std::string fichier)
{
sf::Image image;
if (!image.loadFromFile("Textures/Terre.png"))
{
std::cout << "[ERREUR] Initialisation texture\n";
return false;
}
sf::Image image2;
if (!image2.loadFromFile("Textures/Herbe.png"))
{
std::cout << "[ERREUR] Initialisation texture\n";
return false;
}
if (glIsTexture(m_identifiant) == GL_TRUE)
glDeleteTextures(1, &m_identifiant);
glGenTextures(1, &m_identifiant);
glBindTexture(GL_TEXTURE_2D_ARRAY, m_identifiant);
glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA, image.getSize().x, image.getSize().y, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
glTexSubImage3D(GL_TEXTURE_2D_ARRAY, 0, 0, 0, 0, image.getSize().x, image.getSize().y, 1, GL_RGBA, GL_UNSIGNED_BYTE, image.getPixelsPtr());
glTexSubImage3D(GL_TEXTURE_2D_ARRAY, 0, 0, 0, 1, image2.getSize().x, image2.getSize().y, 1, GL_RGBA, GL_UNSIGNED_BYTE, image2.getPixelsPtr());
glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glBindTexture(GL_TEXTURE_2D_ARRAY, 0);
return true;
} |