darlinghq / darling

Darwin/macOS emulation layer for Linux

Home Page:http://www.darlinghq.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Borrow frameworks from WinObjC

upintheairsheep opened this issue · comments

WinObjC is a project you should all know by now, it has a reimplementation of iOS frameworks in C based on Cocotron just like Darling. Borrowing WinObjC code will be useful for adding support for iOS apps as well as improving macOS support.

https://github.com/microsoft/WinObjC

Also see https://mjtsai.com/blog/2015/08/17/microsoft-winobjc/ and https://github.com/BigZaphod/Chameleon (Chameleon ironically was the first name of the inspiration of the project, Cycada, and it may be merged into WinObjC already)

The one thing that makes me somewhat worried about WinObjC is that it has some Windows specific code that will need to be gutted out if we do plan on porting parts of it to Darling.

I was actually planning on porting Chameleon to Darling and working on top of that (assuming no one is able to implement UIKit support for Darling).

The one thing that makes me somewhat worried about WinObjC is that it has some Windows specific code that will need to be gutted out if we do plan on porting parts of it to Darling.

I was actually planning on porting Chameleon to Darling and working on top of that (assuming no one is able to implement UIKit support for Darling).

Definitely look closely at WinObjC code before implementation for the above stated reason, also make sure to port some functions on the touchHLE repo (which are more tested for bugs and geared towards iPhoneOS 2 apps, which some functions may have been changed, however has "hacky" implementations of UIKit but better OpenGLES support), including the pull request and ciciplusplus' latest fork, which he does not PR for some reason. But for sure, start porting parts of Chameleon, as much as possible, then move on to porting both WinObjC and touchHLE (If you don't know already, it is made from scratch in Rust). Lubos has lots of expirience with OpenGL ES translation, as he recreated Cycada/Cider for an anime game development company. The BSD-to-Linux code is basically completely from the recreation, and was one of the components, and apart from that, Google made Angle, a tool which runs OpenGL ES on any platform. https://github.com/google/angle