desura / Desurium

Free online games platform (juegos gratis), with an open source client. LGPL repo for Desura client. Potentially out of date. See https://github.com/desura/desura-app for newest (LGPL) client.
https://www.desura.com/es
GNU General Public License v3.0
270 stars 42 forks source link

some GUI bugs with wxWidgets-2.9.4 #288

Open karolherbst opened 12 years ago

karolherbst commented 12 years ago

with wxWidgets-2.9.4 there are some displaying issues with CEF. Changing size of windows let the internel CEF view disappear and witching between the content views will bring them back after the second switch.

task list

TheSiege commented 12 years ago

also for me there are a lot of crashes when verifying; or installing games in desurium

Mailaender commented 12 years ago

wxWidgets 2.9.X compatibility is also important for inclusion into openSUSE games: https://build.opensuse.org/request/show/136219

TheSiege commented 12 years ago

please note that we had no choice about wxwidgets 2.9; that design decision was made before opensourcing of desura; so we were not neccessarily aware that this kind of breakage occurs

karolherbst commented 11 years ago

I think, this bug should wait until wxGTK 3.0 is released.

karolherbst commented 11 years ago

We should bundle wxGTK, because it will cause less damage in repositories, too. See #423

makson96 commented 11 years ago

Has anyone tried wxWidgets 2.9.5 yet?

karolherbst commented 11 years ago

I did: https://github.com/karolherbst/Desurium/commit/eed1878709614a2089bc9e8d524e9bb5b88b0a4a

makson96 commented 11 years ago

Does it still has GUI bugs? Do you want me to test it during the weekend?

karolherbst commented 11 years ago

every test is welcome. I think there are some pixel errors around buttons and resizing is very slow

makson96 commented 11 years ago

Here is documentation of the issues with wxWidgets 2.9.5:

1. http://img534.imageshack.us/img534/3562/de9b.png Ping dots in the corners of the buttons.

2. http://youtu.be/adiLbKpUPhc Resize update slowly.

I have not found any other issues. I will continue testing.

P.S. I wonder how many bugs could we close if someone capable would update CEF.

TheSiege commented 11 years ago

the slow resize looks to me like the one I already have (with other 2.9) ... I will test that in a bit

karolherbst commented 11 years ago

we have this issue since 2.9.4. We should check if we are able to install games

makson96 commented 11 years ago

Installing, running and uninstalling games works fine (tested on World of Goo). Updating games also works fine for me (tested on Beep).

karolherbst commented 11 years ago

okay, this sounds better. Thanks for testing.

hasufell commented 11 years ago

seems to work

the only regression I see are those red small dots

karolherbst commented 11 years ago

yeah and resizing is very small (heavy CPU load?).

hasufell commented 11 years ago

that is not a regression though afais

karolherbst commented 11 years ago

yeah, with 2.9.4 it was the same, though it isn't really fast with 2.9.3 either. I guess there is a problem handling resizes in general.

TheSiege commented 11 years ago

I have the resizing issue forever on 2.9 2.9.3 2.9.4 2.9.5 whatever; so that is no regression for me at least

karolherbst commented 11 years ago

Checked on windows: no problems at all. No red dots, no lagging while resizing.

karolherbst commented 11 years ago

I also noticed, that enlarging the window is the big problem with up to 80% CPU usage.

makson96 commented 11 years ago

Maybe this is the issue with wxWidgets on Linux itself and we should ask wx developers to fix it, before they make stable release?

hasufell commented 11 years ago

and we should ask wx developers to fix it

good luck mate

karolherbst commented 11 years ago

yeah, but we could try anyway, maybe they have a hint

makson96 commented 11 years ago

So here is my try: http://trac.wxwidgets.org/ticket/15529

lodle commented 11 years ago

pink dots are meant to be transparent.

karolherbst commented 11 years ago

@lodle why is the parent of gcButton wxPanel on Unix systems? Maybe you had a specific reason for this (could be same look with different window manager, but I am not sure though)

lodle commented 11 years ago

had issues with the paint function of buttons on gtk not being override able.

makson96 commented 11 years ago

wxWidgets developer has responded.

I will try to bisect wxWidgets to find out, which commit make issue with pink dots.

karolherbst commented 11 years ago

yay :)

makson96 commented 11 years ago

Yesterday I done a lot of testing and got weird conclusions.

First I was testing wxWidgets between 2.9.3 and 2.9.4 releases, but after a while I realized that wxWidgets 2.9.4 works fine without any bug with stock Desurium master.

To use wxWidgets 2.9.5 I need to do karolherbst changest to files: src/shared/uicore/code/UICoreMain.cpp src/static/wx_controls/code/gcImageControl.cpp and then I can see those pink dots. I can do more testing in the weekend, but my question for today is: Is it possible that those pink dots are not result of wxWidgets 2.9.5 itself, but rather changes in UICoreMain.cpp, gcImageControl.cpp?

karolherbst commented 11 years ago

I don't believe this, because these changes are not realted to the gcbutton class at all. Maybe @lodle can say more about that

makson96 commented 10 years ago

