From 287f28730e3853d570d4b1c63729f37d4bbeb8c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kimmo=20H=E4m=E4l=E4inen?= Date: Mon, 29 Nov 2010 13:57:31 +0200 Subject: Changes: Fix build errors on i386/Scratchbox variants - Further ifdefs to temporarily disable MCompositeWindowGroup on GLX version - Fix crash when stopTimer is invoked on the destructor of a MCompositeWindowGroup item Conflicts: src/mcompositewindow.cpp --- src/mcompositescene.cpp | 7 ++++++- src/mcompositewindow.cpp | 6 +++++- src/mcompositewindowshadereffect.cpp | 4 ++++ src/mtexturepixmapitem_glx.cpp | 5 +++++ src/mtexturepixmapitem_p.h | 2 ++ 5 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/mcompositescene.cpp b/src/mcompositescene.cpp index b0d6c23..de35d80 100644 --- a/src/mcompositescene.cpp +++ b/src/mcompositescene.cpp @@ -88,7 +88,12 @@ void MCompositeScene::drawItems(QPainter *painter, int numItems, QGraphicsItem * for (int i = numItems - 1; i >= 0; --i) { MCompositeWindow *cw = (MCompositeWindow *) items[i]; - if (cw->type() != MCompositeWindowGroup::Type) { +#ifdef GLES2_VERSION + static int item_type = MCompositeWindowGroup::Type; +#else + static int item_type = QGraphicsItem::Type + 2; +#endif + if (cw->type() != item_type) { if (!cw->propertyCache()) // this window is dead continue; if (cw->hasTransitioningWindow() && cw->propertyCache()->isDecorator()) diff --git a/src/mcompositewindow.cpp b/src/mcompositewindow.cpp index 3055f8c..9c6cb0e 100644 --- a/src/mcompositewindow.cpp +++ b/src/mcompositewindow.cpp @@ -119,7 +119,7 @@ MCompositeWindow::~MCompositeWindow() MCompositeManager *p = (MCompositeManager *) qApp; p->d->removeWindow(window()); - if (t_ping) { + if (window() && t_ping) { stopPing(); t_ping = 0; } @@ -796,5 +796,9 @@ bool MCompositeWindow::isMapped() const MCompositeWindowGroup* MCompositeWindow::group() const { +#ifdef GLES2_VERSION return renderer()->current_window_group; +#else + return 0; +#endif } diff --git a/src/mcompositewindowshadereffect.cpp b/src/mcompositewindowshadereffect.cpp index 16aae02..dc462eb 100644 --- a/src/mcompositewindowshadereffect.cpp +++ b/src/mcompositewindowshadereffect.cpp @@ -112,10 +112,14 @@ GLuint MCompositeWindowShaderEffect::texture() const { // TODO: This assumes we have always have hadware TFP support if (d->priv_render) { +#ifdef GLES2_VERSION if (!d->priv_render->current_window_group) return d->priv_render->textureId; else return d->priv_render->current_window_group->texture(); +#else + return d->priv_render->textureId; +#endif } return 0; } diff --git a/src/mtexturepixmapitem_glx.cpp b/src/mtexturepixmapitem_glx.cpp index 59914ab..249237d 100644 --- a/src/mtexturepixmapitem_glx.cpp +++ b/src/mtexturepixmapitem_glx.cpp @@ -401,3 +401,8 @@ void MTexturePixmapItem::clearTexture() glClearColor(0.0, 0.0, 0.0, 0.0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); } + +MTexturePixmapPrivate* MTexturePixmapItem::renderer() const +{ + return d; +} diff --git a/src/mtexturepixmapitem_p.h b/src/mtexturepixmapitem_p.h index eaf4c03..4e8937b 100644 --- a/src/mtexturepixmapitem_p.h +++ b/src/mtexturepixmapitem_p.h @@ -88,7 +88,9 @@ public: MTexturePixmapItem *item; QPointer current_effect; +#ifdef GLES2_VERSION QPointer current_window_group; +#endif const MCompositeWindowShaderEffect *prev_effect; // Contains a limited number of server times we received damage -- cgit v1.2.3