Ceylo, you are doing amazing work on the Mac port, and I'm extremely grateful for it. I had been considering using Clanlib for a while, due to its maturity, but I think I'm going to stick with SFML since the Mac port is so far along.
Hey thanks
! It's also quite interesting for me because I never worked on a bigger project (remember I'm an eighteen-year-old teen !) and to make my own games with it.
What do you have left to do on your to-do list? I should be able to help with some small stuff, like implementing missing keys.
My up to date to-do list :
TO DO:
- mouse position setting function > done
- joysticks handling
- handle MouseEntered and MousedExited events > done
- handle full screen mode > done
TO FIX:
- closing all the SFML windows may leave your app blocked (no more event handling)
- SFML windows cannot be used properly in Cocoa applications (just messing up everything in the run loop)
- there are missing keys (as an Apple keyboard does not have the same keys as an PC's one)
- not all the keys (text events are not concerned) are language independant
- using the '^' key and 'e' key produces an 'e' instead of 'ê' (same for other characters that need two keys)
- correct WindowImplCocoa::SetIcon() > done
- fix everything else I may have forgotten
As far as the missing keys are concerned, the point is the 'Key::Code's are based on a PC keyboard. This means that if I add the Mac keys, these will (mostly) never be used on a PC keyboard. Same with PC keys on a Mac keyboard. So I have to talk about this to Laurent, but for now there is no way.
Now about the '^' key and such... I didn't find any way till now. I saw the Camino browser did it, but I can't find out how they did (the source code is available). The thing is I get the virtual code but not the characters, and as the virtual code is not independant from the keyboard layout, I can't use it.
No way for now too in order not to leave the application blocked when you close all the windows.
And there may be ways to use SFML windows in Cocoa applications but this is not possible right now.