From eb51df8dd066f512932f6dab4b62b91c6950202b Mon Sep 17 00:00:00 2001 From: "HuYingzhuo(hugo/hyzboy)" Date: Thu, 21 Sep 2023 21:36:37 +0800 Subject: [PATCH] Added few codes of ShaderCreateInfoGeometry --- inc/hgl/shadergen/ShaderCreateInfoGeometry.h | 6 +++++ src/ShaderGen/ShaderCreateInfoGeometry.cpp | 28 ++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/inc/hgl/shadergen/ShaderCreateInfoGeometry.h b/inc/hgl/shadergen/ShaderCreateInfoGeometry.h index cec45bc0..075fbede 100644 --- a/inc/hgl/shadergen/ShaderCreateInfoGeometry.h +++ b/inc/hgl/shadergen/ShaderCreateInfoGeometry.h @@ -5,9 +5,15 @@ namespace hgl{namespace graph{ class ShaderCreateInfoGeometry:public ShaderCreateInfo { + AnsiString input_prim; + AnsiString output_prim; + uint32_t max_vertices; + public: ShaderCreateInfoGeometry(MaterialDescriptorInfo *m):ShaderCreateInfo(VK_SHADER_STAGE_GEOMETRY_BIT,m){} ~ShaderCreateInfoGeometry()=default; + + bool SetGeom(const Prim &ip,const Prim &op,const uint32_t mv); }; }}//namespace hgl::graph \ No newline at end of file diff --git a/src/ShaderGen/ShaderCreateInfoGeometry.cpp b/src/ShaderGen/ShaderCreateInfoGeometry.cpp index e69de29b..9b108bc4 100644 --- a/src/ShaderGen/ShaderCreateInfoGeometry.cpp +++ b/src/ShaderGen/ShaderCreateInfoGeometry.cpp @@ -0,0 +1,28 @@ +#include + +namespace hgl +{ + namespace graph + { + bool ShaderCreateInfoGeometry::SetGeom(const Prim &ip,const Prim &op,const uint32_t mv) + { + if(ip==Prim::Points )input_prim="points";else + if(ip==Prim::Lines )input_prim="lines";else + if(ip==Prim::LinesAdj )input_prim="lines_adjacency";else + if(ip==Prim::Triangles )input_prim="triangles";else + if(ip==Prim::TrianglesAdj )input_prim="triangles_adjacency";else + return(false); + + if(op==Prim::Points )output_prim="points";else + if(op==Prim::LineStrip )output_prim="line_strip";else + if(op==Prim::TriangleStrip )output_prim="triangle_strip";else + return(false); + + if(mv==0) + return(false); + + max_vertices=mv; + return(true); + } + }//namespace graph +}//namespace hgl