#if 0#endif
#define PLATFORM_UNIX 1
#include <cstdarg>
#include <cstdint>
#include <cstdlib>
#include <ostream>
#include <new>
struct StyleAlignFlags {
uint8_t bits;
constexpr explicit operator bool() const {
return !!bits;
}
constexpr StyleAlignFlags operator~() const {
return StyleAlignFlags { static_cast<decltype(bits)>(~bits) };
}
constexpr StyleAlignFlags operator|(const StyleAlignFlags& other) const {
return StyleAlignFlags { static_cast<decltype(bits)>(this->bits | other.bits) };
}
StyleAlignFlags& operator|=(const StyleAlignFlags& other) {
*this = (*this | other);
return *this;
}
constexpr StyleAlignFlags operator&(const StyleAlignFlags& other) const {
return StyleAlignFlags { static_cast<decltype(bits)>(this->bits & other.bits) };
}
StyleAlignFlags& operator&=(const StyleAlignFlags& other) {
*this = (*this & other);
return *this;
}
constexpr StyleAlignFlags operator^(const StyleAlignFlags& other) const {
return StyleAlignFlags { static_cast<decltype(bits)>(this->bits ^ other.bits) };
}
StyleAlignFlags& operator^=(const StyleAlignFlags& other) {
*this = (*this ^ other);
return *this;
}
static const StyleAlignFlags AUTO;
static const StyleAlignFlags NORMAL;
static const StyleAlignFlags START;
static const StyleAlignFlags END;
static const StyleAlignFlags ALIAS;
static const StyleAlignFlags FLEX_START;
static const StyleAlignFlags MIXED;
static const StyleAlignFlags MIXED_SELF;
#if defined(PLATFORM_WIN)
static const StyleAlignFlags PLATFORM_BIT;
#endif
#if defined(PLATFORM_UNIX)
static const StyleAlignFlags PLATFORM_BIT;
#endif
};
constexpr inline const StyleAlignFlags StyleAlignFlags::AUTO = StyleAlignFlags{
(uint8_t)0
};
constexpr inline const StyleAlignFlags StyleAlignFlags::NORMAL = StyleAlignFlags{
(uint8_t)1
};
constexpr inline const StyleAlignFlags StyleAlignFlags::START = StyleAlignFlags{
(uint8_t)(1 << 1)
};
constexpr inline const StyleAlignFlags StyleAlignFlags::END = StyleAlignFlags{
(uint8_t)(1 << 2)
};
constexpr inline const StyleAlignFlags StyleAlignFlags::ALIAS = StyleAlignFlags{
(uint8_t)(StyleAlignFlags::END).bits
};
constexpr inline const StyleAlignFlags StyleAlignFlags::FLEX_START = StyleAlignFlags{
(uint8_t)(1 << 3)
};
constexpr inline const StyleAlignFlags StyleAlignFlags::MIXED = StyleAlignFlags{
(uint8_t)(((1 << 4) | (StyleAlignFlags::FLEX_START).bits) | (StyleAlignFlags::END).bits)
};
constexpr inline const StyleAlignFlags StyleAlignFlags::MIXED_SELF = StyleAlignFlags{
(uint8_t)(((1 << 5) | (StyleAlignFlags::FLEX_START).bits) | (StyleAlignFlags::END).bits)
};
#if defined(PLATFORM_WIN)
constexpr inline const StyleAlignFlags StyleAlignFlags::PLATFORM_BIT = StyleAlignFlags{
(uint8_t)(1 << 6)
};
#endif
#if defined(PLATFORM_UNIX)
constexpr inline const StyleAlignFlags StyleAlignFlags::PLATFORM_BIT = StyleAlignFlags{
(uint8_t)(1 << 7)
};
#endif
struct StyleNativeSurfaceId {
uint64_t _0;
static const StyleNativeSurfaceId DEBUG_OVERLAY;
};
constexpr inline const StyleNativeSurfaceId StyleNativeSurfaceId::DEBUG_OVERLAY = StyleNativeSurfaceId{
UINT64_MAX
};
struct StyleNativeTileId {
StyleNativeSurfaceId surface_id;
int32_t x;
int32_t y;
static const StyleNativeTileId DEBUG_OVERLAY;
};
constexpr inline const StyleNativeTileId StyleNativeTileId::DEBUG_OVERLAY = StyleNativeTileId{
StyleNativeSurfaceId::DEBUG_OVERLAY,
0,
0
};
extern "C" {
void root(StyleAlignFlags flags, StyleNativeTileId tile);
}