FCT
载入中...
搜索中...
未找到
AccessFlags.h
浏览该文件的文档.
1//
2// Created by Administrator on 2025/7/30.
3//
4
5#ifndef ACCESSFLAGS_H
6#define ACCESSFLAGS_H
7#include "../ThirdParty.h"
8#include "../Base/Flags.h"
9namespace FCT {
10 enum class AccessFlag : size_t {
11 none = 0,
12 memoryRead = 1 << 1,
15 shaderRead = 1 << 4,
16 };
18#ifdef FCT_USE_VULKAN
19 inline vk::AccessFlagBits ToVkAccessFlagBits(AccessFlag flag)
20 {
21 switch (flag) {
23 return vk::AccessFlagBits::eNone;
25 return vk::AccessFlagBits::eMemoryRead;
27 return vk::AccessFlagBits::eColorAttachmentWrite;
29 return vk::AccessFlagBits::eDepthStencilAttachmentWrite;
31 return vk::AccessFlagBits::eShaderRead;
32 default:
33 return static_cast<vk::AccessFlagBits>(0);
34 }
35 }
36 /*
37 inline vk::AccessFlags ToVkAccessFlags(AccessFlags flags)
38 {
39 vk::AccessFlags result;
40
41 for (uint32_t i = 0; i < 32; ++i) {
42 FCT::AccessFlag singleFlag = static_cast<FCT::AccessFlag>(1u << i);
43 if (flags & singleFlag) {
44 result |= ToVkAccessFlagBits(singleFlag);
45 }
46 }
47
48 return result;
49 }*/
50#endif
52}
53
54
55#endif //ACCESSFLAGS_H
#define FCT_TO_FLAGS(name, translateBitFunc, FlagBitType)
#define FCT_DECLARE_FLAGS(BitType)
vk::AccessFlagBits ToVkAccessFlagBits(AccessFlag flag)