graesslin added a comment.
Restricted Application edited projects, added KWin; removed Plasma.


  In https://phabricator.kde.org/D9638#196026, @zzag wrote:
  
  > In https://phabricator.kde.org/D9638#195979, @graesslin wrote:
  >
  > > What you could try is using the PaintClipper to perform clipping. But I 
don't know whether it's still fully functional on OpenGL.
  >
  >
  > So, adding
  >
  >   PaintClipper pc(QRegion(
  >     QPoint(0, 0),
  >     effects->virtualScreenSize()
  >   ));
  >
  >
  > in `SlideEffect::paintScreen` would be enough? Doesn't KWin do something 
like that somewhere else? I've just realized, maybe, this effect doesn't need 
to clip...
  
  
  I just looked into the source (relevant method Scene::paintScreen). For 
PAINT_SCREEN_WITH_TRANSFORMED_WINDOWS the region is set to infinite region.
  
    if (*mask & (PAINT_SCREEN_TRANSFORMED | 
PAINT_SCREEN_WITH_TRANSFORMED_WINDOWS)) {
        // Region painting is not possible with transformations,
        // because screen damage doesn't match transformed positions.
        *mask &= ~PAINT_SCREEN_REGION;
        region = infiniteRegion();
  
  The region in this method is later on used for clipping. Given that you need 
that paintclipper fragment.

REPOSITORY
  R108 KWin

REVISION DETAIL
  https://phabricator.kde.org/D9638

To: zzag, #vdg, #kwin, #plasma
Cc: mart, graesslin, abetts, ngraham, plasma-devel, kwin, iodelay, bwowk, 
ZrenBot, progwolff, lesliezhai, ali-mohamed, hardening, jensreuterberg, sebas, 
apol

Reply via email to