Matek0611 / PospoLite

Other
4 stars 3 forks source link

Linux Support #1

Open salvadorbs opened 1 year ago

salvadorbs commented 1 year ago

I just found your component and I have to say it's great. But I noticed that it is only available for Windows. Has it already been tried to port it to other os, such as Linux?

Matek0611 commented 1 year ago

Thank you! Yes, it's currently only for Windows. Maybe in the near future, if I have time, I'll try to think about versions for other systems and possibly implement them. My app uses this component and it's only for Windows, too. However, I'm also planning a Linux version, so there's a chance I'll deal with it sooner :)

salvadorbs commented 1 year ago

Mmm... ok, no problem. 😄

Just to see if I can do anything, do you think is it possible to port the component to Linux? Theoretically, the difficulty lies in replacing the UpdateLayeredWindow, right?

Matek0611 commented 1 year ago

Exactly, the main problem is the UpdateLayeredWindow function. My only idea so far is to use OpenGL (https://stackoverflow.com/questions/4052940/how-to-make-an-opengl-rendering-context-with-transparent-background/9215724#9215724). With this solution, I think it would be possible to modify my component to use only this cross-platform library, instead of a mix of BGRABitmap and other system functions.

salvadorbs commented 1 year ago

I've started trying to do something for Linux, keeping the use of BGRABitmap. However, the result is not the best.

https://github.com/Matek0611/PospoLite/compare/master...salvadorbs:PospoLite:master