Allocate mipmaps in FBOs with glTexImage2D, not glGenerateMipmap.
Change-Id: I7b7d26da97f82f354d81913eccab46d79ec9e8f0 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
This commit is contained in:
parent
17c13e1e9d
commit
97ba018492
@ -412,8 +412,18 @@ void QOpenGLFramebufferObjectPrivate::init(QOpenGLFramebufferObject *, const QSi
|
||||
glBindTexture(target, texture);
|
||||
glTexImage2D(target, 0, internal_format, size.width(), size.height(), 0,
|
||||
GL_RGBA, GL_UNSIGNED_BYTE, NULL);
|
||||
if (mipmap)
|
||||
funcs.glGenerateMipmap(GL_TEXTURE_2D);
|
||||
if (mipmap) {
|
||||
int width = size.width();
|
||||
int height = size.height();
|
||||
int level = 0;
|
||||
while (width > 1 || height > 1) {
|
||||
width = (width + 1) >> 1;
|
||||
height = (height + 1) >> 1;
|
||||
++level;
|
||||
glTexImage2D(target, level, internal_format, width, height, 0,
|
||||
GL_RGBA, GL_UNSIGNED_BYTE, NULL);
|
||||
}
|
||||
}
|
||||
glTexParameteri(target, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameteri(target, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
glTexParameteri(target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||
|
@ -454,8 +454,18 @@ void QGLFramebufferObjectPrivate::init(QGLFramebufferObject *q, const QSize &sz,
|
||||
glBindTexture(target, texture);
|
||||
glTexImage2D(target, 0, internal_format, size.width(), size.height(), 0,
|
||||
GL_RGBA, GL_UNSIGNED_BYTE, NULL);
|
||||
if (mipmap)
|
||||
glGenerateMipmap(GL_TEXTURE_2D);
|
||||
if (mipmap) {
|
||||
int width = size.width();
|
||||
int height = size.height();
|
||||
int level = 0;
|
||||
while (width > 1 || height > 1) {
|
||||
width = (width + 1) >> 1;
|
||||
height = (height + 1) >> 1;
|
||||
++level;
|
||||
glTexImage2D(target, level, internal_format, width, height, 0,
|
||||
GL_RGBA, GL_UNSIGNED_BYTE, NULL);
|
||||
}
|
||||
}
|
||||
glTexParameteri(target, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameteri(target, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
glTexParameteri(target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||
|
Loading…
Reference in New Issue
Block a user