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

yd #1

Merged
merged 66 commits into from
Jan 4, 2024
Merged

yd #1

merged 66 commits into from
Jan 4, 2024

Conversation

tristansly
Copy link
Owner

@tristansly tristansly commented Jan 4, 2024

Explain the Pull Request

Completion Checklist

  • This has been tested on the following platforms:
    • MacOS 10.15
    • MacOS 11
    • MacOS 12
    • Ubuntu 20.04
    • Ubuntu 22.04
    • Windows 10
    • Windows 11
  • The copyright headers and license files have been updated.
  • I will maintain this for the forseeable future, and have added myself to CODEOWNERS.

Xaymar and others added 30 commits September 3, 2023 15:32
The old fake component system is starting to be very annoying to work with, as it doesn't properly split things apart. The new system should aid with this significantly, and make errors easier to spot.
We should always link the whole object, even if nothing is needed by the module itself.
add_subdirectory creates a new "stack" of variables, so PARENT_SCOPE points nowhere. Well it points to the outside of the function, which is not outside of the subproject.
Using PROJECT_NAME makes it incompatible with add_subdirectory, and it's really not necessary anyway. There are no plans to rename the project again.

Also needed to expose some information to be public, so that components could actually use it. Seems to be working as intended finally.
The module only holds the resources file, so Qt is not needed here.
While this would normally work no questions asked in something like 'make', 'nmake' or similar, it is an impossible task in CMake without an empty file. So we'll just provide it with an empty file.
Microsoft has some very annoying #define's which break most if not all of C++ at random spots. Best disable them globally so we don't have to ever deal with them. Also the MSVC CRT warnings are completely pointless, they are just whining that we use the standard instead of their non-portable functionality.
Removes the prefixes from commit titles, as they served no other purpose than to complicate things. While we originally copied this style from obs-studio, it has been increasingly clear that the short description usually already describes what the prefix would also describe. And in case it doesn't, you can just simply filter by file or directory, and get the same result.
This should always have been part of the code, but hey - we learn at some point and improve ourselves.
error: Error compiling shader:
0(142) : error C1101: ambiguous overloaded function reference "log(int)"
    (0) : lowp float log(lowp float)
    (0) : mediump float log(mediump float)
    (0) : float log(float)

error: device_pixelshader_create (GL) failed
error: Pass (0) <> missing pixel shader!
error: [StreamFX] <filter::color_grade> Error loading '/usr/local/share/obs/obs-plugins/StreamFX/effects/color-grade.effect': Unknown error during effect compile.
error: [StreamFX] Unexpected exception in function '_create': Unknown error during effect compile..
error: Failed to create source 'Color Grading'!
- 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.
While we're at it, let's also fix the invalid destructor, as well as the NVENC HEVC encoder incorrectly using H264.Level to store H265.Level.
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.
Another re-usable code section that never got reused. This one is actually more useful, so I might split it into its own component eventually.
Soon to be replaced by Spout/Sink
Xaymar and others added 29 commits September 30, 2023 09:25
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.
It will now properly sort authors by date, and follow renames, which should give a much better coverage of copyright information.
These now include all history, which has fixed some headers that used to be wrong.
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.
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.
This addresses some unexpected behaviors, and might even fix a feature or two.
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.
- 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.
@tristansly tristansly merged commit be30983 into tristansly:root Jan 4, 2024
4 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants