Table of Contents

预处理器变量

高级 程序员

如果你面向多个平台开发,通常需要为每个平台编写自定义代码。大多数情况下,最好的做法是使用 Platform.Type 和 GraphicsDevice.Platform。此外,你也可以使用预处理器变量(preprocessor variables)。

Warning

我们建议你尽可能避免使用预处理器变量,转而使用 Platform.Type 和 GraphicsDevice.Platform。这是因为你在编译时只会检查目标平台的代码,因此可能会漏掉代码中的错误。

平台

变量 平台
STRIDE_PLATFORM_DESKTOP 任何桌面平台(Windows、Linux 或 MacOS)
STRIDE_PLATFORM_MONO_MOBILE 任何移动平台(Android 或 iOS)
STRIDE_PLATFORM_ANDROID Android
STRIDE_PLATFORM_IOS iOS

此外,msbuild 还提供这些变量:

变量 平台
WINDOWS Windows
MACOS MacOS

图形 API

变量 图形 API
STRIDE_GRAPHICS_API_DIRECT3D Direct3D 11 或 12
STRIDE_GRAPHICS_API_DIRECT3D11 Direct3D 11
STRIDE_GRAPHICS_API_DIRECT3D12 Direct3D 12
STRIDE_GRAPHICS_API_VULKAN Vulkan
STRIDE_GRAPHICS_API_NULL Null

示例

#if STRIDE_PLATFORM_DESKTOP
    // 桌面平台专有的代码写在这里...

#elif STRIDE_PLATFORM_ANDROID
    // Android 专有的代码写在这里...

#else
    // 其他平台的代码写在这里...

#endif

另请参阅