MaterialFileData added origin data.
This commit is contained in:
parent
018a72c09a
commit
03750832c8
2
CMCore
2
CMCore
@ -1 +1 @@
|
|||||||
Subproject commit 252f2f6a1f4546d84e105e9f76462576e1b26a25
|
Subproject commit 70b6567029f3278692ca41c99bdf422af3365b8b
|
@ -59,11 +59,31 @@ namespace material_file
|
|||||||
|
|
||||||
struct MaterialFileData
|
struct MaterialFileData
|
||||||
{
|
{
|
||||||
|
private:
|
||||||
|
|
||||||
|
char * data=nullptr;
|
||||||
|
int data_length=0;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
MaterialInstanceData mi{};
|
MaterialInstanceData mi{};
|
||||||
|
|
||||||
List<UniformAttrib> vi;
|
List<UniformAttrib> vi;
|
||||||
|
|
||||||
ObjectMap<VkShaderStageFlagBits,ShaderData> shader;
|
ObjectMap<VkShaderStageFlagBits,ShaderData> shader;
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
MaterialFileData(char *d,int dl)
|
||||||
|
{
|
||||||
|
data=d;
|
||||||
|
data_length=dl;
|
||||||
|
}
|
||||||
|
|
||||||
|
~MaterialFileData()
|
||||||
|
{
|
||||||
|
delete[] data;
|
||||||
|
}
|
||||||
};//struct MaterialFileData
|
};//struct MaterialFileData
|
||||||
|
|
||||||
}//namespace material_file
|
}//namespace material_file
|
@ -4,7 +4,6 @@
|
|||||||
#include<hgl/graph/VKShaderStage.h>
|
#include<hgl/graph/VKShaderStage.h>
|
||||||
|
|
||||||
#include<hgl/io/TextInputStream.h>
|
#include<hgl/io/TextInputStream.h>
|
||||||
#include<hgl/io/FileInputStream.h>
|
|
||||||
#include<hgl/filesystem/FileSystem.h>
|
#include<hgl/filesystem/FileSystem.h>
|
||||||
|
|
||||||
#include"MaterialFileData.h"
|
#include"MaterialFileData.h"
|
||||||
@ -463,7 +462,7 @@ namespace
|
|||||||
};
|
};
|
||||||
}//namespace MaterialFile
|
}//namespace MaterialFile
|
||||||
|
|
||||||
MaterialFileData *LoadMaterialFromFile(const AnsiString &mtl_filename)
|
MaterialCreateInfo *LoadMaterialFromFile(const AnsiString &mtl_filename)
|
||||||
{
|
{
|
||||||
const OSString mtl_osfn=ToOSString(mtl_filename+".mtl");
|
const OSString mtl_osfn=ToOSString(mtl_filename+".mtl");
|
||||||
|
|
||||||
@ -472,26 +471,22 @@ MaterialFileData *LoadMaterialFromFile(const AnsiString &mtl_filename)
|
|||||||
if(!filesystem::FileExist(mtl_os_filename))
|
if(!filesystem::FileExist(mtl_os_filename))
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
|
|
||||||
io::OpenFileInputStream fis(mtl_os_filename);
|
char *data;
|
||||||
|
|
||||||
if(!fis)
|
int size=filesystem::LoadFileToMemory(mtl_os_filename,(void **)&data,true);
|
||||||
return(nullptr);
|
|
||||||
|
|
||||||
MaterialFileData *mfd=new MaterialFileData;
|
MaterialFileData mfd(data,size);
|
||||||
|
|
||||||
MaterialTextParse mtp(mfd);
|
MaterialTextParse mtp(&mfd);
|
||||||
|
|
||||||
io::TextInputStream tis(fis,0);
|
io::TextInputStream tis(data,size);
|
||||||
|
|
||||||
tis.SetParseCallback(&mtp);
|
tis.SetParseCallback(&mtp);
|
||||||
|
|
||||||
if(!tis.Run())
|
if(!tis.Run())
|
||||||
{
|
|
||||||
delete mfd;
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
|
||||||
|
|
||||||
return mfd;
|
return(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
MaterialCreateInfo *LoadMaterialFromFile(const AnsiString &name,const MaterialCreateConfig *cfg)
|
MaterialCreateInfo *LoadMaterialFromFile(const AnsiString &name,const MaterialCreateConfig *cfg)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user