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’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows support #607

Open
rzumer opened this issue Mar 7, 2019 · 2 comments

Comments

Projects
None yet
2 participants
@rzumer
Copy link
Contributor

commented Mar 7, 2019

This issue is for enhancement tracking/feature request. Since portability is a goal stated here and there does not seem to be an issue tracking this, I thought I would create one. If it is no longer a goal then feel free to close it, but I think that it would be useful even if low priority, and I might start some work on this if I can find the time.

Since the non-Mac Unix builds run on SDL it should not be too much trouble to port most of the application. That said I have not yet looked at the code base, so if there is anything to keep in mind, or any observations, warnings, information regarding portability to Windows, comments would be helpful.

@TomHarte

This comment has been minimized.

Copy link
Owner

commented Mar 7, 2019

It should still be entirely portable; if anything it's more portable than ever since the releases of this month as even OpenGL is now something that both platforms opt into rather than an assumption.

My recent work in this area has been merely to install Windows 10 in a virtual machine and start reading about C++/WinRT. I also had a look around ANGLE as a potential avenue for reusing much of the existing OpenGL code, though it's ES 3 rather than desktop OpenGL so I had the feeling that getting to Windows via either Android or a private iOS build might be intelligent.

In other words: I've read a bunch of things, failed to come to a conclusion, and not done any work (!)

I think I will immediately write a Wiki entry on how to port. The good news is: it should still be really easy. There's a single point of entry for obtaining 'a machine', then you need to register with it destinations for audio and video (and, optionally, 'activity', which means status LEDs in practice — drive activity, caps locks, etc), then push keyboard and joystick activity to it, and tell it how much time to run for.

There's some reflection on machine settings, though I could do a better job there.

Anyway, I'll write it up properly — concrete classes, etc — and reply again.

@TomHarte TomHarte added the enhancement label Mar 7, 2019

@TomHarte

This comment has been minimized.

Copy link
Owner

commented Mar 7, 2019

There's an inital draft of that documentation at https://github.com/TomHarte/CLK/wiki/Porting-Guide ; I'm sure I'll realise I've left a bunch of things out at some point, so watch for revisions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.