From df8156cfe13d73a4f6c4cdb6862c89cc3a4bb379 Mon Sep 17 00:00:00 2001 From: "HuYingzhuo(hugo/hyzboy)" Date: Tue, 21 Feb 2023 18:36:42 +0800 Subject: [PATCH] support new VILConfig --- CMCore | 2 +- CMSceneGraph | 2 +- inc/hgl/graph/VK.h | 28 +++++++++++++++++++++++++--- src/SceneGraph/font/TextRender.cpp | 6 +----- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/CMCore b/CMCore index 47f40baa..ac5931ce 160000 --- a/CMCore +++ b/CMCore @@ -1 +1 @@ -Subproject commit 47f40baaab2278752e86762d92c4738e1317a22c +Subproject commit ac5931ce2602d45149e1c8baacf0805fa39f73f6 diff --git a/CMSceneGraph b/CMSceneGraph index 441c61c5..7312f272 160000 --- a/CMSceneGraph +++ b/CMSceneGraph @@ -1 +1 @@ -Subproject commit 441c61c5fdb0d625d84e664385a1226c28b48b36 +Subproject commit 7312f272adbdd6a6d57c96e53502ef4592705a9a diff --git a/inc/hgl/graph/VK.h b/inc/hgl/graph/VK.h index 6ce3e0a5..fbbc64b2 100644 --- a/inc/hgl/graph/VK.h +++ b/inc/hgl/graph/VK.h @@ -117,15 +117,37 @@ class Pipeline; struct VAConfig { - VkFormat format=PF_UNDEFINED; - bool instance=false; + VkFormat format; + bool instance; public: + VAConfig() + { + format=PF_UNDEFINED; + instance=false; + } + + VAConfig(const VkFormat fmt,bool inst=false) + { + format=fmt; + instance=inst; + } + CompOperatorMemcmp(const VAConfig &); }; -using VILConfig=Map; +class VILConfig:public Map +{ +public: + + using Map::Map; + + bool Add(const AnsiString &name,const VkFormat fmt,const bool inst=false) + { + return Map::Add(name,VAConfig(fmt,inst)); + } +}; class VertexInputLayout; using VIL=VertexInputLayout; diff --git a/src/SceneGraph/font/TextRender.cpp b/src/SceneGraph/font/TextRender.cpp index 0215f91e..70c01a1c 100644 --- a/src/SceneGraph/font/TextRender.cpp +++ b/src/SceneGraph/font/TextRender.cpp @@ -85,12 +85,8 @@ namespace hgl //文本渲染Position坐标全部是使用整数,这里强制要求Position输入流使用RGBA16I格式 { VILConfig vil_config; - VAConfig va_cfg; - va_cfg.format=VF_V4I16; - va_cfg.instance=false; - - vil_config.Add("Position",va_cfg); + vil_config.Add("Position",VF_V4I16); material_instance=db->CreateMaterialInstance(material,&vil_config); if(!material_instance)return(false);