This is harder then I thought. The code from this commit: https://github.com/wxWidgets/wxWidgets/commit/f35f5a7a1ac547ced9881ffea30dcb42178d3272 from 27 January 2013 requires karolherbst modifications to compile Desurium and yes the pink dots are present. But for example code from 27 December 2012: https://github.com/wxWidgets/wxWidgets/commit/929bb9d2b3ce9d523d211ea776344e1816c720db will not allow to compile both stock Desurium and modified one. Grrr... I will try to continue testing and I hope I can find something more useful.

P.S. There is now also wxWidgets 3.0.0-r1, so we should test it too.

hasufell commented 10 years ago

P.S. There is now also wxWidgets 3.0.0-r1, so we should test it too.

That is a release candidate and not a stable release.

Jookia commented 10 years ago

What's the API change between wxWidgets 3 and 2?

makson96 commented 10 years ago

wxWidgets 3.0 will be the stable release of unstable 2.9 branch. So yes 3.0.0-r1 should be more stable than 2.9.3 which we currently use.

I have no idea if there are any API changes which affects Desurium. I will test if Desurium compiles with wxWidgets 3.0.0-r1 later.

hasufell commented 10 years ago

wxWidgets 3.0 will be the stable release of unstable 2.9 branch. So yes 3.0.0-r1 should be more stable than 2.9.3 which we currently use.

That's not logical. You say "will be the stable release" and then assume the RC is already as stable as the one that "will be stable"?

Jookia commented 10 years ago

I think they mean we should test the RC before the stable release comes, to see if it's useful enough to migrate to for the stable release.

makson96 commented 10 years ago

When wxWidgets 3.0.0 will be released it will be stable release of 2.9 branch. Version 3.0.0-r1 is more stable than 2.9.x. Is it clear for you now?

hasufell commented 10 years ago

Version 3.0.0-r1 is more stable than 2.9.x. Is it clear for you now?

That is not clear to me. Did you test it already?

makson96 commented 10 years ago

@hasufell if you need more information about wxWidgets release scheme please visit wxWidgets website.

Now back to testing: wxWidgets from 27 October 2012 works fine with stock Desurium without pink dots. https://github.com/wxWidgets/wxWidgets/commit/0afa3752f635a4fb621e2f55dfa41dce4f062d94

So the regression was made somewhere between 27 October 2012 and 27 January 2013. I strongly believes that it has something in common with changes to GdkBitmap*/wxBitmap which forced karolherbst to make his modifications in Desurium sources. I mean all the versions of wxWidgets which I tested and works with stock Desurium are bug free, but all the versions of wxWidgets which I tested and requires karolherbst Desurium modification displays pink dots.

karolherbst commented 10 years ago

we Could release desurium 1.0, but that doesn't mean it will be more stable than 0.8.0_rc10

hasufell commented 10 years ago

@hasufell if you need more information about wxWidgets release scheme please visit wxWidgets website.

Thanks, I don't.

The reason I am so nitpicky about this is that I'v seen upstreams switch to non-released library versions and hence reduce chances to get included in distros. Some libraries stay in RC state for months or more.

That said, if you do any tests, code changes... never merge stuff into master that depends on such versions of anything.

95% of distros do NOT package RC versions of libraries

makson96 commented 10 years ago

Well wxWidgets 2.9.3 is for sure "non-released library versions" and we do depend on it. On the other hand 3.0.0 will be included in distro repositories, so we should test 3.0.0-r1 carefully.

But are we going to argue that much about nomenclature?

makson96 commented 10 years ago

The good news is wxWidgets 3.0.0-r1 works with Desurium.

The bad news is, that it requires Desurium modifications and still displays pink dots in the corners of the buttons.

makson96 commented 10 years ago

If I try to compile stock Desurium with wxWidgets from 27 December 2012 https://github.com/wxWidgets/wxWidgets/commit/929bb9d2b3ce9d523d211ea776344e1816c720db I got following error:

[ 63%] Building CXX object src/shared/uicore/CMakeFiles/uicore.dir/code/UICoreMain.cpp.o
/home/makson/Dokumenty/Ubuntu_ppa/desurium/github/wx_test/Desurium/src/shared/uicore/code/UICoreMain.cpp: In member function ‘virtual void gcAppTraits::SetLocale()’:
/home/makson/Dokumenty/Ubuntu_ppa/desurium/github/wx_test/Desurium/src/shared/uicore/code/UICoreMain.cpp:226:17: error: ‘class wxAppTraits’ has no member named ‘SetLocale’
make[2]: *** [src/shared/uicore/CMakeFiles/uicore.dir/code/UICoreMain.cpp.o] Błąd 1
make[1]: *** [src/shared/uicore/CMakeFiles/uicore.dir/all] Błąd 2
make: *** [all] Błąd 2

Błąd mean Error. karolherbst can you help me with this one?

EDIT: I got this. Commenting out line 226 in UICoreMain.cpp do the trick. December 27 2012 does not have a pink dots bug, so it was introduced somewhere between 27 December 2012 and 27 January 2013. I am getting really close to bisect it :D

karolherbst commented 10 years ago

:)

makson96 commented 10 years ago

Hooray! I bisected it! This is the commit to wxWidgets which effects in pink dots in corners of buttons: https://github.com/wxWidgets/wxWidgets/commit/5ca21fe7bfda18e2da4e17eb529c4dfa0c824db2 This is also the same commit which force changes in gcImageControl.cpp to make Desurium compile. Any additional comments before I report it to wxWidgets bug tracker?