RocketStats icon indicating copy to clipboard operation
RocketStats copied to clipboard

No icons in WINE (Linux)

Open Anuskuss opened this issue 2 years ago • 10 comments

The plugin loads and works but isn't fully functional. Same error message when installing manually or through BakkesMod itself:

Error - Check that this folder is present in BakkesMod: data/RocketStats

Running in Linux is done through Proton (Wine) which emulates a Windows environment. I don't know how those files get loaded but maybe try using absolute paths?

Anuskuss avatar Dec 03 '22 02:12 Anuskuss

same, bump.

Skidamek avatar Dec 10 '22 15:12 Skidamek

Hello, as we often repeat, WIC is missing on the version of Windows you are using, and this is used via ImGui for displaying images.

No one has found a solution to date on Linux, if you unblock the situation, we're a taker.

Arubinu avatar Dec 10 '22 16:12 Arubinu

WIC is missing on the version of Windows you are using

I don't think that's it. I installed windowscodecs via protontricks and the error is still there. Could you maybe add more errors messages if you don't mind?

Anuskuss avatar Dec 11 '22 21:12 Anuskuss

Problem is that this error isn't caused by RocketStats but ImGUI itself, so we don't have any info on what is causing this error to happen. The only thing that we know is that ImGUI is unable to load images found in RocketStats/Resources in this repo.

Larsluph avatar Dec 11 '22 22:12 Larsluph

As far as I can find this plugin doesn't call LoadForImGui before it checks IsLoadedForImGui :thinking:

I can't find documentation on them but their names imply that you need to call load before the isloaded would ever return true? Not sure why it would work without this on windows.

edit:

okay so I found that GetImGuiTex should also load the image but I don't think this is called before IsLoadedForImGui checks in many cases.

https://github.com/bakkesmodorg/BakkesModSDK/blob/fc83258a066c1fee199c355f4eef40d716175036/include/bakkesmod/wrappers/ImageWrapper.h#L36

Amzd avatar May 27 '23 14:05 Amzd

The third parameter of the "ImageWrapper" class precisely requests the loading for ImGui.

Arubinu avatar May 28 '23 05:05 Arubinu

Ah yep I see :facepalm:

Amzd avatar May 28 '23 09:05 Amzd

Any news about this? I decided to debug this but without success. Anyway I did remove this (pointless?) check https://github.com/Lyliya/RocketStats/blob/b07d11e2fcb40ca117b5a3a5d81728b39a39c717/RocketStats/Managements/WindowManagement.cpp#L436 which allows me to change the theme (I now use a theme which doesn't have any icons).

But I did find out that RocketStats uses functionality from BakkesModSDK to load images so I figured that this was the wrong place to submit the bug report as it's most likely a bug in BakkesModSDK instead (https://github.com/bakkesmodorg/BakkesModSDK/issues/75).

Anuskuss avatar Jul 05 '24 01:07 Anuskuss

Thank you for taking the time to address this concern. Our plugin is not the only one that has this problem and after a lot of research we noticed that WINE does not understand WIC (Windows Imaging Component).

I hope BakkesMod has a solution :)

Arubinu avatar Jul 05 '24 04:07 Arubinu

@Stanbroek figured out that TGAs work so I went ahead and converted all PNGs to TGAs and it works now :)

RocketStats_PNG2TGA.zip

If someone wants to try it out you'll need to grab the ZIP and move the bakkesmod directory into

~/.local/share/Steam/steamapps/compatdata/252950/pfx/drive_c/users/steamuser/AppData/Roaming/bakkesmod

and override all files. The other files are only needed if you wanna compile it yourself.

I guess for the RocketStats devs TGAs could be useful as they are much lighter computation-wise and sometimes even beat PNG size-wise but I don't want you to do that just for Linux compatibility as I'm sure BakkesMod can find a workaround or WINE manages to emulated WIC correctly someday.

Anuskuss avatar Jul 09 '24 22:07 Anuskuss