适用于跨平台渲染器的正确项目类型

时间:2017-03-30 11:58:25

标签: c# xamarin xamarin.ios xamarin.android cross-platform

我需要开发一个跨平台的应用程序,范围从移动设备到桌面设备到电视。应用程序包含各种各样的3D元素,这对于应用程序的正确显示至关重要。

起初,我打算使用C ++和本地编译器(利用指令),但我已经多次走了这条路,有很多重叠的因素你无法统一(或找工作,太多,周围到克服这个问题),所以我决定尝试其他替代方案。

我发现Xamarin最出色的跨平台工具包允许本机性能应用程序,但我在某些术语中迷失了方向。在我的应用程序中,将有一个名为“GraphRenderer”的基类。我将为每个平台和每个平台覆盖它,我将包括一个不同的GPU库(例如,适用于Mac的Metal,适用于Windows的DirectX 12,适用于Android的Vulkan)并使用它。如果可能的话,我不想使用指令,从长远来看,创建接口方法似乎更清洁。

是否存在允许此层次结构的项目类型(您可以想象共享库,PCL等让我感到困惑):

  • 应用

    • 共享代码文件
      • GraphRenderer.cs:具有空函数的GraphRenderer的定义,以使其与其他共享代码兼容
    • 特定于平台的代码文件
      • GraphRenderer.Windows.cs:在编译适用于Windows 10平台的应用程序时替换GraphRenderer.cs,包括具有适当功能的DirectX 12标头和覆盖功能

感谢。

1 个答案:

答案 0 :(得分:0)

共享两种方法,另一种是PCL 在共享方法中,您必须使用指令,因为您将在所有平台中使用单个共享文件。 在PCL方法中,您需要在PCL项目中创建一个接口,并在特定于平台的项目中实现。