9#ifndef AVARA3D_ENVIRONMENT_H
10#define AVARA3D_ENVIRONMENT_H
14#include "a3d/util/Bitmask.h"
21 enum class Platform : std::uint8_t {
31 Desktop = (1 << 0) | (1 << 1) | (1 << 2),
32 Mobile = (1 << 3) | (1 << 4)
41 inline constexpr Platform platform = Platform::Linux;
42#elif defined(A3D_MACOS)
43 inline constexpr Platform platform = Platform::macOS;
44#elif defined(A3D_WINDOWS)
45 inline constexpr Platform platform = Platform::Windows;
46#elif defined(A3D_ANDROID)
47 inline constexpr Platform platform = Platform::Android;
49 inline constexpr Platform platform = Platform::iOS;
51 inline constexpr Platform platform = Platform::Web;
53 #error Unsupported platform.
59 constexpr bool is(Platform platforms)
noexcept {
61 return util::bitmask::any(platform, platforms);
66 namespace util::bitmask {
71 struct enable_ops<Platform> : std::true_type {};