92 lines
1.7 KiB
C
Raw Normal View History

#ifndef HGL_GRAPH_SHADER_PARAM_INCLUDE
#define HGL_GRAPH_SHADER_PARAM_INCLUDE
2019-12-06 21:45:51 +08:00
#include<hgl/type/BaseString.h>
2019-12-10 22:12:09 +08:00
#include<hgl/graph/shader/common.h>
2019-12-10 22:12:09 +08:00
BEGIN_SHADER_PARAM_NAMESPACE
2019-12-06 21:45:51 +08:00
/**
*
*/
enum class ParamType
{
BOOL=1,
FLOAT,INT,UINT,MATRIX, //不区分1/2/3/4通道数量的类型
FLOAT_1,
FLOAT_2,
FLOAT_3,
FLOAT_4,
INT_1,
INT_2,
INT_3,
INT_4,
UINT_1,
UINT_2,
UINT_3,
UINT_4,
MAT3x3,
MAT3x4,
MAT4x4,
TEXTURE_1D,
TEXTURE_2D,
TEXTURE_3D,
TEXTURE_CUBE,
TEXTURE_1D_ARRAY,
TEXTURE_2D_ARRAY,
TEXTURE_CUBE_ARRAY,
FLOAT_1_STREAM,
FLOAT_2_STREAM,
FLOAT_3_STREAM,
FLOAT_4_STREAM,
INT_1_STREAM,
INT_2_STREAM,
INT_3_STREAM,
INT_4_STREAM,
UINT_1_STREAM,
UINT_2_STREAM,
UINT_3_STREAM,
UINT_4_STREAM,
ARRAY_1D, //阵列
ARRAY_2D, //2D阵列
UBO, //UBO name
NODE, //另一个节点,只可做为输入参数
BEGIN_RANGE =FLOAT_1,
END_RANGE =NODE,
RANGE_SIZE =(END_RANGE-BEGIN_RANGE+1)
2019-12-06 21:45:51 +08:00
};//enum class ParamType
/**
*
*/
class Param
2019-12-06 21:45:51 +08:00
{
UTF8String name; //参数名称
ParamType type; //类型
public:
Param(const UTF8String &n,const ParamType &t)
{
name=n;
type=t;
}
virtual ~Param()=default;
};//class Param
2019-12-06 21:45:51 +08:00
2019-12-10 22:12:09 +08:00
END_SHADER_PARAM_NAMESPACE
#endif//HGL_GRAPH_SHADER_PARAM_INCLUDE