Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

馃崕 MacOS Support #28

Closed
zicklag opened this issue May 28, 2021 · 2 comments
Closed

馃崕 MacOS Support #28

zicklag opened this issue May 28, 2021 · 2 comments
Labels
enhancement New feature or request

Comments

@zicklag
Copy link
Member

zicklag commented May 28, 2021

Currently Bevy Retro has not been found to work on MacOS. Being that we do not have a Mac readily available to test on, it is difficult for us to debug, though it should be possible to make Bevy Retro work on Mac, and it is a goal to do so, at least eventually.

We could use help from anybody who develops on MacOS and has time to test and possibly attempt to fix issues, with which I would be glad to assist.

Current State

In our only test done on a Mac, we got a solid red screen. I'm not sure what that means. I have heard that OpenGL is being deprecated on Mac, but I have not heard of them totally disabling it yet. I believe that Bevy Retro, on desktop, runs on OpenGL 3.0, but on web it uses WebGL 1.0 which is very close to OpenGL ES 2.0. I believe that it would be possible to make Bevy Retro run on desktop using OpenGL ES 2.0 without changes to the renderer, if we are using OpenGL 3 it is because it was what was easy to get the surfman crate to give us on desktop.

The red screen may be a simple driver issue or rendering setting that needs to be fixed to make it work on Mac.

Something worth investigating is to use MetalANGLE which could be used to run using the non-deprecated Metal API on MacOS by translating our OpenGL ES 2.0 calls to Metal calls. We might be able to gain some insight from the experience of wezterm.

Other Options

Another possiblity for targeting MacOS, that would be unfortunate but still worth it if it is the only way, is to use a native webview such as Tauri and wrap that around the WebGL 1.0 build of the game. This is less desirable because of performance limitations, we only get one thread, and the fact that it may require more manual bindings to the webview to emulate native behavior such as file access, etc.

@zicklag zicklag added enhancement New feature or request help wanted Extra attention is needed labels May 28, 2021
@zicklag zicklag pinned this issue May 28, 2021
@zicklag
Copy link
Member Author

zicklag commented Jul 7, 2021

It's worth noting that #41 should solve this issue because Bevy's renderer already works on MacOS, but being that we aren't exactly sure when we are going to migrate, it would still be good if we could fix this before then, if it isn't difficult.

@zicklag zicklag unpinned this issue Jul 9, 2021
@zicklag zicklag removed the help wanted Extra attention is needed label Jul 12, 2021
@zicklag
Copy link
Member Author

zicklag commented Jul 25, 2021

Closing this in favor of #41 to avoid tracking multiple issues.

@zicklag zicklag closed this as completed Jul 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant