Plasma Engine  2.0
Loading...
Searching...
No Matches
StateVulkan.h
1
2#pragma once
3
4#include <RendererFoundation/State/State.h>
5
6#include <vulkan/vulkan.hpp>
7
8class PL_RENDERERVULKAN_DLL plGALBlendStateVulkan : public plGALBlendState
9{
10public:
11 PL_ALWAYS_INLINE const vk::PipelineColorBlendStateCreateInfo* GetBlendState() const;
12
13protected:
14 friend class plGALDeviceVulkan;
15 friend class plMemoryUtils;
16
18
20
21 virtual plResult InitPlatform(plGALDevice* pDevice) override;
22
23 virtual plResult DeInitPlatform(plGALDevice* pDevice) override;
24
25 vk::PipelineColorBlendStateCreateInfo m_blendState = {};
26 vk::PipelineColorBlendAttachmentState m_blendAttachmentState[8] = {};
27};
28
29class PL_RENDERERVULKAN_DLL plGALDepthStencilStateVulkan : public plGALDepthStencilState
30{
31public:
32 PL_ALWAYS_INLINE const vk::PipelineDepthStencilStateCreateInfo* GetDepthStencilState() const;
33
34protected:
35 friend class plGALDeviceVulkan;
36 friend class plMemoryUtils;
37
39
41
42 virtual plResult InitPlatform(plGALDevice* pDevice) override;
43
44 virtual plResult DeInitPlatform(plGALDevice* pDevice) override;
45
46 vk::PipelineDepthStencilStateCreateInfo m_depthStencilState = {};
47};
48
49class PL_RENDERERVULKAN_DLL plGALRasterizerStateVulkan : public plGALRasterizerState
50{
51public:
52 PL_ALWAYS_INLINE const vk::PipelineRasterizationStateCreateInfo* GetRasterizerState() const;
53
54protected:
55 friend class plGALDeviceVulkan;
56 friend class plMemoryUtils;
57
59
61
62 virtual plResult InitPlatform(plGALDevice* pDevice) override;
63
64 virtual plResult DeInitPlatform(plGALDevice* pDevice) override;
65
66 vk::PipelineRasterizationStateCreateInfo m_rasterizerState = {};
67};
68
69class PL_RENDERERVULKAN_DLL plGALSamplerStateVulkan : public plGALSamplerState
70{
71public:
72 PL_ALWAYS_INLINE const vk::DescriptorImageInfo& GetImageInfo() const;
73
74protected:
75 friend class plGALDeviceVulkan;
76 friend class plMemoryUtils;
77
80
81 virtual plResult InitPlatform(plGALDevice* pDevice) override;
82 virtual plResult DeInitPlatform(plGALDevice* pDevice) override;
83
84 vk::DescriptorImageInfo m_resourceImageInfo;
85};
86
87
88#include <RendererVulkan/State/Implementation/StateVulkan_inl.h>
Definition State.h:7
Definition StateVulkan.h:9
Definition State.h:20
Definition StateVulkan.h:30
The plRenderDevice class is the primary interface for interactions with rendering APIs It contains a ...
Definition Device.h:19
The Vulkan device implementation of the graphics abstraction layer.
Definition DeviceVulkan.h:58
Definition State.h:33
Definition StateVulkan.h:50
Definition State.h:46
Definition StateVulkan.h:70
This class provides functions to work on raw memory.
Definition MemoryUtils.h:26
Definition Descriptors.h:70
Describes the settings for a new rasterizer state. See plGALDevice::CreateRasterizerState.
Definition Descriptors.h:105
Definition Descriptors.h:118
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54