D15910: Implement wl_surface::damage_buffer
This revision was automatically updated to reflect the committed changes. Closed by commit R127:b71e10359725: Implement wl_surface::damage_buffer (authored by romangg). CHANGED PRIOR TO COMMIT https://phabricator.kde.org/D15910?vs=48477=57749#toc REPOSITORY R127 KWayland CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D15910?vs=48477=57749 REVISION DETAIL https://phabricator.kde.org/D15910 AFFECTED FILES autotests/client/test_wayland_surface.cpp src/client/registry.cpp src/client/surface.cpp src/client/surface.h src/server/compositor_interface.cpp src/server/surface_interface.cpp src/server/surface_interface_p.h To: romangg, #kwin, davidedmundson Cc: davidedmundson, zzag, kde-frameworks-devel, michaelh, ngraham, bruns
D15910: Implement wl_surface::damage_buffer
romangg added a comment. Will be pushed after 5.56 branched off. REPOSITORY R127 KWayland BRANCH damageBuffer REVISION DETAIL https://phabricator.kde.org/D15910 To: romangg, #kwin, davidedmundson Cc: davidedmundson, zzag, kde-frameworks-devel, michaelh, ngraham, bruns
D15910: Implement wl_surface::damage_buffer
davidedmundson accepted this revision. This revision is now accepted and ready to land. REPOSITORY R127 KWayland BRANCH damageBuffer REVISION DETAIL https://phabricator.kde.org/D15910 To: romangg, #kwin, davidedmundson Cc: davidedmundson, zzag, kde-frameworks-devel, michaelh, ngraham, bruns
D15910: Implement wl_surface::damage_buffer
zzag added a comment. Is it good now? REPOSITORY R127 KWayland REVISION DETAIL https://phabricator.kde.org/D15910 To: romangg, #kwin, davidedmundson Cc: davidedmundson, zzag, kde-frameworks-devel, michaelh, ngraham, bruns
D15910: Implement wl_surface::damage_buffer
romangg updated this revision to Diff 48477. romangg marked an inline comment as done. romangg added a comment. - Rebase on master - Flipped 270 fix REPOSITORY R127 KWayland CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D15910?vs=42764=48477 BRANCH damageBuffer REVISION DETAIL https://phabricator.kde.org/D15910 AFFECTED FILES autotests/client/test_wayland_surface.cpp src/client/registry.cpp src/client/surface.cpp src/client/surface.h src/server/compositor_interface.cpp src/server/surface_interface.cpp src/server/surface_interface_p.h To: romangg, #kwin, davidedmundson Cc: davidedmundson, zzag, kde-frameworks-devel, michaelh, ngraham, bruns
D15910: Implement wl_surface::damage_buffer
davidedmundson added inline comments. INLINE COMMENTS > surface_interface.cpp:453 > +if (tr == Tr::Rotated90 || tr == Tr::Rotated270 || > +tr == Tr::Flipped90 || tr == Tr::Rotated270) { > +// calculate transformed + scaled buffer damage Should this last one be flipped 270? REPOSITORY R127 KWayland REVISION DETAIL https://phabricator.kde.org/D15910 To: romangg, #kwin, davidedmundson Cc: davidedmundson, zzag, kde-frameworks-devel, michaelh, ngraham, bruns
D15910: Implement wl_surface::damage_buffer
romangg added a comment. Ping REPOSITORY R127 KWayland REVISION DETAIL https://phabricator.kde.org/D15910 To: romangg, #kwin, davidedmundson Cc: davidedmundson, zzag, kde-frameworks-devel, michaelh, ngraham, bruns
D15910: Implement wl_surface::damage_buffer
romangg updated this revision to Diff 42764. romangg marked 3 inline comments as done. romangg added a comment. - Remove rects call - Respect buffer scale - Test damage against scaled surface REPOSITORY R127 KWayland CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D15910?vs=42760=42764 BRANCH damageBuffer REVISION DETAIL https://phabricator.kde.org/D15910 AFFECTED FILES autotests/client/test_wayland_surface.cpp src/client/registry.cpp src/client/surface.cpp src/client/surface.h src/server/compositor_interface.cpp src/server/surface_interface.cpp src/server/surface_interface_p.h To: romangg, #kwin, davidedmundson Cc: davidedmundson, zzag, kde-frameworks-devel, michaelh, ngraham, bruns
D15910: Implement wl_surface::damage_buffer
romangg added inline comments. INLINE COMMENTS > davidedmundson wrote in surface_interface.cpp:450 > scale is also a transform. > > Note also that the damage signal is used in kwin assuming it's surface local. Thanks! After applying the output transform **and** the scale transform, the damaged buffer region should be in surface local coordinates, right? I.e. the below sent damaged signal should then have the surface local damage. REPOSITORY R127 KWayland REVISION DETAIL https://phabricator.kde.org/D15910 To: romangg, #kwin, davidedmundson Cc: davidedmundson, zzag, kde-frameworks-devel, michaelh, ngraham, bruns
D15910: Implement wl_surface::damage_buffer
davidedmundson requested changes to this revision. davidedmundson added inline comments. This revision now requires changes to proceed. INLINE COMMENTS > surface_interface.cpp:450 > +typedef OutputInterface::Transform Tr; > +const Tr tr = target->transform; > +if (tr == Tr::Rotated90 || tr == Tr::Rotated270 || scale is also a transform. Note also that the damage signal is used in kwin assuming it's surface local. REPOSITORY R127 KWayland REVISION DETAIL https://phabricator.kde.org/D15910 To: romangg, #kwin, davidedmundson Cc: davidedmundson, zzag, kde-frameworks-devel, michaelh, ngraham, bruns
D15910: Implement wl_surface::damage_buffer
zzag added inline comments. INLINE COMMENTS > surface.cpp:244 > +{ > +for (const QRect : region.rects()) { > +damageBuffer(r); `for (const QRect : region) {` rects() is obsolete. http://doc.qt.io/qt-5/qregion-obsolete.html#rects REPOSITORY R127 KWayland REVISION DETAIL https://phabricator.kde.org/D15910 To: romangg, #kwin Cc: zzag, kde-frameworks-devel, michaelh, ngraham, bruns
D15910: Implement wl_surface::damage_buffer
romangg created this revision. romangg added a reviewer: KWin. Herald added a project: Frameworks. Herald added a subscriber: kde-frameworks-devel. romangg requested review of this revision. REVISION SUMMARY Missing from our surface handling was the damage_buffer call introduced in version 4 of the wl_compositor interface. Its only difference to a normal damage call is that the damaged region is supposed to be defined by the client in buffer coordinates instead of surface coordinates. This damage must be tracked separately in KWayland and on commit with the buffer transformation united with the normal damage. TEST PLAN Autotest updated. REPOSITORY R127 KWayland BRANCH damageBuffer REVISION DETAIL https://phabricator.kde.org/D15910 AFFECTED FILES autotests/client/test_wayland_surface.cpp src/client/registry.cpp src/client/surface.cpp src/client/surface.h src/server/compositor_interface.cpp src/server/surface_interface.cpp src/server/surface_interface_p.h To: romangg, #kwin Cc: kde-frameworks-devel, michaelh, ngraham, bruns