2019-12-10 21:52:10 +08:00
|
|
|
|
#ifndef HGL_GRAPH_SHADER_PARAM_INCLUDE
|
|
|
|
|
#define HGL_GRAPH_SHADER_PARAM_INCLUDE
|
2019-12-06 21:45:51 +08:00
|
|
|
|
|
2019-12-10 21:52:10 +08:00
|
|
|
|
#include<hgl/type/BaseString.h>
|
2019-12-10 22:12:09 +08:00
|
|
|
|
#include<hgl/graph/shader/common.h>
|
2019-12-10 21:52:10 +08:00
|
|
|
|
|
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,
|
2019-12-10 21:52:10 +08:00
|
|
|
|
RANGE_SIZE =(END_RANGE-BEGIN_RANGE+1)
|
2019-12-06 21:45:51 +08:00
|
|
|
|
};//enum class ParamType
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 参数定义
|
|
|
|
|
*/
|
2019-12-10 21:52:10 +08:00
|
|
|
|
class Param
|
2019-12-06 21:45:51 +08:00
|
|
|
|
{
|
|
|
|
|
UTF8String name; //参数名称
|
|
|
|
|
ParamType type; //类型
|
|
|
|
|
|
2019-12-10 21:52:10 +08:00
|
|
|
|
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
|
2019-12-10 21:52:10 +08:00
|
|
|
|
#endif//HGL_GRAPH_SHADER_PARAM_INCLUDE
|