Introduce a build option KWIN_BUILD_OPENGL_1_COMPOSITING

If the build option is enabled KWIN_HAVE_OPENGL_1 is passed as a compile
flag when build against OpenGL.

This compile flag is meant to replace the KWIN_HAVE_OPENGLES. So far code
has been ifdefed for special behavior of OpenGL ES 2.0 and to remove
fixed functionality calls which are not available in OpenGL ES 2.0.

With this build flag the fixed functionality calls which are only used in
the OpenGL1 Compositor can be removed and keeping the KWIN_HAVE_OPENGLES
for the real differences between OpenGL 2.x and OpenGL ES 2.0.

E.g. a call like glColor4f should be in an
glColor4f(1.0, 1.0, 1.0, 1.0);

while a call like glPolygonMode should be in an
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);

Building for OpenGL ES 2.0 of course implies that KWIN_HAVE_OPENGL_1 is
not defined.
This commit is contained in:
Martin Gräßlin 2012-10-05 10:45:10 +02:00
parent b2922f6675
commit cf5de22586
16 changed files with 71 additions and 62 deletions

View file

@ -8,6 +8,7 @@ OPTION(KWIN_BUILD_TABBOX "Enable building of KWin Tabbox functionality" ON)
OPTION(KWIN_BUILD_SCREENEDGES "Enable building of KWin with screen edge support" ON)
OPTION(KWIN_BUILD_SCRIPTING "Enable building of KWin with scripting support" ON)
OPTION(KWIN_BUILD_XRENDER_COMPOSITING "Enable building of KWin with XRender Compositing support" ON)
OPTION(KWIN_BUILD_OPENGL_1_COMPOSITING "Enable support for OpenGL 1.x, automatically disabled when building for OpenGL ES 2.0" ON)
OPTION(KWIN_BUILD_ACTIVITIES "Enable building of KWin with kactivities support" ON)
if(${KDE_PLATFORM_PROFILE} STREQUAL "Desktop")
OPTION(KWIN_PLASMA_ACTIVE "Enable building KWin for Plasma Active." OFF)
@ -197,6 +198,9 @@ set_target_properties(kwin PROPERTIES OUTPUT_NAME ${KWIN_NAME})
set_target_properties(kdeinit_kwin PROPERTIES OUTPUT_NAME kdeinit4_${KWIN_NAME})
if(OPENGL_FOUND)
if( KWIN_BUILD_OPENGL_1_COMPOSITING )
set_target_properties(kdeinit_kwin PROPERTIES COMPILE_FLAGS -DKWIN_HAVE_OPENGL_1)
endif( KWIN_BUILD_OPENGL_1_COMPOSITING )
add_subdirectory(opengltest)
target_link_libraries(kdeinit_kwin kwinglutils ${OPENGL_gl_LIBRARY})
# -ldl used by OpenGL code

View file

@ -13,6 +13,9 @@ macro( KWIN4_ADD_EFFECT name )
KWIN4_ADD_EFFECT_BACKEND(kwin4_effect_${name} ${ARGN})
if(OPENGL_FOUND)
target_link_libraries(kwin4_effect_${name} kwinglutils)
if( KWIN_BUILD_OPENGL_1_COMPOSITING )
set_target_properties(kwin4_effect_${name} PROPERTIES COMPILE_FLAGS -DKWIN_HAVE_OPENGL_1)
endif( KWIN_BUILD_OPENGL_1_COMPOSITING )
elseif(OPENGLES_FOUND)
target_link_libraries(kwin4_effect_${name} kwinglesutils)
set_target_properties(kwin4_effect_${name} PROPERTIES COMPILE_FLAGS "-DKWIN_HAVE_OPENGLES")

View file

