Skip to content

[Windows] Implement OneCore TTS support using C++/WinRT (no deps).#116349

Merged
Repiteo merged 1 commit into
godotengine:masterfrom
bruvzg:onecore_opt
Mar 31, 2026
Merged

[Windows] Implement OneCore TTS support using C++/WinRT (no deps).#116349
Repiteo merged 1 commit into
godotengine:masterfrom
bruvzg:onecore_opt

Conversation

@bruvzg
Copy link
Copy Markdown
Member

@bruvzg bruvzg commented Feb 16, 2026

Fixes #69788

Alternative version of #116126, without bundled dependencies, WinRT part is optional and can be downloaded using script (MinGW only, MSVC always has it).

@bruvzg bruvzg added this to the 4.x milestone Feb 16, 2026
@bruvzg bruvzg marked this pull request as ready for review February 16, 2026 10:03
@bruvzg bruvzg requested review from a team as code owners February 16, 2026 10:03
Comment thread platform/windows/tts_driver.h Outdated
Copy link
Copy Markdown
Member

@akien-mga akien-mga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great to me.
Likely needs a rebase to handle clang-format/include changes.

@akien-mga akien-mga modified the milestones: 4.x, 4.7 Mar 27, 2026
@Repiteo Repiteo merged commit 0dabee7 into godotengine:master Mar 31, 2026
20 checks passed
@Repiteo
Copy link
Copy Markdown
Contributor

Repiteo commented Mar 31, 2026

Thanks!

@romgerman
Copy link
Copy Markdown
Contributor

Hello. This broke the build for me on MSVC

[  6%] C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\include\experimental/coroutine(35): fatal error C1189: #error:  The <experimental/coroutine> and <experimental/resumable> headers are only supported with /await and implement pre-C++20 coroutine support. Use <coroutine> for standard C++20 coroutines.
[  7%] C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\include\experimental/coroutine(35): fatal error C1189: #error:  The <experimental/coroutine> and <experimental/resumable> headers are only supported with /await and implement pre-C++20 coroutine support. Use <coroutine> for standard C++20 coroutines.

According to this issue microsoft/cppwinrt#866 (comment) Windows SDK 10.0.19 (Windows 10) is not supported anymore. Installing Windows SDK 10.0.26 (Windows 11) fixes it.

@vaner-org
Copy link
Copy Markdown
Contributor

Which script fixes build on MinGW?

[  6%] ERROR: In file included from platform\windows\tts_driver_onecore.cpp:31:
platform\windows\tts_driver_onecore.h:43:10: fatal error: winrt/Windows.Foundation.Collections.h: No such file or directory
   43 | #include <winrt/Windows.Foundation.Collections.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

[  7%] ERROR: In file included from platform\windows\tts_windows.cpp:36:
platform\windows\tts_driver_onecore.h:43:10: fatal error: winrt/Windows.Foundation.Collections.h: No such file or directory
   43 | #include <winrt/Windows.Foundation.Collections.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

@bruvzg
Copy link
Copy Markdown
Member Author

bruvzg commented Apr 2, 2026

Which script fixes build on MinGW?

misc/scripts/install_winrt.py

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.

DisplayServer tts_get_voices() does not load all installed voices on Windows

6 participants