预处理器变量
高级 程序员
如果你面向多个平台开发,通常需要为每个平台编写自定义代码。大多数情况下,最好的做法是使用 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