Home » U++ Library support » U++ Library : Other (not classified elsewhere) » [FIXED] Fixing X11 resizing issue. (Huge X11 quality improvement!!!)
[FIXED] Fixing X11 resizing issue. (Huge X11 quality improvement!!!) [message #40187] |
Sun, 30 June 2013 13:57 |
|
Klugier
Messages: 1082 Registered: September 2012 Location: Poland, Kraków
|
Senior Contributor |
|
|
Hello,
The main problem with U++ on X11 is windows resizing quality. When you resize window you can see white square arrtifacts. I have found solution for this issue.
Here is the patch code (CtrlCore/X11Wnd.cpp - Line 488)
Window w = XCreateWindow(Xdisplay, RootWindow(Xdisplay, Xscreenno),
r.left, r.top, r.Width(), r.Height(),
0, CopyFromParent, InputOutput, CopyFromParent,
CWBitGravity|CWSaveUnder|CWOverrideRedirect|
(IsCompositedGui() ? CWBackPixmap : CWBackPixel),
&swa);
What I really changed is one little line of code:
(IsCompositedGui() ? CWBackPixmap : CWBackPixel),
Insted of:
(IsCompositedGui() ? CWBackPixel : CWBackPixmap),
This patch will have huge impact on your experience with ultimate++ on X11, because it eliminates one of the most annoying bug.
Sincerely,
Klugier
U++ - one framework to rule them all.
[Updated on: Fri, 19 July 2013 21:08] Report message to a moderator
|
|
|
|
|
Re: [BUG & PATCH] Fixing X11 resizing issue. (Huge X11 quality improvement!!!) [message #40286 is a reply to message #40278] |
Mon, 15 July 2013 14:58 |
|
Klugier
Messages: 1082 Registered: September 2012 Location: Poland, Kraków
|
Senior Contributor |
|
|
Hello,
I am almost sure that this patch is OK. I had tested it on several graphical user enviroment such as KDE (4.10.5), LXDE, Xfc & Cinamon. It also works good on VirtualBox.
Novo, Can you write more details about your distribution? BTW, Before this update I had flicker on all my GNU/Linux machines!!!
I have a huge request to ultimatepp community. Can you guys test window resizing on GNU/Linux and write about it. Before you start testing make sure that you have the latest upp version.
------------------------------------------------------------ ------------------------------------------------------------
I have made some tests on my old machine (Open source Radeon driver). It seems that the result of IsCompositedGui() can depends on too many factors such as graphic card driver. Personally, I think that we should always use "CWBackPixmap", because this flag guarantees smooth resizing. I think we need to create window in following way:
Window w = XCreateWindow(Xdisplay, RootWindow(Xdisplay, Xscreenno),
r.left, r.top, r.Width(), r.Height(),
0, CopyFromParent, InputOutput, CopyFromParent,
CWBitGravity|CWSaveUnder|CWOverrideRedirect|CWBackPixmap,
&swa);
P.S.
Thank you Novo for reporting.
Sincerely,
Klugier
U++ - one framework to rule them all.
[Updated on: Mon, 15 July 2013 18:02] Report message to a moderator
|
|
|
Re: [BUG & PATCH] Fixing X11 resizing issue. (Huge X11 quality improvement!!!) [message #40287 is a reply to message #40286] |
Mon, 15 July 2013 18:30 |
Novo
Messages: 1371 Registered: December 2006
|
Ultimate Contributor |
|
|
klugier wrote on Mon, 15 July 2013 08:58 | Hello,
I am almost sure that this patch is OK. I had tested it on several graphical user enviroment such as KDE (4.10.5), LXDE, Xfc & Cinamon. It also works good on VirtualBox.
Novo, Can you write more details about your distribution? BTW, Before this update I had flicker on all my GNU/Linux machines!!!
I have a huge request to ultimatepp community. Can you guys test window resizing on GNU/Linux and write about it. Before you start testing make sure that you have the latest upp version.
Sincerely,
Klugier
|
I have latest Ubuntu x64 (AMD) + KDE + Openbox as a window manager. Graphics card ATI 5770, I believe. My system has two 24' monitors (rotated 90 degrees). I always use latest code from svn.
I also checked on two my computers at work ("Update the window contents while resizing" is checked):
1) Ubuntu 10.04 32-bit, regular Gnome 2, NVidia video card, one 21' rotated monitor - flickering.
2) Lubuntu 13.04 (Openbox window manager), 64-bit, NVidia video card, one 21' not rotated monitor - flickering
Checked with examples/HomeBudget (no Docking):
1) - flickering.
2) - flickering.
Conclusion:
1) this is not just a problem with Docking;
2) it is not related to multiple and rotated monitors;
Regards,
Novo
|
|
|
Re: [BUG & PATCH] Fixing X11 resizing issue. (Huge X11 quality improvement!!!) [message #40288 is a reply to message #40287] |
Mon, 15 July 2013 19:32 |
|
Klugier
Messages: 1082 Registered: September 2012 Location: Poland, Kraków
|
Senior Contributor |
|
|
Hello Novo,
Like I said. We need to remove IsCompositedGui() check from XCreateWindow and stay only with CWBackPixmap flag.
The bug in this place is obvious, because smooth resizing works on some machines, but on others it doesn't. So the final code should look like this:
Window w = XCreateWindow(Xdisplay, RootWindow(Xdisplay, Xscreenno),
r.left, r.top, r.Width(), r.Height(),
0, CopyFromParent, InputOutput, CopyFromParent,
CWBitGravity|CWSaveUnder|CWOverrideRedirect|CWBackPixmap,
&swa);
Sincerely,
Klugier
U++ - one framework to rule them all.
|
|
|
|
|
|
Re: [BUG & PATCH] Fixing X11 resizing issue. (Huge X11 quality improvement!!!) [message #40292 is a reply to message #40288] |
Mon, 15 July 2013 21:34 |
Novo
Messages: 1371 Registered: December 2006
|
Ultimate Contributor |
|
|
klugier wrote on Mon, 15 July 2013 13:32 | Hello Novo,
Like I said. We need to remove IsCompositedGui() check from XCreateWindow and stay only with CWBackPixmap flag.
The bug in this place is obvious, because smooth resizing works on some machines, but on others it doesn't. So the final code should look like this:
Window w = XCreateWindow(Xdisplay, RootWindow(Xdisplay, Xscreenno),
r.left, r.top, r.Width(), r.Height(),
0, CopyFromParent, InputOutput, CopyFromParent,
CWBitGravity|CWSaveUnder|CWOverrideRedirect|CWBackPixmap,
&swa);
Sincerely,
Klugier
|
This fixed flickering in configuration 1.
Checked on a home computer with two rotated monitors - no flickering.
Thanks!
Regards,
Novo
[Updated on: Tue, 16 July 2013 04:33] Report message to a moderator
|
|
|
|
|
Goto Forum:
Current Time: Fri Sep 20 19:56:24 CEST 2024
Total time taken to generate the page: 0.02829 seconds
|