Posted: Fri Oct 27, 2017 8:21 am
Hi,
I'd like to upgrade the codebase to C++14[0] to pave the road for a possible linux port[1]. Of course I want to upstream all my changes. Now the question is: will the core developers accept such changes?
Before I get started, is it possible to remove the obsolete projects first? I don't want to spend time to upgrade dead code
[0]: I need to get rid of all Microsoft specific keywords (e.g. WORD, BYTE, DWORD, HRESULT, etc.) and use the standard ones. Next step will be to get rid of TRef&co and use smart pointers, std::function & binders, etc.
[1]: A possible linux/android/mac port is a nice dream, so, please keep in mind that it's not a promise!
There will be needed lots of changes which will take a lot of time, my todo list looks like this:
1. remove all the obsolete
2. upgrade codebase to C++11/14
3. remove the the MS specific pch. On windows it will slow down a little bit the compilation at first time (with a few seconds), but incremental builds will be faster. Without this change we can't have code-completion and other goodies in linux IDEs.
4. use SDL for main loop, input, window management, sound?(OpenAL seems to be better for advance stuff)
4.1 move the windows specific bits into separate files.
5. add Cmake build system (VS2017 seems to support cmake, so we can eventually remove VS2017 projects).
6. port the 3d part to opengl(es)/vulkan?. This will be the hardest part because at first look it seems freeallegiance doesn't use any shaders ...
I'd like to upgrade the codebase to C++14[0] to pave the road for a possible linux port[1]. Of course I want to upstream all my changes. Now the question is: will the core developers accept such changes?
Before I get started, is it possible to remove the obsolete projects first? I don't want to spend time to upgrade dead code
[0]: I need to get rid of all Microsoft specific keywords (e.g. WORD, BYTE, DWORD, HRESULT, etc.) and use the standard ones. Next step will be to get rid of TRef&co and use smart pointers, std::function & binders, etc.
[1]: A possible linux/android/mac port is a nice dream, so, please keep in mind that it's not a promise!
There will be needed lots of changes which will take a lot of time, my todo list looks like this:
1. remove all the obsolete
2. upgrade codebase to C++11/14
3. remove the the MS specific pch. On windows it will slow down a little bit the compilation at first time (with a few seconds), but incremental builds will be faster. Without this change we can't have code-completion and other goodies in linux IDEs.
4. use SDL for main loop, input, window management, sound?(OpenAL seems to be better for advance stuff)
4.1 move the windows specific bits into separate files.
5. add Cmake build system (VS2017 seems to support cmake, so we can eventually remove VS2017 projects).
6. port the 3d part to opengl(es)/vulkan?. This will be the hardest part because at first look it seems freeallegiance doesn't use any shaders ...