Skip to content

Port src/os and src/render layers to macOS#750

Draft
yuraiz wants to merge 10 commits intoEpicGamesExt:masterfrom
yuraiz:macos-gfx
Draft

Port src/os and src/render layers to macOS#750
yuraiz wants to merge 10 commits intoEpicGamesExt:masterfrom
yuraiz:macos-gfx

Conversation

@yuraiz
Copy link
Copy Markdown

@yuraiz yuraiz commented Apr 9, 2026

I find raddebugger interesting, but I mostly work on macOS, so I wasn't able to compile and experiment with it's UI code. That's why I decided to port it.

Screenshot 2026-04-09 at 18 14 45
Screen.Recording.2026-04-09.at.18.13.00.mov

os/core layer is mostly copied from Linux, I fixed small differences in the api.

os/gfx layer uses AppKit by calling the objective-c runtime from c, I didn't want to work with objective-c

  • Scrolling feels really strange on a touchpad, but that's just how the ui works now.
  • I added if(OS_MAC) to the raddbg_core.c just to handle the title bar button padding. I think I'll provide another api for measuring the padding and use it instead.
  • Currently the top-left corner icon is hidden on macOS, and the traffic lights are placed instead, it just didn't look right near the buttons.

The port uses OpenGL backend and FreeType font provider (so it requires installing freetype), so the most of the code is shared with the Linux version.

The demon is just a stub for now. I have some experience working with mach interfaces, so I think I'll be able to implement it later. Another problem is missing aarch64 disassembler, but I don't think that's too important.

@BrettRToomey
Copy link
Copy Markdown

I also have a quite robust macOS port that includes a Metal backend. Maybe we can combine our efforts here. I’m also interested in looking into ctrl and demon

@yuraiz
Copy link
Copy Markdown
Author

yuraiz commented Apr 9, 2026

I also have a quite robust macOS port that includes a Metal backend. Maybe we can combine our efforts here. I’m also interested in looking into ctrl and demon

I'm curious why did you implement the Metal backend before doing the demon? IMO demon sounds more important.

Anyway, collaboration sounds great!

@BrettRToomey
Copy link
Copy Markdown

I also have a quite robust macOS port that includes a Metal backend. Maybe we can combine our efforts here. I’m also interested in looking into ctrl and demon

I'm curious why did you implement the Metal backend before doing the demon? IMO demon sounds more important.

Anyway, collaboration sounds great!

For the debugger, I agree.

The reason I implemented Metal is because I was using the raddebugger codebase as a sort of cross platform base layer and I already had Metal code from my other projects. My intent was that once the Linux part of the debugger was further along I could upstream my port.

Now that you have this PR open here, I think it will be easier for me to upstream my changes to your fork.

Is there a good way to communicate with you outside of GitHub?

@yuraiz
Copy link
Copy Markdown
Author

yuraiz commented Apr 10, 2026

Is there a good way to communicate with you outside of GitHub?

I'm available in Telegram by myusername, or you can write me a email.

yuraiz added 4 commits April 11, 2026 19:05
- The graphical message modal is now centered.
- The app no longer crashes on dragging out of the window.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants