Запуск UrhoSharp в приложении UWP как новый вид - PullRequest
0 голосов
/ 01 февраля 2019

Я заинтересован в создании приложения UWP, которое при запуске имеет стандартное представление 2D-типа XAML, но может переключаться на вторичное 3D-представление UrhoSharp (кстати, оно должно запускаться на HoloLens).Я новичок в UrhoSharp, но я могу следовать некоторым онлайн-учебникам, которые создают 3D-приложение UWP UrhoSharp, создав новое приложение UWP в Visual Studio, удалив классы «App.xaml» и «MainPage.Xaml», а затем определивновая точка входа UrhoSharp, добавив следующее:

using Urho;

public static class Program
{
    [MTAThread]
    static void Main() => CoreApplication.Run(new UrhoAppViewSource<MixedRealityApplication>());
}

и

using Urho;
using Urho.SharpReality;

internal class MixedRealityApplication : StereoApplication
{
    public MixedRealityApplication(ApplicationOptions options) : base(options)
    {
        // Do some initialization.
    }

    protected override void Start()
    {
        // Start drawing some 3D stuff
    {
}

Вышеописанное работает, и я могу видеть свои 3D-объекты.Теперь я хочу создать приложение UWP, которое запускается с видом по умолчанию в качестве стандартного 2D-окна XAML, но затем я могу переключаться в 3D-представление UrhoSharp при нажатии кнопки.Я нашел следующую ветку, где автор сделал именно это:

https://forums.xamarin.com/discussion/98907/right-way-to-run-urhosharp-as-part-of-2d-uwp-on-hololens

Однако пример кода очень скудный (1 или 2 строки), и я никуда не могу добраться.Я пытался использовать (немодифицированный) класс «MixedRealityApplication» в приведенном выше коде способом, использованным автором:

Using Windows.ApplicationMode.Core;
using Urho;

private void Button_Click)object sender, RoutedEventArgs e)
{
    CoreApplicationView urho3DView = CoreApplication.CreateNewView(new UrhoAppViewSource<MixedRealityApplication>());
    ...etc...
}

Выше приведено следующее исключение при попытке создать экземпляр «urho3DView»: «Система.Runtime.InteropServices.COMException: «Метод был вызван в неожиданное время.» «

Я не уверен, что еще можно попробовать, и тот факт, что это представляется возможным в соответствии со ссылками на этот пост, дразнит.У кого-нибудь есть идеи, как это сделать?Если бы только автор показал, как выглядит «HelloWorldApplication» в своем коде.

...