bool loadSkyBoxTexture(QOpenGLTexture & tex, const char *posx, const char *negx, const char *posy, const char *negy, const char *posz, const char *negz) { if (!tex.create()) { ERRORM("Failed to create skybox texture's OpenGL object name"); return false; } tex.bind(); utils::misc::ScopedGuard guard([&tex] { tex.release(); }); (void) guard; if (!loadTextureHelper(posx, GL_TEXTURE_CUBE_MAP_POSITIVE_X)) return false; if (!loadTextureHelper(negx, GL_TEXTURE_CUBE_MAP_NEGATIVE_X)) return false; if (!loadTextureHelper(posy, GL_TEXTURE_CUBE_MAP_POSITIVE_Y)) return false; if (!loadTextureHelper(negy, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y)) return false; if (!loadTextureHelper(posz, GL_TEXTURE_CUBE_MAP_POSITIVE_Z)) return false; if (!loadTextureHelper(negz, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z)) return false; OGLF->glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MAG_FILTER, GL_LINEAR); OGLF->glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR); OGLF->glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); OGLF->glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); OGLF->glTexParameteri(GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); return true; }
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)); }
bool load2DTexture(QOpenGLTexture & tex, const char *name, GLint internal_format, GLint filter_mode, GLint clamp_mode) { if (!tex.create()) { ERRORM("Failed to create 2D texture's OpenGL object name"); return false; } tex.bind(); utils::misc::ScopedGuard guard([&tex] { tex.release(); }); (void) guard; if (!loadTextureHelper(name, GL_TEXTURE_2D, internal_format)) return false; OGLF->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter_mode); OGLF->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter_mode); OGLF->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, clamp_mode); OGLF->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, clamp_mode); return true; }