Make it possible to specify KWin::GLTexture mutability
Some features will rely on it and complain that GLTexture decided to use glTexStorage
This commit is contained in:
parent
ff65bec92c
commit
29a2b2a355
2 changed files with 6 additions and 6 deletions
|
@ -190,7 +190,7 @@ GLTexture::GLTexture(const QString& fileName)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
GLTexture::GLTexture(GLenum internalFormat, int width, int height, int levels)
|
GLTexture::GLTexture(GLenum internalFormat, int width, int height, int levels, bool needsMutability)
|
||||||
: d_ptr(new GLTexturePrivate())
|
: d_ptr(new GLTexturePrivate())
|
||||||
{
|
{
|
||||||
Q_D(GLTexture);
|
Q_D(GLTexture);
|
||||||
|
@ -209,7 +209,7 @@ GLTexture::GLTexture(GLenum internalFormat, int width, int height, int levels)
|
||||||
bind();
|
bind();
|
||||||
|
|
||||||
if (!GLPlatform::instance()->isGLES()) {
|
if (!GLPlatform::instance()->isGLES()) {
|
||||||
if (d->s_supportsTextureStorage) {
|
if (d->s_supportsTextureStorage && !needsMutability) {
|
||||||
glTexStorage2D(d->m_target, levels, internalFormat, width, height);
|
glTexStorage2D(d->m_target, levels, internalFormat, width, height);
|
||||||
d->m_immutable = true;
|
d->m_immutable = true;
|
||||||
} else {
|
} else {
|
||||||
|
@ -234,8 +234,8 @@ GLTexture::GLTexture(GLenum internalFormat, int width, int height, int levels)
|
||||||
unbind();
|
unbind();
|
||||||
}
|
}
|
||||||
|
|
||||||
GLTexture::GLTexture(GLenum internalFormat, const QSize &size, int levels)
|
GLTexture::GLTexture(GLenum internalFormat, const QSize &size, int levels, bool needsMutability)
|
||||||
: GLTexture(internalFormat, size.width(), size.height(), levels)
|
: GLTexture(internalFormat, size.width(), size.height(), levels, needsMutability)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -57,8 +57,8 @@ public:
|
||||||
explicit GLTexture(const QImage& image, GLenum target = GL_TEXTURE_2D);
|
explicit GLTexture(const QImage& image, GLenum target = GL_TEXTURE_2D);
|
||||||
explicit GLTexture(const QPixmap& pixmap, GLenum target = GL_TEXTURE_2D);
|
explicit GLTexture(const QPixmap& pixmap, GLenum target = GL_TEXTURE_2D);
|
||||||
explicit GLTexture(const QString& fileName);
|
explicit GLTexture(const QString& fileName);
|
||||||
GLTexture(GLenum internalFormat, int width, int height, int levels = 1);
|
GLTexture(GLenum internalFormat, int width, int height, int levels = 1, bool needsMutability = false);
|
||||||
explicit GLTexture(GLenum internalFormat, const QSize &size, int levels = 1);
|
explicit GLTexture(GLenum internalFormat, const QSize &size, int levels = 1, bool needsMutability = false);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a GLTexture wrapper around an existing texture.
|
* Create a GLTexture wrapper around an existing texture.
|
||||||
|
|
Loading…
Reference in a new issue