42 lines
1.3 KiB
C
42 lines
1.3 KiB
C
#include "materialsystem/imaterialsystem.h"
|
|
#include "materialsystem/compiledshadermgr.h"
|
|
#include "tier1/utlvector.h"
|
|
#include "vulkan_state.h"
|
|
|
|
BEGIN_DEFINE_PIPELINE_LIBRARY(VertexDescription)
|
|
void AddLayout( int iIndex, int iStride );
|
|
void AddAttribute( int iBufferIndex, int iLocation, EVertexFormat eFormat, int iOffset );
|
|
void SetTopology( ETopologyMode eTopology );
|
|
|
|
VkPrimitiveTopology m_eTopology;
|
|
CUtlVector<VkVertexInputAttributeDescription> attributes;
|
|
CUtlVector<VkVertexInputBindingDescription> layouts;
|
|
END_DEFINE_PIPELINE_LIBRARY()
|
|
|
|
BEGIN_DEFINE_PIPELINE_LIBRARY(VertexTransform)
|
|
void SetShader( CCompiledShader *pShader );
|
|
|
|
CCompiledShader *m_pShader;
|
|
|
|
VkDescriptorSetLayout m_setLayouts[SHADER_STAGE_COUNT];
|
|
VkPipelineLayout m_layout;
|
|
END_DEFINE_PIPELINE_LIBRARY()
|
|
|
|
BEGIN_DEFINE_PIPELINE_LIBRARY(PixelShader)
|
|
void SetShader( CCompiledShader *pShader );
|
|
void SetDepthRequired( bool b );
|
|
|
|
CCompiledShader *m_pShader;
|
|
VkDescriptorSetLayout m_setLayouts[SHADER_STAGE_COUNT];
|
|
VkPipelineLayout m_layout;
|
|
bool m_bIsDepthRequired = false;
|
|
END_DEFINE_PIPELINE_LIBRARY()
|
|
|
|
BEGIN_DEFINE_PIPELINE_LIBRARY(PixelOutput)
|
|
void AddAttachment( EImageFormat eFormat );
|
|
void SetDepthRequired( bool b );
|
|
|
|
CUtlVector<VkFormat> m_eFormats = {};
|
|
bool m_bIsDepthRequired = false;
|
|
END_DEFINE_PIPELINE_LIBRARY()
|