Skip to content
Snippets Groups Projects
Commit 230d5aee authored by Martin Flöser's avatar Martin Flöser
Browse files

Generate texture coordinates for limited NPOT support

Fixes rendering issues with R300 and similar GPUs. If the texture
uses GL_TEXTURE_RECTANGLE_ARB as target the tex coordinates need
to be adjusted. This at least fixes missing text on EffectFrames
with graphicssystem native on R300. Hopefully more issues are
resolved by the change.

BUG: 269576
CCBUG: 282882
FIXED-IN: 4.7.3
parent c22eb750
No related branches found
No related tags found
No related merge requests found
......@@ -280,11 +280,18 @@ void GLTexture::render(QRegion region, const QRect& rect)
r.x() + rect.width(), r.y(),
r.x() + rect.width(), r.y() + rect.height()
};
#ifdef KWIN_HAVE_OPENGLES
const float texWidth = 1.0f;
const float texHeight = 1.0f;
#else
const float texWidth = (target() == GL_TEXTURE_RECTANGLE_ARB) ? width() : 1.0f;
const float texHeight = (target() == GL_TEXTURE_RECTANGLE_ARB) ? height() : 1.0f;
#endif
const float texcoords[ 4 * 2 ] = {
0.0f, d->m_yInverted ? 0.0f : 1.0f, // y needs to be swapped (normalized coords)
0.0f, d->m_yInverted ? 1.0f : 0.0f,
1.0f, d->m_yInverted ? 0.0f : 1.0f,
1.0f, d->m_yInverted ? 1.0f : 0.0f
0.0f, d->m_yInverted ? 0.0f : texHeight, // y needs to be swapped (normalized coords)
0.0f, d->m_yInverted ? texHeight : 0.0f,
texWidth, d->m_yInverted ? 0.0f : texHeight,
texWidth, d->m_yInverted ? texHeight : 0.0f
};
d->m_vbo->setData(4, 2, verts, texcoords);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment