test ok that LoadPureColor2D material from file.
This commit is contained in:
parent
019e9964fa
commit
bead8128b7
2
CMCore
2
CMCore
@ -1 +1 @@
|
||||
Subproject commit d5264e1da655390bdef2ce99550024c69b7c4cb1
|
||||
Subproject commit 15b86eaf3bf661cff9f21d9b53a334a7b5e358e4
|
@ -7,7 +7,7 @@ Length 16
|
||||
Stage Fragment
|
||||
Code
|
||||
{
|
||||
vec4 Color
|
||||
vec4 Color;
|
||||
}
|
||||
|
||||
#Vertex
|
||||
|
@ -7,7 +7,7 @@ Length 16
|
||||
Stage Vertex
|
||||
Code
|
||||
{
|
||||
vec4 Color
|
||||
vec4 Color;
|
||||
}
|
||||
|
||||
#VertexInput
|
||||
|
@ -25,6 +25,8 @@ constexpr float position_data[VERTEX_COUNT*2]=
|
||||
|
||||
constexpr uint DRAW_OBJECT_COUNT=12;
|
||||
|
||||
#define USE_MATERIAL_FILE true //是否使用材质文件
|
||||
|
||||
class TestApp:public VulkanApplicationFramework
|
||||
{
|
||||
private:
|
||||
@ -52,7 +54,11 @@ private:
|
||||
cfg.coordinate_system=CoordinateSystem2D::NDC;
|
||||
cfg.local_to_world=true;
|
||||
|
||||
AutoDelete<mtl::MaterialCreateInfo> mci=mtl::CreatePureColor2D(&cfg);
|
||||
#ifndef USE_MATERIAL_FILE
|
||||
AutoDelete<mtl::MaterialCreateInfo> mci=mtl::CreatePureColor2D(&cfg); //走程序内置材质创建函数
|
||||
#else
|
||||
AutoDelete<mtl::MaterialCreateInfo> mci=LoadMaterialFromFile("Std2D/PureColor2D",&cfg); //走材质文件加载
|
||||
#endif//USE_MATERIAL_FILE
|
||||
|
||||
material=db->CreateMaterial(mci);
|
||||
|
||||
|
@ -39,6 +39,17 @@ MaterialCreateInfo *CreatePureTexture2D(const Material2DCreateConfig *);
|
||||
MaterialCreateInfo *CreateRectTexture2D(Material2DCreateConfig *);
|
||||
MaterialCreateInfo *CreateRectTexture2DArray(Material2DCreateConfig *);
|
||||
|
||||
MaterialCreateInfo *LoadMaterialFromFile(const AnsiString &,const Material2DCreateConfig *);
|
||||
// 为什么有了LoadMaterialFromFile,还需要保留以上Create系列函数?
|
||||
|
||||
// 1.LoadMaterialFromFile载的材质,是从文件中加载的。但我们要考虑文件损坏不能加载的情况。
|
||||
// 2.从文件加载材质过于复杂,而且不利于调试。所以我们需要保留Create系列函数,以便于调试以及测试一些新的情况。同时让开发人员知道材质具体是如何创建的。
|
||||
|
||||
/**
|
||||
* 从文件加载材质
|
||||
* @param mtl_name 材质名称
|
||||
* @param cfg 材质创建参数
|
||||
* @return 材质创建信息
|
||||
*/
|
||||
MaterialCreateInfo *LoadMaterialFromFile(const AnsiString &mtl_name,const Material2DCreateConfig *cfg); ///<从文件加载材质
|
||||
STD_MTL_NAMESPACE_END
|
||||
#endif//HGL_GRAPH_MTL_2D_CREATE_CONFIG_INCLUDE
|
||||
|
@ -34,7 +34,6 @@ namespace
|
||||
mci->SetMaterialInstance( mfd->mi.code,
|
||||
mfd->mi.mi_bytes,
|
||||
mfd->mi.shader_stage_flag_bits);
|
||||
return(false);
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -86,9 +85,6 @@ namespace
|
||||
|
||||
bool CustomFragmentShader(ShaderCreateInfoFragment *fsc) override
|
||||
{
|
||||
if(!Std2DMaterial::CustomFragmentShader(fsc))
|
||||
return(false);
|
||||
|
||||
material_file::ShaderData *sd=mfd->shader[VK_SHADER_STAGE_FRAGMENT_BIT];
|
||||
|
||||
if(!sd)
|
||||
|
@ -14,7 +14,7 @@ namespace
|
||||
{
|
||||
using namespace material_file;
|
||||
|
||||
using MaterialFileParse=io::TextInputStream::ParseCallback<char>;
|
||||
using TextParse=io::TextInputStream::ParseCallback<char>;
|
||||
|
||||
enum class MaterialFileBlock
|
||||
{
|
||||
@ -62,7 +62,7 @@ namespace
|
||||
return MaterialFileBlock::None;
|
||||
}
|
||||
|
||||
struct MaterialFileBlockParse:public MaterialFileParse
|
||||
struct MaterialFileBlockParse:public TextParse
|
||||
{
|
||||
MaterialFileBlock state;
|
||||
|
||||
@ -80,7 +80,7 @@ namespace
|
||||
}
|
||||
};//struct MaterialFileBlockParse
|
||||
|
||||
struct CodeParse:public MaterialFileParse
|
||||
struct CodeParse:public TextParse
|
||||
{
|
||||
char *start =nullptr;
|
||||
char *end =nullptr;
|
||||
@ -112,7 +112,7 @@ namespace
|
||||
}
|
||||
};//struct CodeParse
|
||||
|
||||
struct MaterialInstanceStateParse:public MaterialFileParse
|
||||
struct MaterialInstanceStateParse:public TextParse
|
||||
{
|
||||
bool code =false;
|
||||
CodeParse code_parse;
|
||||
@ -213,7 +213,7 @@ namespace
|
||||
return(true);
|
||||
}
|
||||
|
||||
struct VertexInputBlockParse:public MaterialFileParse
|
||||
struct VertexInputBlockParse:public TextParse
|
||||
{
|
||||
List<UniformAttrib> *vi_list=nullptr;
|
||||
|
||||
@ -238,7 +238,7 @@ namespace
|
||||
}
|
||||
};//struct VertexInputBlockParse
|
||||
|
||||
struct ShaderBlockParse:public MaterialFileParse
|
||||
struct ShaderBlockParse:public TextParse
|
||||
{
|
||||
ShaderData * shader_data=nullptr;
|
||||
|
||||
@ -372,11 +372,11 @@ namespace
|
||||
|
||||
};//struct GeometryShaderBlockParse
|
||||
|
||||
struct MaterialTextParse:public MaterialFileParse
|
||||
struct MaterialTextParse:public TextParse
|
||||
{
|
||||
MaterialFileBlock state;
|
||||
|
||||
MaterialFileParse *parse;
|
||||
TextParse *parse;
|
||||
|
||||
MaterialFileData *mfd;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user