Files
funnygame/public/materialsystem/ishader.h
2025-07-30 23:53:26 +03:00

37 lines
791 B
C++

#ifndef MATERIAL_SHADER_H
#define MATERIAL_SHADER_H
#include "tier0/platform.h"
enum EShaderInputType
{
SHADER_INPUT_TYPE_POINTER,
SHADER_INPUT_TYPE_INT,
SHADER_INPUT_TYPE_FLOAT,
SHADER_INPUT_TYPE_FLOAT2,
SHADER_INPUT_TYPE_FLOAT3,
SHADER_INPUT_TYPE_FLOAT4,
SHADER_INPUT_TYPE_MATRIX,
SHADER_INPUT_TYPE_IMAGE,
SHADER_INPUT_TYPE_TEXTURE,
SHADER_INPUT_TYPE_MODEL,
};
abstract_class IShader
{
public:
virtual void CreateShaderParameter( const char *szName, uint32_t binding, EShaderInputType eType, bool bArray ) = 0;
virtual void CreateMaterialParameter( const char *szName, uint32_t binding, EShaderInputType eType, bool bArray ) = 0;
virtual void CreateConstants( uint32_t nSize ) = 0;
virtual void SetShaderParameter( const char *szName, void *pData ) = 0;
};
#endif