QOpenGLTexture* Model::TextureFromFile(QString path, QString directory) { //Generate texture ID and load texture data QString filename = path; filename = directory + '/' + filename; //glGenTextures(1, &textureID); //int width, height; QOpenGLTexture *texture = new QOpenGLTexture(QImage(filename).mirrored()); texture->setMinificationFilter(QOpenGLTexture::LinearMipMapLinear); texture->setMagnificationFilter(QOpenGLTexture::Linear); texture->setWrapMode(QOpenGLTexture::Repeat); texture->setAutoMipMapGenerationEnabled(true); //unsigned char* image = SOIL_load_image(filename.c_str(), &width, &height, 0, SOIL_LOAD_RGB); // Assign texture to ID //glBindTexture(GL_TEXTURE_2D, textureID); //glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image); //glGenerateMipmap(GL_TEXTURE_2D); // Parameters /*glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);*/ //glBindTexture(GL_TEXTURE_2D, 0); //SOIL_free_image_data(image); return texture; }
void Quiddiards::loadResources(){ for (unsigned i = 0; i < TEXNUM; i++){ std::string file = texFiles[i]; QImage image; /* add perlin noise to balls texture */ if (file == "quaffle.jpg"){ perlin(image, QColor(255, 0, 0, 0), 0.7); } else if (file == "bludger.jpg"){ perlin(image, QColor(0, 0, 255, 0), 0.7); } else if (file == "snitch.jpg"){ perlin(image, QColor(255, 214, 0, 0), 0.7); } else if (file == "cueball.jpg"){ perlin(image, QColor(240, 240, 240, 0), 0.7); } else{ image.load((":/images/" + file).c_str()); } QOpenGLTexture* tex = new QOpenGLTexture(image); tex->setMinMagFilters(QOpenGLTexture::Linear, QOpenGLTexture::Linear); tex->setWrapMode(QOpenGLTexture::MirroredRepeat); textures[file] = tex; } }
void QGLView::createTextTexture(TextParameters *textParameters) { int textureIndex = m_textTextList.indexOf(textParameters->staticText); QOpenGLTexture *texture = m_textTextureList.at(textureIndex); texture->create(); texture->setMinificationFilter(QOpenGLTexture::Nearest); texture->setMagnificationFilter(QOpenGLTexture::Nearest); texture->setWrapMode(QOpenGLTexture::ClampToEdge); texture->setData(m_textImageList.at(textureIndex)); }