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 ~VK_RasterizationState() override;
15 void create() override;
16 vk::PipelineRasterizationStateCreateInfo& rasterizationStateCreateInfo() { return m_rasterizationStateCreateInfo; }
17 vk::PipelineMultisampleStateCreateInfo& multisampleStateCreateInfo() { return m_multisampleStateCreateInfo; }
18 private:
20 vk::PipelineRasterizationStateCreateInfo m_rasterizationStateCreateInfo;
21 vk::PipelineMultisampleStateCreateInfo m_multisampleStateCreateInfo;
22 vk::PolygonMode convertPolygonMode(PolygonMode mode) const
23 {
24 switch (mode) {
25 case PolygonMode::Fill: return vk::PolygonMode::eFill;
26 case PolygonMode::Line: return vk::PolygonMode::eLine;
27 case PolygonMode::Point: return vk::PolygonMode::ePoint;
28 default: throw std::runtime_error("Unsupported PolygonMode");
29 }
30 }
31
32 vk::CullModeFlags convertCullMode(CullMode mode) const
33 {
34 switch (mode) {
35 case CullMode::None: return vk::CullModeFlagBits::eNone;
36 case CullMode::Front: return vk::CullModeFlagBits::eFront;
37 case CullMode::Back: return vk::CullModeFlagBits::eBack;
38 case CullMode::FrontAndBack: return vk::CullModeFlagBits::eFrontAndBack;
39 default: throw std::runtime_error("Unsupported CullMode");
40 }
41 }
42
43 vk::FrontFace convertFrontFace(FrontFace face) const
44 {
45 switch (face) {
46 case FrontFace::Clockwise: return vk::FrontFace::eClockwise;
47 case FrontFace::CounterClockwise: return vk::FrontFace::eCounterClockwise;
48 default: throw std::runtime_error("Unsupported FrontFace");
49 }
50 }
51 };
52}
53
54
55
56#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