@ -442,7 +442,7 @@ void BlurEffect::doBlur(const QRegion& shape, const QRect& screen, const float o
// Set up the texture matrix to transform from screen coordinates
// to texture coordinates.
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (effects->compositingType() == OpenGL1Compositing) {
glMatrixMode(GL_TEXTURE);
pushMatrix();
@ -484,7 +484,7 @@ void BlurEffect::doBlur(const QRegion& shape, const QRect& screen, const float o
drawRegion(shape);
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (effects->compositingType() == OpenGL1Compositing) {
popMatrix();
glMatrixMode(GL_MODELVIEW);
@ -531,7 +531,7 @@ void BlurEffect::doCachedBlur(EffectWindow *w, const QRegion& region, const floa
shader->bind();
QMatrix4x4 textureMatrix;
QMatrix4x4 modelViewProjectionMatrix;
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (effects->compositingType() == OpenGL1Compositing) {
glMatrixMode(GL_MODELVIEW);
pushMatrix();
@ -603,7 +603,7 @@ void BlurEffect::doCachedBlur(EffectWindow *w, const QRegion& region, const floa
// to texture coordinates.
textureMatrix.scale(1.0 / tex.width(), -1.0 / tex.height(), 1);
textureMatrix.translate(-updateRect.x(), -updateRect.height() - updateRect.y(), 0);
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (effects->compositingType() == OpenGL1Compositing) {
glMatrixMode(GL_TEXTURE);
loadMatrix(textureMatrix);
@ -644,7 +644,7 @@ void BlurEffect::doCachedBlur(EffectWindow *w, const QRegion& region, const floa
textureMatrix.setToIdentity();
textureMatrix.scale(1.0 / targetTexture.width(), -1.0 / targetTexture.height(), 1);
textureMatrix.translate(-r.x(), -targetTexture.height() - r.y(), 0);
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (effects->compositingType() == OpenGL1Compositing) {
glMatrixMode(GL_TEXTURE);
loadMatrix(textureMatrix);
@ -655,7 +655,7 @@ void BlurEffect::doCachedBlur(EffectWindow *w, const QRegion& region, const floa
drawRegion(blurredRegion & region);
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (effects->compositingType() == OpenGL1Compositing) {
popMatrix();
glMatrixMode(GL_TEXTURE);

View file

@ -134,7 +134,7 @@ bool GLSLBlurShader::supported()
(void) glGetError(); // Clear the error state
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
// These are the minimum values the implementation is required to support
int value = 0;
@ -312,7 +312,7 @@ ARBBlurShader::~ARBBlurShader()
void ARBBlurShader::reset()
{
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (program) {
glDeleteProgramsARB(1, &program);
program = 0;
@ -382,7 +382,7 @@ void ARBBlurShader::setPixelDistance(float val)
void ARBBlurShader::bind()
{
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (!isValid())
return;
@ -393,7 +393,7 @@ void ARBBlurShader::bind()
void ARBBlurShader::unbind()
{
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
int boundObject;
glGetProgramivARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_BINDING_ARB, &boundObject);
if (boundObject == (int)program) {
@ -423,7 +423,7 @@ int ARBBlurShader::maxKernelSize() const
void ARBBlurShader::init()
{
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
QVector<float> kernel = gaussianKernel();
const int size = kernel.size();
const int center = size / 2;

View file

@ -191,7 +191,7 @@ void CoverSwitchEffect::paintScreen(int mask, QRegion region, ScreenPaintData& d
shader->setUniform("modelview", origModelview * modelview);
shaderManager->popShader();
} else {
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
glMatrixMode(GL_PROJECTION);
pushMatrix();
loadMatrix(projection);
@ -333,7 +333,7 @@ void CoverSwitchEffect::paintScreen(int mask, QRegion region, ScreenPaintData& d
shaderManager->popShader();
} else {
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
glPushMatrix();
QRect fullRect = effects->clientArea(FullArea, activeScreen, effects->currentDesktop());
if (effects->numScreens() > 1 && area.x() != fullRect.x()) {
@ -366,7 +366,7 @@ void CoverSwitchEffect::paintScreen(int mask, QRegion region, ScreenPaintData& d
shader->setUniform("modelview", origModelview);
shaderManager->popShader();
} else {
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
popMatrix();
// revert change of projection matrix
glMatrixMode(GL_PROJECTION);
@ -754,7 +754,7 @@ void CoverSwitchEffect::paintWindowCover(EffectWindow* w, bool reflectedWindow,
shader->setUniform("screenTransformation", origMatrix);
ShaderManager::instance()->popShader();
} else {
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
glPushMatrix();
glScalef(1.0, -1.0, 1.0);
data.setYTranslation(- area.height() - windowRect.y() - windowRect.height());

View file

@ -451,7 +451,7 @@ void CubeEffect::paintScreen(int mask, QRegion region, ScreenPaintData& data)
popMatrix();
// call the inside cube effects
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
foreach (CubeInsideEffect * inside, m_cubeInsideEffects) {
pushMatrix(m_rotationMatrix);
glTranslatef(rect.width() / 2, rect.height() / 2, -point - zTranslate);
@ -518,7 +518,7 @@ void CubeEffect::paintScreen(int mask, QRegion region, ScreenPaintData& data)
vbo->setData(6, 3, verts.data(), texcoords.data());
vbo->render(GL_TRIANGLES);
} else {
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
glColor4f(0.0, 0.0, 0.0, alpha);
glPushMatrix();
glTranslatef(rect.x() + rect.width() * 0.5f, 0.0, 0.0);
@ -548,7 +548,7 @@ void CubeEffect::paintScreen(int mask, QRegion region, ScreenPaintData& data)
// call the inside cube effects
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
foreach (CubeInsideEffect * inside, m_cubeInsideEffects) {
pushMatrix(m_rotationMatrix);
glTranslatef(rect.width() / 2, rect.height() / 2, -point - zTranslate);
@ -798,14 +798,12 @@ void CubeEffect::paintCap(bool frontFirst, float zOffset)
capTexture->bind();
}
} else {
#ifdef KWIN_HAVE_OPENGL_1
pushMatrix(m_rotationMatrix * capMatrix);
#ifndef KWIN_HAVE_OPENGLES
glMatrixMode(GL_TEXTURE);
#endif
pushMatrix();
loadMatrix(m_textureMirrorMatrix);
#ifndef KWIN_HAVE_OPENGLES
glMatrixMode(GL_MODELVIEW);
glColor4f(capColor.redF(), capColor.greenF(), capColor.blueF(), cubeOpacity);

View file

@ -272,7 +272,7 @@ void FlipSwitchEffect::paintScreen(int mask, QRegion region, ScreenPaintData& da
shader->setUniform("projection", projection);
shader->setUniform("modelview", origModelview * modelview);
} else {
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
glMatrixMode(GL_PROJECTION);
pushMatrix();
loadMatrix(projection);
@ -382,7 +382,7 @@ void FlipSwitchEffect::paintScreen(int mask, QRegion region, ScreenPaintData& da
shader->setUniform("projection", origProjection);
shader->setUniform("modelview", origModelview);
} else {
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
popMatrix();
// revert change of projection matrix
glMatrixMode(GL_PROJECTION);

View file

@ -339,7 +339,7 @@ void LogoutEffect::renderVignetting()
void LogoutEffect::renderVignettingLegacy()
{
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
glPushAttrib(GL_CURRENT_BIT | GL_ENABLE_BIT | GL_TEXTURE_BIT);
glEnable(GL_BLEND); // If not already (Such as when rendered straight to the screen)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
@ -400,7 +400,7 @@ void LogoutEffect::renderBlurTexture()
void LogoutEffect::renderBlurTextureLegacy()
{
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
glPushAttrib(GL_CURRENT_BIT | GL_ENABLE_BIT | GL_TEXTURE_BIT);
// Unmodified base image
blurTexture->bind();

View file

@ -199,7 +199,7 @@ void StartupFeedbackEffect::paintScreen(int mask, QRegion region, ScreenPaintDat
ShaderManager::instance()->pushShader(m_blinkingShader);
m_blinkingShader->setUniform("u_color", blinkingColor);
} else {
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
// texture transformation
float color[4] = { blinkingColor.redF(), blinkingColor.greenF(), blinkingColor.blueF(), 1.0f };
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
@ -225,7 +225,7 @@ void StartupFeedbackEffect::paintScreen(int mask, QRegion region, ScreenPaintDat
ShaderManager::instance()->popShader();
}
if (m_type == BlinkingFeedback && !useShader) {
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
// resture states
glActiveTexture(GL_TEXTURE1);
texture->unbind();

View file

@ -400,7 +400,7 @@ void LanczosFilter::timerEvent(QTimerEvent *event)
void LanczosFilter::prepareRenderStates(GLTexture* tex, double opacity, double brightness, double saturation)
{
#ifdef KWIN_HAVE_OPENGLES
#ifndef KWIN_HAVE_OPENGL_1
Q_UNUSED(tex)
Q_UNUSED(opacity)
Q_UNUSED(brightness)
@ -519,7 +519,7 @@ void LanczosFilter::prepareRenderStates(GLTexture* tex, double opacity, double b
void LanczosFilter::restoreRenderStates(GLTexture* tex, double opacity, double brightness, double saturation)
{
#ifdef KWIN_HAVE_OPENGLES
#ifndef KWIN_HAVE_OPENGL_1
Q_UNUSED(tex)
Q_UNUSED(opacity)
Q_UNUSED(brightness)
@ -559,7 +559,7 @@ LanczosShader::LanczosShader(QObject* parent)
LanczosShader::~LanczosShader()
{
delete m_shader;
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (m_arbProgram) {
glDeleteProgramsARB(1, &m_arbProgram);
m_arbProgram = 0;
@ -571,7 +571,7 @@ void LanczosShader::bind()
{
if (m_shader)
ShaderManager::instance()->pushShader(m_shader);
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
else {
glEnable(GL_FRAGMENT_PROGRAM_ARB);
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, m_arbProgram);
@ -583,7 +583,7 @@ void LanczosShader::unbind()
{
if (m_shader)
ShaderManager::instance()->popShader();
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
else {
int boundObject;
glGetProgramivARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_BINDING_ARB, &boundObject);
@ -602,7 +602,7 @@ void LanczosShader::setUniforms()
glUniform2fv(m_uOffsets, 16, (const GLfloat*)m_offsets);
glUniform4fv(m_uKernel, 16, (const GLfloat*)m_kernel);
}
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
else {
for (int i = 0; i < 16; ++i) {
glProgramLocalParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, i, m_offsets[i].x(), m_offsets[i].y(), 0, 0);
@ -635,7 +635,7 @@ bool LanczosShader::init()
}
}
#ifdef KWIN_HAVE_OPENGLES
#ifndef KWIN_HAVE_OPENGL_1
// no ARB shader in GLES
return false;
#else

View file

@ -57,6 +57,10 @@ if(OPENGL_FOUND)
KWIN4_ADD_GLUTILS_BACKEND(kwinglutils ${OPENGL_INCLUDE_DIR} ${OPENGL_gl_LIBRARY})
set_target_properties(kwinglutils PROPERTIES OUTPUT_NAME ${KWIN_NAME}glutils)
if( KWIN_BUILD_OPENGL_1_COMPOSITING )
set_target_properties(kwinglutils PROPERTIES COMPILE_FLAGS -DKWIN_HAVE_OPENGL_1)
endif( KWIN_BUILD_OPENGL_1_COMPOSITING )
target_link_libraries(kwinglutils ${OPENGL_gl_LIBRARY})
target_link_libraries(kwinglutils LINK_INTERFACE_LIBRARIES ${OPENGL_gl_LIBRARY})
# -ldl used by OpenGL code

View file

@ -239,7 +239,7 @@ void GLTexture::discard()
void GLTexturePrivate::bind()
{
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (!ShaderManager::instance()->isValid())
glEnable(m_target);
#endif
@ -287,7 +287,7 @@ void GLTexture::bind()
void GLTexturePrivate::unbind()
{
glBindTexture(m_target, 0);
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (!ShaderManager::instance()->isValid())
glDisable(m_target);
#endif

View file

@ -185,7 +185,7 @@ int nearestPowerOfTwo(int x)
void pushMatrix()
{
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (ShaderManager::instance()->isValid()) {
return;
}
@ -195,7 +195,7 @@ void pushMatrix()
void pushMatrix(const QMatrix4x4 &matrix)
{
#ifdef KWIN_HAVE_OPENGLES
#ifndef KWIN_HAVE_OPENGL_1
Q_UNUSED(matrix)
#else
if (ShaderManager::instance()->isValid()) {
@ -208,7 +208,7 @@ void pushMatrix(const QMatrix4x4 &matrix)
void multiplyMatrix(const QMatrix4x4 &matrix)
{
#ifdef KWIN_HAVE_OPENGLES
#ifndef KWIN_HAVE_OPENGL_1
Q_UNUSED(matrix)
#else
if (ShaderManager::instance()->isValid()) {
@ -227,7 +227,7 @@ void multiplyMatrix(const QMatrix4x4 &matrix)
void loadMatrix(const QMatrix4x4 &matrix)
{
#ifdef KWIN_HAVE_OPENGLES
#ifndef KWIN_HAVE_OPENGL_1
Q_UNUSED(matrix)
#else
if (ShaderManager::instance()->isValid()) {
@ -246,7 +246,7 @@ void loadMatrix(const QMatrix4x4 &matrix)
void popMatrix()
{
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (ShaderManager::instance()->isValid()) {
return;
}
@ -1171,7 +1171,7 @@ GLVertexBuffer *GLVertexBufferPrivate::streamingBuffer = NULL;
void GLVertexBufferPrivate::legacyPainting(QRegion region, GLenum primitiveMode, bool hardwareClipping)
{
#ifdef KWIN_HAVE_OPENGLES
#ifndef KWIN_HAVE_OPENGL_1
Q_UNUSED(region)
Q_UNUSED(primitiveMode)
Q_UNUSED(hardwareClipping)
@ -1246,7 +1246,7 @@ void GLVertexBufferPrivate::corePainting(const QRegion& region, GLenum primitive
void GLVertexBufferPrivate::fallbackPainting(const QRegion& region, GLenum primitiveMode, bool hardwareClipping)
{
#ifdef KWIN_HAVE_OPENGLES
#ifndef KWIN_HAVE_OPENGL_1
Q_UNUSED(region)
Q_UNUSED(primitiveMode)
Q_UNUSED(hardwareClipping)

View file

@ -446,7 +446,7 @@ inline
ShaderBinder::ShaderBinder(ShaderManager::ShaderType type, bool reset)
: m_shader(NULL)
{
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (!ShaderManager::instance()->isValid()) {
return;
}
@ -458,7 +458,7 @@ inline
ShaderBinder::ShaderBinder(GLShader *shader)
: m_shader(shader)
{
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (!ShaderManager::instance()->isValid()) {
return;
}
@ -469,7 +469,7 @@ ShaderBinder::ShaderBinder(GLShader *shader)
inline
ShaderBinder::~ShaderBinder()
{
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (!ShaderManager::instance()->isValid()) {
return;
}

View file

@ -246,7 +246,7 @@ SceneOpenGL *SceneOpenGL::createScene()
return scene;
}
}
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (SceneOpenGL1::supported(backend)) {
scene = new SceneOpenGL1(backend);
if (scene->initFailed()) {
@ -442,7 +442,7 @@ bool SceneOpenGL2::supported(OpenGLBackend *backend)
if (!backend->isDirectRendering()) {
return false;
}
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (!GLPlatform::instance()->supports(GLSL) || GLPlatform::instance()->supports(LimitedNPOT)) {
return false;
}
@ -507,7 +507,7 @@ SceneOpenGL::Window *SceneOpenGL2::createWindow(Toplevel *t)
//****************************************
// SceneOpenGL1
//****************************************
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
bool SceneOpenGL1::supported(OpenGLBackend *backend)
{
// any OpenGL context will do
@ -1239,7 +1239,7 @@ void SceneOpenGL2Window::restoreStates(TextureType type, qreal opacity, qreal br
//***************************************
// SceneOpenGL1Window
//***************************************
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
SceneOpenGL1Window::SceneOpenGL1Window(Toplevel *c)
: SceneOpenGL::Window(c)
{
@ -1530,7 +1530,7 @@ void SceneOpenGL::EffectFrame::render(QRegion region, double opacity, double fra
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
if (!shader)
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
#endif
@ -1647,7 +1647,7 @@ void SceneOpenGL::EffectFrame::render(QRegion region, double opacity, double fra
const float a = opacity * frameOpacity;
shader->setUniform(GLShader::ModulationConstant, QVector4D(a, a, a, a));
}
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
else
glColor4f(0.0, 0.0, 0.0, opacity * frameOpacity);
#endif
@ -1682,7 +1682,7 @@ void SceneOpenGL::EffectFrame::render(QRegion region, double opacity, double fra
const float a = opacity * frameOpacity;
shader->setUniform(GLShader::ModulationConstant, QVector4D(a, a, a, a));
}
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
else
glColor4f(1.0, 1.0, 1.0, opacity * frameOpacity);
#endif
@ -1704,7 +1704,7 @@ void SceneOpenGL::EffectFrame::render(QRegion region, double opacity, double fra
const float a = opacity * frameOpacity;
shader->setUniform(GLShader::ModulationConstant, QVector4D(a, a, a, a));
}
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
else
glColor4f(1.0, 1.0, 1.0, opacity * frameOpacity);
#endif
@ -1726,7 +1726,7 @@ void SceneOpenGL::EffectFrame::render(QRegion region, double opacity, double fra
const float a = opacity * (1.0 - m_effectFrame->crossFadeProgress());
shader->setUniform(GLShader::ModulationConstant, QVector4D(a, a, a, a));
}
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
else
glColor4f(1.0, 1.0, 1.0, opacity * (1.0 - m_effectFrame->crossFadeProgress()));
#endif
@ -1738,7 +1738,7 @@ void SceneOpenGL::EffectFrame::render(QRegion region, double opacity, double fra
const float a = opacity * m_effectFrame->crossFadeProgress();
shader->setUniform(GLShader::ModulationConstant, QVector4D(a, a, a, a));
}
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
else
glColor4f(1.0, 1.0, 1.0, opacity * m_effectFrame->crossFadeProgress());
#endif
@ -1747,7 +1747,7 @@ void SceneOpenGL::EffectFrame::render(QRegion region, double opacity, double fra
const QVector4D constant(opacity, opacity, opacity, opacity);
shader->setUniform(GLShader::ModulationConstant, constant);
}
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
else
glColor4f(1.0, 1.0, 1.0, opacity);
#endif
@ -1768,7 +1768,7 @@ void SceneOpenGL::EffectFrame::render(QRegion region, double opacity, double fra
const float a = opacity * (1.0 - m_effectFrame->crossFadeProgress());
shader->setUniform(GLShader::ModulationConstant, QVector4D(a, a, a, a));
}
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
else
glColor4f(1.0, 1.0, 1.0, opacity *(1.0 - m_effectFrame->crossFadeProgress()));
#endif
@ -1780,7 +1780,7 @@ void SceneOpenGL::EffectFrame::render(QRegion region, double opacity, double fra
const float a = opacity * m_effectFrame->crossFadeProgress();
shader->setUniform(GLShader::ModulationConstant, QVector4D(a, a, a, a));
}
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
else
glColor4f(1.0, 1.0, 1.0, opacity * m_effectFrame->crossFadeProgress());
#endif
@ -1789,7 +1789,7 @@ void SceneOpenGL::EffectFrame::render(QRegion region, double opacity, double fra
const QVector4D constant(opacity, opacity, opacity, opacity);
shader->setUniform(GLShader::ModulationConstant, constant);
}
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
else
glColor4f(1.0, 1.0, 1.0, opacity);
#endif

View file

@ -99,7 +99,7 @@ protected:
virtual SceneOpenGL::Window *createWindow(Toplevel *t);
};
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
class SceneOpenGL1 : public SceneOpenGL
{
public:
@ -270,7 +270,7 @@ protected:
virtual void restoreStates(TextureType type, qreal opacity, qreal brightness, qreal saturation);
};
#ifndef KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_OPENGL_1
class SceneOpenGL1Window : public SceneOpenGL::Window
{
public: