splite to many header files from shader's node/param
This commit is contained in:
parent
35c89fed56
commit
c37a858524
2
CMCore
2
CMCore
@ -1 +1 @@
|
|||||||
Subproject commit 2d8da351ba88ffa0d5dee39268215090ac4785b7
|
Subproject commit 2d9765839e0446292ae96ce126c01ffb04bc30a7
|
@ -1 +1 @@
|
|||||||
Subproject commit 17b14af957b057de41e00752df9e9e58cf970eec
|
Subproject commit ddf56c70160fcb96b12af58beceed22e1a1a1aea
|
@ -1,8 +1,8 @@
|
|||||||
#ifndef HGL_SHADER_MAKER_INCLUDE
|
#ifndef HGL_GRAPH_SHADER_MAKER_INCLUDE
|
||||||
#define HGL_SHADER_MAKER_INCLUDE
|
#define HGL_GRAPH_SHADER_MAKER_INCLUDE
|
||||||
|
|
||||||
namespace hgl
|
namespace hgl
|
||||||
{
|
{
|
||||||
|
|
||||||
}//namespace hgl
|
}//namespace hgl
|
||||||
#endif//HGL_SHADER_MAKER_INCLUDE
|
#endif//HGL_GRAPH_SHADER_MAKER_INCLUDE
|
||||||
|
@ -1,80 +0,0 @@
|
|||||||
#ifndef HGL_SHADER_NODE_INCLUDE
|
|
||||||
#define HGL_SHADER_NODE_INCLUDE
|
|
||||||
|
|
||||||
#define SHADER_NODE_NAMESPACE hgl::graph::shader::node
|
|
||||||
#define BEGIN_SHADER_NODE_NAMESPACE namespace hgl{namespace graph{namespace shader{namespace node{
|
|
||||||
#define END_SHADER_NODE_NAMESPACE }}}}
|
|
||||||
|
|
||||||
BEGIN_SHADER_NODE_NAMESPACE
|
|
||||||
/**
|
|
||||||
* Shader 节点是所有Shader的基础,它可以是一个简单的计算,也可以是一段复杂的函数
|
|
||||||
*/
|
|
||||||
class Node
|
|
||||||
{
|
|
||||||
UTF8String type_name; ///<节点类型本身的名称
|
|
||||||
UTF8String name; ///<节点用户自定义名称
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
Node(const UTF8String &n){type_name=n;}
|
|
||||||
virtual ~Node()=default;
|
|
||||||
};//class Node
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 纯输入节点
|
|
||||||
*/
|
|
||||||
class Input:virtual public Node
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
ObjectList<InputParam> input_params;
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
using Node::Node;
|
|
||||||
virtual ~InputNode()=default;
|
|
||||||
};//class InputNode
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 纯输出节点,用于固管行为的向下一级节点输入数据,无输入部分
|
|
||||||
*/
|
|
||||||
class Output:virtual public Node
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
ObjectList<OutputParam> output_params;
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
using Node::Node;
|
|
||||||
virtual ~OutputNode()=default;
|
|
||||||
};//
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 输入输出节点
|
|
||||||
*/
|
|
||||||
class InputOutput:public Node
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
ObjectList<InputParam> input_params;
|
|
||||||
ObjectList<OutputParam> output_params;
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
using Node::Node;
|
|
||||||
virtual ~InputOutputNode()=default;
|
|
||||||
};//
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 最终节点,用于最终结果的一类节点,无输出部分
|
|
||||||
*/
|
|
||||||
class Finish:virtual public InputNode
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
using InputNode::InputNode;
|
|
||||||
virtual ~FinishNode()=default;
|
|
||||||
};//
|
|
||||||
BEGIN_SHADER_NODE_NAMESPACE
|
|
||||||
#endif//HGL_SHADER_NODE_INCLUDE
|
|
@ -1,12 +0,0 @@
|
|||||||
#ifndef HGL_SHADER_NODE_DEFINE_INCLUDE
|
|
||||||
#define HGL_SHADER_NODE_DEFINE_INCLUDE
|
|
||||||
|
|
||||||
BEGIN_SHADER_NODE_NAMESPACE
|
|
||||||
class Bool
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
|
|
||||||
};//class Bool
|
|
||||||
END_SHADER_NODE_NAMESPACE
|
|
||||||
#endif//HGL_SHADER_NODE_DEFINE_INCLUDE
|
|
12
inc/hgl/graph/shader/node/define.h
Normal file
12
inc/hgl/graph/shader/node/define.h
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#ifndef HGL_GRAPH_SHADER_NODE_DEFINE_INCLUDE
|
||||||
|
#define HGL_GRAPH_SHADER_NODE_DEFINE_INCLUDE
|
||||||
|
|
||||||
|
BEGIN_SHADER_NODE_NAMESPACE
|
||||||
|
class Bool
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
|
||||||
|
};//class Bool
|
||||||
|
END_SHADER_NODE_NAMESPACE
|
||||||
|
#endif//HGL_GRAPH_SHADER_NODE_DEFINE_INCLUDE
|
61
inc/hgl/graph/shader/node/finished.h
Normal file
61
inc/hgl/graph/shader/node/finished.h
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
#ifndef HGL_GRAPH_SHADER_NODE_FINISHED_INCLUDE
|
||||||
|
#define HGL_GRAPH_SHADER_NODE_FINISHED_INCLUDE
|
||||||
|
|
||||||
|
#include<hgl/graph/shader/node/in.h>
|
||||||
|
#include<hgl/graph/shader/param/in.h>
|
||||||
|
|
||||||
|
BEGIN_SHADER_NODE_NAMESPACE
|
||||||
|
/**
|
||||||
|
* 最终节点,用于最终结果的一类节点,无输出部分
|
||||||
|
*/
|
||||||
|
class Finished:public Input
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
using Input::Input;
|
||||||
|
virtual ~Finished()=default;
|
||||||
|
};//class Finished:public Input
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 顶点最终输出节点
|
||||||
|
*/
|
||||||
|
class VertexFinished:public Finished
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
VertexFinished():Finished("Vertex Output")
|
||||||
|
{
|
||||||
|
}
|
||||||
|
};//class VertexFinished:public FinishedNode
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 前向渲染最终输出节点
|
||||||
|
*/
|
||||||
|
class ForwardFinished:public Finished
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
ForwardFinished():Finished("Forward Output")
|
||||||
|
{
|
||||||
|
}
|
||||||
|
};//class ForwardFinished:public Finished
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GBuffer最终输出节点
|
||||||
|
*/
|
||||||
|
class GBufferFinished:public Finished
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
GBufferFinished():Finished("GBuffer Output")
|
||||||
|
{
|
||||||
|
SHADER_INPUT_PARAM(BaseColor, FLOAT_3)
|
||||||
|
SHADER_INPUT_PARAM(Normal, FLOAT_3)
|
||||||
|
SHADER_INPUT_PARAM(Metallic, FLOAT_1)
|
||||||
|
SHADER_INPUT_PARAM(Roughness, FLOAT_1)
|
||||||
|
SHADER_INPUT_PARAM(Opacity, FLOAT_1)
|
||||||
|
SHADER_INPUT_PARAM(DepthOffset, FLOAT_1)
|
||||||
|
}
|
||||||
|
};//class GBufferFinished:public FinishedNode
|
||||||
|
END_SHADER_NODE_NAMESPACE
|
||||||
|
#endif//HGL_GRAPH_SHADER_NODE_FINISHED_INCLUDE
|
23
inc/hgl/graph/shader/node/in.h
Normal file
23
inc/hgl/graph/shader/node/in.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#ifndef HGL_GRAPH_SHADER_NODE_INPUT_INCLUDE
|
||||||
|
#define HGL_GRAPH_SHADER_NODE_INPUT_INCLUDE
|
||||||
|
|
||||||
|
#include<hgl/graph/shader/node/node.h>
|
||||||
|
#include<hgl/graph/shader/param/in.h>
|
||||||
|
|
||||||
|
BEGIN_SHADER_NODE_NAMESPACE
|
||||||
|
/**
|
||||||
|
* 纯输入节点
|
||||||
|
*/
|
||||||
|
class Input:public Node
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
|
||||||
|
ObjectList<InputParam> input_params;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
using Node::Node;
|
||||||
|
virtual ~Input()=default;
|
||||||
|
};//class InputNode
|
||||||
|
END_SHADER_NODE_NAMESPACE
|
||||||
|
#endif//HGL_GRAPH_SHADER_NODE_INPUT_INCLUDE
|
24
inc/hgl/graph/shader/node/inout.h
Normal file
24
inc/hgl/graph/shader/node/inout.h
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#ifndef HGL_GRAPH_SHADER_NODE_INOUT_INCLUDE
|
||||||
|
#define HGL_GRAPH_SHADER_NODE_INOUT_INCLUDE
|
||||||
|
|
||||||
|
#include<hgl/graph/shader/node/node.h>
|
||||||
|
#include<hgl/graph/shader/param/in.h>
|
||||||
|
#include<hgl/graph/shader/param/out.h>
|
||||||
|
BEGIN_SHADER_NODE_NAMESPACE
|
||||||
|
/**
|
||||||
|
* 输入输出节点
|
||||||
|
*/
|
||||||
|
class InputOutput:public Node
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
|
||||||
|
ObjectList<InputParam> input_params;
|
||||||
|
ObjectList<OutputParam> output_params;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
using Node::Node;
|
||||||
|
virtual ~InputOutput()=default;
|
||||||
|
};//class InputOutput:public Node
|
||||||
|
END_SHADER_NODE_NAMESPACE
|
||||||
|
#endif//HGL_GRAPH_SHADER_NODE_INOUT_INCLUDE
|
26
inc/hgl/graph/shader/node/node.h
Normal file
26
inc/hgl/graph/shader/node/node.h
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#ifndef HGL_GRAPH_SHADER_NODE_INCLUDE
|
||||||
|
#define HGL_GRAPH_SHADER_NODE_INCLUDE
|
||||||
|
|
||||||
|
#include<hgl/type/BaseString.h>
|
||||||
|
#include<hgl/type/List.h>
|
||||||
|
|
||||||
|
#define SHADER_NODE_NAMESPACE hgl::graph::shader::node
|
||||||
|
#define BEGIN_SHADER_NODE_NAMESPACE namespace hgl{namespace graph{namespace shader{namespace node{
|
||||||
|
#define END_SHADER_NODE_NAMESPACE }}}}
|
||||||
|
|
||||||
|
BEGIN_SHADER_NODE_NAMESPACE
|
||||||
|
/**
|
||||||
|
* Shader 节点是所有Shader的基础,它可以是一个简单的计算,也可以是一段复杂的函数
|
||||||
|
*/
|
||||||
|
class Node
|
||||||
|
{
|
||||||
|
UTF8String type_name; ///<节点类型本身的名称
|
||||||
|
UTF8String name; ///<节点用户自定义名称
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
Node(const UTF8String &n){type_name=n;}
|
||||||
|
virtual ~Node()=default;
|
||||||
|
};//class Node
|
||||||
|
END_SHADER_NODE_NAMESPACE
|
||||||
|
#endif//HGL_GRAPH_SHADER_NODE_INCLUDE
|
22
inc/hgl/graph/shader/node/out.h
Normal file
22
inc/hgl/graph/shader/node/out.h
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#ifndef HGL_GRAPH_SHADER_NODE_OUTPUT_INCLUDE
|
||||||
|
#define HGL_GRAPH_SHADER_NODE_OUTPUT_INCLUDE
|
||||||
|
|
||||||
|
#include<hgl/graph/shader/node/node.h>
|
||||||
|
#include<hgl/graph/shader/param/output.h>
|
||||||
|
BEGIN_SHADER_NODE_NAMESPACE
|
||||||
|
/**
|
||||||
|
* 纯输出节点,用于固定行为的向下一级节点输入数据,无输入部分
|
||||||
|
*/
|
||||||
|
class Output:public Node
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
|
||||||
|
ObjectList<OutputParam> output_params;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
using Node::Node;
|
||||||
|
virtual ~Output()=default;
|
||||||
|
};//class Output:public Node
|
||||||
|
END_SHADER_NODE_NAMESPACE
|
||||||
|
#endif//HGL_GRAPH_SHADER_NODE_OUTPUT_INCLUDE
|
@ -1,7 +1,8 @@
|
|||||||
#ifndef HGL_SHADER_TEXTURE_NODE_INCLUDE
|
#ifndef HGL_GRAPH_SHADER_NODE_TEXTURE_INCLUDE
|
||||||
#define HGL_SHADER_TEXTURE_NODE_INCLUDE
|
#define HGL_GRAPH_SHADER_NODE_TEXTURE_INCLUDE
|
||||||
|
|
||||||
#include<hgl/graph/shader/VectorNode.h>
|
#include<hgl/graph/shader/node/vector.h>
|
||||||
|
#include<hgl/graph/shader/node/inout.h>
|
||||||
BEGIN_SHADER_NODE_NAMESPACE
|
BEGIN_SHADER_NODE_NAMESPACE
|
||||||
class texture1D:public InputOutput
|
class texture1D:public InputOutput
|
||||||
{
|
{
|
||||||
@ -33,7 +34,7 @@ public:
|
|||||||
}
|
}
|
||||||
};//class texture3D:public InputOutput
|
};//class texture3D:public InputOutput
|
||||||
|
|
||||||
class TextureCube:public InputOutput
|
class textureCube:public InputOutput
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -43,4 +44,4 @@ public:
|
|||||||
}
|
}
|
||||||
};//class TextureCube:public InputOutput
|
};//class TextureCube:public InputOutput
|
||||||
END_SHADER_NODE_NAMESPACE
|
END_SHADER_NODE_NAMESPACE
|
||||||
#endif//HGL_SHADER_TEXTURE_NODE_INCLUDE
|
#endif//HGL_GRAPH_SHADER_NODE_TEXTURE_INCLUDE
|
@ -1,9 +1,10 @@
|
|||||||
#ifndef HGL_GRAPH_SHADER_VECTOR_NODE_INCLUDE
|
#ifndef HGL_GRAPH_SHADER_NODE_VECTOR_INCLUDE
|
||||||
#define HGL_GRAPH_SHADER_VECTOR_NODE_INCLUDE
|
#define HGL_GRAPH_SHADER_NODE_VECTOR_INCLUDE
|
||||||
|
|
||||||
#include<hgl/graph/shader/ShaderParam.h>
|
#include<hgl/graph/shader/param/out.h>
|
||||||
#include<hgl/graph/shader/ShaderNode.h>
|
#include<hgl/graph/shader/node/out.h>
|
||||||
BEGIN_SHADER_NAMESPACE
|
|
||||||
|
BEGIN_SHADER_NODE_NAMESPACE
|
||||||
class float1:public Output
|
class float1:public Output
|
||||||
{
|
{
|
||||||
float x;
|
float x;
|
||||||
@ -51,5 +52,5 @@ public:
|
|||||||
SHADER_OUTPUT_PARAM(XYZW,FLOAT_4)
|
SHADER_OUTPUT_PARAM(XYZW,FLOAT_4)
|
||||||
}
|
}
|
||||||
};//class float4:public Output
|
};//class float4:public Output
|
||||||
END_SHADER_NAMESPACE
|
END_SHADER_NODE_NAMESPACE
|
||||||
#endif//HGL_GRAPH_SHADER_VECTOR_NODE_INCLUDE
|
#endif//HGL_GRAPH_SHADER_NODE_VECTOR_INCLUDE
|
35
inc/hgl/graph/shader/param/in.h
Normal file
35
inc/hgl/graph/shader/param/in.h
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
#ifndef HGL_GRAPH_SHADER_INPUT_PARAM_INCLUDE
|
||||||
|
#define HGL_GRAPH_SHADER_INPUT_PARAM_INCLUDE
|
||||||
|
|
||||||
|
#include<hgl/graph/shader/param/param.h>
|
||||||
|
|
||||||
|
BEGIN_SHADER_NODE_NAMESPACE
|
||||||
|
|
||||||
|
#define SHADER_INPUT_PARAM(name,type) input_params.Add(new InputParam(#name,ParamType::type));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 输入参数定义
|
||||||
|
*/
|
||||||
|
class InputParam:public Param
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
using Param::Param;
|
||||||
|
virtual ~InputParam()=default;
|
||||||
|
};//class InputParam:public Param
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数值类输入参数定义
|
||||||
|
*/
|
||||||
|
template<typename T>
|
||||||
|
class InputParamNumber:public InputParam
|
||||||
|
{
|
||||||
|
bool is_const;
|
||||||
|
T min_value;
|
||||||
|
T max_value;
|
||||||
|
|
||||||
|
public:
|
||||||
|
};//class InputParamNumber:public InputParam
|
||||||
|
|
||||||
|
END_SHADER_NODE_NAMESPACE
|
||||||
|
#endif//HGL_GRAPH_SHADER_INPUT_PARAM_INCLUDE
|
35
inc/hgl/graph/shader/param/out.h
Normal file
35
inc/hgl/graph/shader/param/out.h
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
#ifndef HGL_GRAPH_SHADER_OUTPUT_PARAM_INCLUDE
|
||||||
|
#define HGL_GRAPH_SHADER_OUTPUT_PARAM_INCLUDE
|
||||||
|
|
||||||
|
#include<hgl/graph/shader/param/in.h>
|
||||||
|
#include<hgl/graph/shader/node/node.h>
|
||||||
|
#include<hgl/type/Set.h>
|
||||||
|
#include<hgl/type/Pair.h>
|
||||||
|
|
||||||
|
BEGIN_SHADER_NODE_NAMESPACE
|
||||||
|
|
||||||
|
#define SHADER_OUTPUT_PARAM(name,type) output_params.Add(new Param(#name,ParamType::type));
|
||||||
|
|
||||||
|
using namespace hgl;
|
||||||
|
|
||||||
|
using InputNode=Pair<node::Node *,InputParam *>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 输出参数定义
|
||||||
|
*/
|
||||||
|
class OutputParam:public Param
|
||||||
|
{
|
||||||
|
Set<InputNode> join_param; //对应的多个输入节点
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
using Param::Param;
|
||||||
|
virtual ~OutputParam()=default;
|
||||||
|
|
||||||
|
bool Join(node::Node *,InputParam *ip); //增加一个输入节点
|
||||||
|
void Break(node::Node *,InputParam *ip); //断开一个输入节点
|
||||||
|
void BreakAll(); //断开所有输入节点
|
||||||
|
};//class OutputParam:public Param
|
||||||
|
|
||||||
|
END_SHADER_NODE_NAMESPACE
|
||||||
|
#endif//HGL_GRAPH_SHADER_OUTPUT_PARAM_INCLUDE
|
@ -1,8 +1,11 @@
|
|||||||
#ifndef HGL_SHADER_PARAM_TYPE_INCLUDE
|
#ifndef HGL_GRAPH_SHADER_PARAM_INCLUDE
|
||||||
#define HGL_SHADER_PARAM_TYPE_INCLUDE
|
#define HGL_GRAPH_SHADER_PARAM_INCLUDE
|
||||||
|
|
||||||
#define BEGIN_SHADER_NAMESPACE namespace hgl{namespace graph{namespace shader{
|
#include<hgl/type/BaseString.h>
|
||||||
#undef END_SHADER_NAMESPACE }}}
|
|
||||||
|
#define SHADER_NAMESPACE hgl::graph::shader
|
||||||
|
#define BEGIN_SHADER_NAMESPACE namespace hgl{namespace graph{namespace shader{
|
||||||
|
#define END_SHADER_NAMESPACE }}}
|
||||||
|
|
||||||
BEGIN_SHADER_NAMESPACE
|
BEGIN_SHADER_NAMESPACE
|
||||||
/**
|
/**
|
||||||
@ -65,30 +68,27 @@ BEGIN_SHADER_NAMESPACE
|
|||||||
|
|
||||||
BEGIN_RANGE =FLOAT_1,
|
BEGIN_RANGE =FLOAT_1,
|
||||||
END_RANGE =NODE,
|
END_RANGE =NODE,
|
||||||
RANGE_SIZE =(END_RAGE-BEGIN_RANGE+1)
|
RANGE_SIZE =(END_RANGE-BEGIN_RANGE+1)
|
||||||
};//enum class ParamType
|
};//enum class ParamType
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 参数定义
|
* 参数定义
|
||||||
*/
|
*/
|
||||||
struct Param
|
class Param
|
||||||
{
|
{
|
||||||
UTF8String name; //参数名称
|
UTF8String name; //参数名称
|
||||||
ParamType type; //类型
|
ParamType type; //类型
|
||||||
};//struct Param
|
|
||||||
/**
|
|
||||||
* 数值类输入参数定义
|
|
||||||
*/
|
|
||||||
template<typename T>
|
|
||||||
struct ParamNumber:public Param
|
|
||||||
{
|
|
||||||
bool is_const;
|
|
||||||
T min_value;
|
|
||||||
T max_value;
|
|
||||||
};//struct ParamNumber:public Param
|
|
||||||
|
|
||||||
#define SHADER_INPUT_PARAM(name,type) input_params.Add(new Param(#name,ParamType::type);
|
public:
|
||||||
#define SHADER_OUTPUT_PARAM(name,type) output_params.Add(new Param(#name,ParamType::type);
|
|
||||||
|
Param(const UTF8String &n,const ParamType &t)
|
||||||
|
{
|
||||||
|
name=n;
|
||||||
|
type=t;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual ~Param()=default;
|
||||||
|
};//class Param
|
||||||
|
|
||||||
END_SHADER_NAMESPACE
|
END_SHADER_NAMESPACE
|
||||||
#endif//HGL_SHADER_PARAM_TYPE_INCLUDE
|
#endif//HGL_GRAPH_SHADER_PARAM_INCLUDE
|
@ -1,11 +1,26 @@
|
|||||||
SET(GRAPH_SHADER_INCLUDE ${ROOT_INCLUDE_PATH}/hgl/graph/shader)
|
SET(GRAPH_SHADER_HEADER_PATH ${ROOT_INCLUDE_PATH}/hgl/graph/shader)
|
||||||
|
SET(GRAPH_SHADER_NODE_PATH ${GRAPH_SHADER_HEADER_PATH}/node)
|
||||||
|
SET(GRAPH_SHADER_PARAM_PATH ${GRAPH_SHADER_HEADER_PATH}/param)
|
||||||
|
|
||||||
SET(GRAPH_SHADER_HEADER ${GRAPH_SHADER_INCLUDE}/glsl2spv.h)
|
file(GLOB GRAPH_SHADER_NODE_HEADER_FILES ${GRAPH_SHADER_NODE_PATH}/*.h)
|
||||||
|
|
||||||
SET(GRAPH_SHADER_SOURCE glsl2spv.cpp)
|
source_group("Shader Maker\\Node" FILES ${GRAPH_SHADER_NODE_HEADER_FILES})
|
||||||
|
|
||||||
SOURCE_GROUP("Header Files" FILES ${GRAPH_SHADER_HEADER})
|
file(GLOB GRAPH_SHADER_PARAM_HEADER_FILES ${GRAPH_SHADER_PARAM_PATH}/*.h)
|
||||||
SOURCE_GROUP("Source Files" FILES ${GRAPH_SHADER_SOURCE})
|
|
||||||
|
source_group("Shader Maker\\Param" FILES ${GRAPH_SHADER_PARAM_HEADER_FILES})
|
||||||
|
|
||||||
|
SET(GRAPH_SHADER_MAKER_SOURCE DefaultShader.cpp)
|
||||||
|
|
||||||
|
source_group("Shader Maker" FILES ${GRAPH_SHADER_MAKER_SOURCE})
|
||||||
|
|
||||||
|
SET(GRAPH_SPV_SOURCE ${GRAPH_SHADER_HEADER_PATH}/glsl2spv.h
|
||||||
|
glsl2spv.cpp)
|
||||||
|
|
||||||
|
SOURCE_GROUP("SPIR-V" FILES ${GRAPH_SPV_SOURCE})
|
||||||
|
|
||||||
|
add_cm_library(ULRE.Shader "ULRE" ${GRAPH_SHADER_NODE_HEADER_FILES}
|
||||||
|
${GRAPH_SHADER_PARAM_HEADER_FILES}
|
||||||
|
${GRAPH_SHADER_MAKER_SOURCE}
|
||||||
|
${GRAPH_SPV_SOURCE})
|
||||||
|
|
||||||
add_cm_library(ULRE.Shader "ULRE" ${GRAPH_SHADER_HEADER}
|
|
||||||
${GRAPH_SHADER_SOURCE})
|
|
11
src/RenderDevice/Shader/DefaultShader.cpp
Normal file
11
src/RenderDevice/Shader/DefaultShader.cpp
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#include<hgl/graph/shader/node/finished.h>
|
||||||
|
|
||||||
|
BEGIN_SHADER_NAMESPACE
|
||||||
|
bool CreateDefaultMaterial()
|
||||||
|
{
|
||||||
|
node::Finished *vs_fin=new node::VertexFinished();
|
||||||
|
node::Finished *fs_fin=new node::ForwardFinished();
|
||||||
|
|
||||||
|
return(false);
|
||||||
|
}
|
||||||
|
END_SHADER_NAMESPACE
|
Loading…
x
Reference in New Issue
Block a user