- target_sources(... PUBLIC ...) doesn't do what I thought it did, and has no useful purpose here.
- Experimental features are an Alpha only thing, and Unstable features should not be part of a Candidate release.
- ENABLE_LTO is not a flag anymore, as CMake has a global flag for it.
While we haven't split out Core from the main file yet, and we still keep running into strange duplicate symbol or undefined symbol errors, this will hopefully simplify the CMake file further. End goal is to eventually split StreamFX into smaller sub-plugins that can operate mostly independently. At some point, the goal is to be able to soft-depend on other components, i.e. Blur can softly depend on Dynamic Mask, and then have extra features if the component is installed. This is not quite fleshed out yet, and I have no clear idea on how to make it work.
There does not appear to be a reason for this to cause a compiler error, but it does on MSVC. To be precise, the 'grp2' part causes it if there is not an underscore behind it. A classic "doesn't work without this comment" problem.
While AMF is not really available on MacOS, we still shouldn't just fail to compile because of it. Might as well do the test and if it doesn't work out, then we still behave the same as before.
While a Linux version is (supposedly) available for this functionality, at the current time we have no integration for it. Nor do we have any way to test it either, so it is better to disable it for now.
This allows resolving a dependency tree up to 10 elements deep, but a different solution may be necessary in the future. A better alternative in the future might be to keep a copy of the unresolved entries and then compare every loop, instead of limiting to a fixed number of cycles.
This currently doesn't address cyclic dependencies, since I'm not quite sure how those would work with the current model anyway.
We now require these features all the time, as they are becoming more of a core part of the StreamFX UI. Additionally several components rely on these already being present, so omitting them is not a great idea.
This still contains some of the old reusable code, which was never used in the first place. I'm unsure what the end goal for it was, as nothing really ended up using it anywhere else.
- Remove float_t and double_t usage, as they aren't related to sized types.
- Remove unused aligned types, their usage has been replaced quite a while ago.
- Update the templates for pow and is_power_of_two.