Nux draws every single BaseWindow to the backbuffer regardless of what the host WM draw region is
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Nux |
Fix Released
|
High
|
Sam Spilsbury | ||
nux (Ubuntu) |
Fix Released
|
High
|
Sam Spilsbury |
Bug Description
At the moment, this bug is essentially the reason why bug 1091583 exists in unity.
When we switched to using backbuffer persistence in compiz, it means that it was no longer permissible for plugins to draw outside damage boundaries, as that would result in bleeding from the regions beneath not being redrawn. At the moment, calling nux::WindowThre
Nux should support the concept of being able to selectively present its render targets to the screen, so that there's no overdraw when we only need to re-present, eg, the launcher or the panel.
Related branches
- PS Jenkins bot (community): Approve (continuous-integration)
- Brandon Schaefer (community): Approve
- Stephen M. Webb (community): Needs Fixing
-
Diff: 1795 lines (+1136/-125)16 files modifiedNux/BaseWindow.cpp (+41/-0)
Nux/BaseWindow.h (+16/-0)
Nux/View.cpp (+7/-4)
Nux/WindowCompositor.cpp (+222/-53)
Nux/WindowCompositor.h (+18/-3)
Nux/WindowThread.cpp (+110/-8)
Nux/WindowThread.h (+50/-1)
NuxGraphics/GLDeviceFrameBufferObject.cpp (+20/-5)
NuxGraphics/GpuDevice.cpp (+7/-1)
NuxGraphics/GpuDeviceTexture.cpp (+7/-1)
NuxGraphics/IOpenGLFrameBufferObject.cpp (+7/-1)
configure.ac (+2/-3)
debian/changelog (+6/-0)
tests/gtest-nux-windowcompositor.cpp (+110/-44)
tests/gtest-nux-windowthread.cpp (+496/-0)
tests/gtest-nuxgraphics-texture.cpp (+17/-1)
- PS Jenkins bot (community): Approve (continuous-integration)
- Stephen M. Webb (community): Approve
- Brandon Schaefer (community): Approve
- Christopher Townsend (community): Approve
-
Diff: 2558 lines (+1220/-264)24 files modifiedNux/Area.cpp (+5/-6)
Nux/BaseWindow.cpp (+41/-0)
Nux/BaseWindow.h (+15/-0)
Nux/GridHLayout.cpp (+1/-4)
Nux/GridVLayout.cpp (+3/-10)
Nux/View.cpp (+7/-4)
Nux/WindowCompositor.cpp (+243/-97)
Nux/WindowCompositor.h (+25/-12)
Nux/WindowThread.cpp (+101/-31)
Nux/WindowThread.h (+54/-4)
NuxCore/Rect.cpp (+20/-12)
NuxCore/Rect.h (+4/-0)
NuxGraphics/GLDeviceFrameBufferObject.cpp (+20/-5)
NuxGraphics/GpuDevice.cpp (+7/-1)
NuxGraphics/GpuDeviceTexture.cpp (+7/-1)
NuxGraphics/GraphicsEngine.cpp (+14/-14)
NuxGraphics/GraphicsEngine.h (+5/-5)
NuxGraphics/IOpenGLFrameBufferObject.cpp (+14/-8)
NuxGraphics/IOpenGLFrameBufferObject.h (+1/-1)
configure.ac (+2/-3)
debian/changelog (+7/-0)
tests/gtest-nux-windowcompositor.cpp (+109/-44)
tests/gtest-nux-windowthread.cpp (+498/-1)
tests/gtest-nuxgraphics-texture.cpp (+17/-1)
Changed in nux: | |
assignee: | nobody → Sam Spilsbury (smspillaz) |
status: | New → In Progress |
Changed in nux: | |
milestone: | none → 4.0.1 |
Changed in nux: | |
milestone: | 4.0.3 → 4.0.4 |
Changed in nux: | |
importance: | Undecided → High |
Changed in nux (Ubuntu): | |
status: | New → In Progress |
importance: | Undecided → High |
assignee: | nobody → Sam Spilsbury (smspillaz) |
Changed in nux (Ubuntu): | |
status: | In Progress → Fix Released |
Changed in nux: | |
status: | Fix Committed → Fix Released |
Fix committed into lp:nux at revision None, scheduled for release in nux, milestone 4.0.4