FCT
载入中...
搜索中...
未找到
Flags.h 文件参考
#include "../ThirdParty.h"
#include <type_traits>
Flags.h 的引用(Include)关系图:
此图展示该文件被哪些文件直接或间接地引用了:

浏览该文件的源代码.

class  FCT::Flags< BitType >
struct  FCT::FlagTraits< BitType >

命名空间

namespace  FCT

宏定义

#define FCT_DECLARE_FLAGS(BitType)
#define FCT_DECLARE_FLAG(BitType, flags)
#define FCT_TO_FLAG(name, translateBitFunc, FlagBitType, FlagType)
#define FCT_TO_FLAGS(name, translateBitFunc, FlagBitType)
#define FCT_TO_VK_FLAG_BIT_BEGIN(FlagBit)
#define FCT_TO_VK_FLAG_BIT_CASE(FlagBit, value, Value)
#define FCT_TO_VK_FLAG_BIT_END(FlagBit)
#define FCT_TO_VK_FLAGS(FlagBit)

函数

template<typename BitType, typename std::enable_if< FlagTraits< BitType >::isBitmask, bool >::type = true>
constexpr Flags< BitType > FCT::operator| (BitType lhs, BitType rhs) noexcept
template<typename BitType, typename std::enable_if< FlagTraits< BitType >::isBitmask, bool >::type = true>
constexpr Flags< BitType > FCT::operator& (BitType lhs, BitType rhs) noexcept
template<typename BitType, typename std::enable_if< FlagTraits< BitType >::isBitmask, bool >::type = true>
constexpr Flags< BitType > FCT::operator^ (BitType lhs, BitType rhs) noexcept
template<typename BitType, typename std::enable_if< FlagTraits< BitType >::isBitmask, bool >::type = true>
constexpr Flags< BitType > FCT::operator~ (BitType bits) noexcept
template<typename BitType>
constexpr Flags< BitType > FCT::operator| (BitType bit, Flags< BitType > const &flags) noexcept
template<typename BitType>
constexpr Flags< BitType > FCT::operator& (BitType bit, Flags< BitType > const &flags) noexcept
template<typename BitType>
constexpr Flags< BitType > FCT::operator^ (BitType bit, Flags< BitType > const &flags) noexcept

宏定义说明

◆ FCT_DECLARE_FLAG

#define FCT_DECLARE_FLAG ( BitType,
flags )
值:
template<> \
struct FCT::FlagTraits<BitType> \
{ \
static constexpr bool isBitmask = true; \
}; \
using flags = FCT::Flags<BitType>;

在文件 Flags.h124 行定义.

◆ FCT_DECLARE_FLAGS

#define FCT_DECLARE_FLAGS ( BitType)
值:
template<> \
struct FCT::FlagTraits<BitType> \
{ \
static constexpr bool isBitmask = true; \
}; \
using BitType##s = FCT::Flags<BitType>;

在文件 Flags.h116 行定义.

◆ FCT_TO_FLAG

#define FCT_TO_FLAG ( name,
translateBitFunc,
FlagBitType,
FlagType )
值:
inline auto name(FlagType flags) \
{ \
auto result = translateBitFunc(static_cast<FlagBitType>(0)) | translateBitFunc(static_cast<FlagBitType>(0)); \
for (uint32_t i = 0; i < 32; ++i) { \
FlagBitType singleFlag = static_cast<FlagBitType>(1u << i); \
if (flags & singleFlag) { \
result |= translateBitFunc(singleFlag); \
} \
} \
return result; \
}

在文件 Flags.h131 行定义.

◆ FCT_TO_FLAGS

#define FCT_TO_FLAGS ( name,
translateBitFunc,
FlagBitType )
值:
FCT_TO_FLAG(name, translateBitFunc, FlagBitType, FlagBitType##s)
#define FCT_TO_FLAG(name, translateBitFunc, FlagBitType, FlagType)

在文件 Flags.h143 行定义.

◆ FCT_TO_VK_FLAG_BIT_BEGIN

#define FCT_TO_VK_FLAG_BIT_BEGIN ( FlagBit)
值:
inline vk::##FlagBit##FlagBits ToVk##FlagBit(FlagBit bit) \
{ \
switch (bit) \
{

在文件 Flags.h145 行定义.

◆ FCT_TO_VK_FLAG_BIT_CASE

#define FCT_TO_VK_FLAG_BIT_CASE ( FlagBit,
value,
Value )
值:
case FlagBit::value: \
return vk::##FlagBit##FlagBits::e##Value;

在文件 Flags.h150 行定义.

◆ FCT_TO_VK_FLAG_BIT_END

#define FCT_TO_VK_FLAG_BIT_END ( FlagBit)
值:
default: \
return vk::##FlagBit##FlagBits(0); \
} \
}

在文件 Flags.h153 行定义.

◆ FCT_TO_VK_FLAGS

#define FCT_TO_VK_FLAGS ( FlagBit)
值:
FCT_TO_FLAGS(ToVk##FlagBit##s,ToVk##FlagBit,FlagBit)
#define FCT_TO_FLAGS(name, translateBitFunc, FlagBitType)

在文件 Flags.h158 行定义.