FCT
载入中...
搜索中...
未找到
VK_RasterizationState.h
浏览该文件的文档.
1//
2// Created by Administrator on 2025/3/23.
3//
4#include "../ThirdParty.h"
6#ifndef VK_RASTERIZATIONSTATE_H
7#define VK_RASTERIZATIONSTATE_H
8namespace FCT
9{
10 class VK_Context;
12 public:
14 void create() override;
15 vk::PipelineRasterizationStateCreateInfo& rasterizationStateCreateInfo() { return m_rasterizationStateCreateInfo; }
16 vk::PipelineMultisampleStateCreateInfo& multisampleStateCreateInfo() { return m_multisampleStateCreateInfo; }
17 private:
19 vk::PipelineRasterizationStateCreateInfo m_rasterizationStateCreateInfo;
20 vk::PipelineMultisampleStateCreateInfo m_multisampleStateCreateInfo;
21 vk::PolygonMode convertPolygonMode(PolygonMode mode) const
22 {
23 switch (mode) {
24 case PolygonMode::Fill: return vk::PolygonMode::eFill;
25 case PolygonMode::Line: return vk::PolygonMode::eLine;
26 case PolygonMode::Point: return vk::PolygonMode::ePoint;
27 default: throw std::runtime_error("Unsupported PolygonMode");
28 }
29 }
30
31 vk::CullModeFlags convertCullMode(CullMode mode) const
32 {
33 switch (mode) {
34 case CullMode::None: return vk::CullModeFlagBits::eNone;
35 case CullMode::Front: return vk::CullModeFlagBits::eFront;
36 case CullMode::Back: return vk::CullModeFlagBits::eBack;
37 case CullMode::FrontAndBack: return vk::CullModeFlagBits::eFrontAndBack;
38 default: throw std::runtime_error("Unsupported CullMode");
39 }
40 }
41
42 vk::FrontFace convertFrontFace(FrontFace face) const
43 {
44 switch (face) {
45 case FrontFace::Clockwise: return vk::FrontFace::eClockwise;
46 case FrontFace::CounterClockwise: return vk::FrontFace::eCounterClockwise;
47 default: throw std::runtime_error("Unsupported FrontFace");
48 }
49 }
50 };
51}
52
53
54
55#endif //VK_RASTERIZATIONSTATE_H
vk::CullModeFlags convertCullMode(CullMode mode) const
vk::PolygonMode convertPolygonMode(PolygonMode mode) const
vk::FrontFace convertFrontFace(FrontFace face) const
vk::PipelineRasterizationStateCreateInfo & rasterizationStateCreateInfo()
vk::PipelineMultisampleStateCreateInfo & multisampleStateCreateInfo()
vk::PipelineRasterizationStateCreateInfo m_rasterizationStateCreateInfo
vk::PipelineMultisampleStateCreateInfo m_multisampleStateCreateInfo