D25611: [scene] Fix decoration texture bleeding

Vlad Zahorodnii <[email protected]>
Newsgroups gmane.comp.kde.devel.kwin
Message-ID <[email protected]>
zzag added a comment.


  In D25611#570783 <https://phabricator.kde.org/D25611#570783>, @davidedmundson wrote:
  
  > The QSG code looks quite simple, but they go via another QImage buffer.
  >
  >   QPainter p(&tmp);
  >   p.setCompositionMode(QPainter::CompositionMode_Source);
  >   
  >   int w = r.width(); //Dave <- image.width+padding*2
  >   int h = r.height();
  >   int iw = image.width();
  >   int ih = image.height();
  >   p.drawImage(1, 1, image);
  >   p.drawImage(1, 0, image, 0, 0, iw, 1);
  >   p.drawImage(1, h - 1, image, 0, ih - 1, iw, 1);
  >   p.drawImage(0, 1, image, 0, 0, 1, ih);
  >   p.drawImage(w - 1, 1, image, iw - 1, 0, 1, ih);
  >   p.drawImage(0, 0, image, 0, 0, 1, 1);
  >   p.drawImage(0, h - 1, image, 0, ih - 1, 1, 1);
  >   p.drawImage(w - 1, 0, image, iw - 1, 0, 1, 1);
  >   p.drawImage(w - 1, h - 1, image, iw - 1, ih - 1, 1, 1);
  >   
  >
  > Assuming Qt copes with rendering into the image it reads from we could have done the same.
  >  We have the extra complexity of partial updates, but if we have the clipRect set correctly that should just quietly no-op
  
  
  That's definitely an option, I'll see what I can do.

INLINE COMMENTS

> davidedmundson wrote in scene_opengl.cpp:2625
> QRect point should also be *= devicePixelRatio?

No, since it must be in device-independent pixels.

> davidedmundson wrote in scene_opengl.cpp:2670
> We rotate the vertical bars so everything is horizontal, so in theory we could:
> 
> GL_CLAMP_S=GL_CLAMP_TO_EDGE
> 
> and only pad T.
> 
> Though maybe that's just making things more complicated...

This will be the case only if all decoration parts have the same width.

REPOSITORY
  R108 KWin

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

To: zzag, #kwin
Cc: davidedmundson, fredrik, kwin, fvogt, LeGast00n, The-Feren-OS-Dev, sbergeron, jraleigh, fbampaloukas, GB_2, mkulinski, ragreen, jackyalcine, iodelay, crozbo, bwowk, ZrenBot, ngraham, alexeymin, himcesjf, lesliezhai, ali-mohamed, hardening, romangg, jensreuterberg, abetts, sebas, apol, ahiemstra, mart
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.