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

Fix C# bindings after recent breaking changes #37050

Merged
merged 1 commit into from
Mar 17, 2020

Conversation

neikeq
Copy link
Contributor

@neikeq neikeq commented Mar 14, 2020

Implementation for new Variant types Callable, Signal, StringName.
Added support for PackedInt64Array and PackedFloat64Array.

Add generation of signal members as events, as well as support for
user created signals as events.
NOTE: As of now, raising such events will not emit the signal. As such,
one must use EmitSignal instead of raising the event directly.

Removed old ThreadLocal fallback class. It's safe to use thread_local now since
it's supported on all minimum versions of compilers we support.

@neikeq
Copy link
Contributor Author

neikeq commented Mar 14, 2020

NOTE: As of now, raising such events will not emit the signal. As such,
one must use EmitSignal instead of raising the event directly.

The ideal thing would be that raising the event will also emit the signal. However, I still haven't figured out a good way to solve the problem with this circular call:
raise event -> emit signal
raise event <- emit signal

@neikeq
Copy link
Contributor Author

neikeq commented Mar 15, 2020

Don't merge this yet. I forgot about clearing or possibly serializing managed callable delegates on hot-reload.

@neikeq neikeq self-assigned this Mar 15, 2020
@neikeq neikeq force-pushed the fix-mono-after-vulkan-merge branch from ab456eb to 5e674e7 Compare March 17, 2020 00:44
@neikeq
Copy link
Contributor Author

neikeq commented Mar 17, 2020

This is ready now.

@neikeq
Copy link
Contributor Author

neikeq commented Mar 17, 2020

@akien-mga I've updated the Standard in our .clang-format to Cpp11 (which refers to all versions after C++11).
Without this, some new features are wrongly formatted (in my case that was if constexpr). However, this may change formatting in a lot of other places. One case in particular are double angle brackets (>>) in templates. Before this, they were formatted like > >, but with this change they are formatted like >> (as C++11 fixes ambiguity with the >> operator). This may make CI to fail on PRs.

@neikeq neikeq force-pushed the fix-mono-after-vulkan-merge branch from 5e674e7 to 88ad362 Compare March 17, 2020 02:11
@akien-mga
Copy link
Member

I've updated the Standard in our .clang-format to Cpp11 (which refers to all versions after C++11).

I was waiting for the display-server branch to be finalized and merged before doing style changes to avoid introducing avoidable merge conflicts, but if you need it for if constexpr, I guess it makes sense to update now.

I'll do a separate PR changing the Standard and applying it to the codebase that you can rebase upon once merged, so we get the whole codebase following the new standard.

@akien-mga
Copy link
Member

#37106 is merged, you can rebase and drop the second commit.

Implementation for new Variant types Callable, Signal, StringName.
Added support for PackedInt64Array and PackedFloat64Array.

Add generation of signal members as events, as well as support for
user created signals as events.
NOTE: As of now, raising such events will not emit the signal. As such,
one must use `EmitSignal` instead of raising the event directly.

Removed old ThreadLocal fallback class. It's safe to use thread_local now since
it's supported on all minimum versions of compilers we support.
@neikeq neikeq force-pushed the fix-mono-after-vulkan-merge branch from 88ad362 to 6a85cdf Compare March 17, 2020 15:34
@neikeq neikeq merged commit 989a223 into godotengine:master Mar 17, 2020
@neikeq neikeq deleted the fix-mono-after-vulkan-merge branch May 13, 2021 23:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants