37 lines
791 B
C++
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
|