#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