mirror of https://github.com/AxioDL/metaforce.git
Updated hecl
This commit is contained in:
parent
804f0c8b7d
commit
d95e11ce3e
|
@ -1027,7 +1027,7 @@ bool ReadCMDLToBlender(HECL::BlenderConnection& conn,
|
|||
template <class MaterialSet, class SurfaceHeader, atUint32 Version>
|
||||
bool WriteCMDL(const HECL::ProjectPath& outPath, const HECL::ProjectPath& inPath, const Mesh& mesh)
|
||||
{
|
||||
Athena::io::FileWriter writer(outPath.getAbsolutePath());
|
||||
//Athena::io::FileWriter writer(outPath.getAbsolutePath());
|
||||
|
||||
Header head;
|
||||
head.magic = 0xDEADBABE;
|
||||
|
@ -1042,23 +1042,19 @@ bool WriteCMDL(const HECL::ProjectPath& outPath, const HECL::ProjectPath& inPath
|
|||
/* Build material sets */
|
||||
{
|
||||
HECL::Frontend::Frontend FE;
|
||||
int setIdx = 0;
|
||||
for (const std::vector<Mesh::Material>& mset : mesh.materialSets)
|
||||
{
|
||||
int matIdx = 0;
|
||||
for (const Mesh::Material& mat : mset)
|
||||
{
|
||||
std::string diagName = HECL::SysFormat(_S("%s:%d:%d"), inPath.getLastComponent(), setIdx, matIdx);
|
||||
std::string diagName = HECL::Format("%s:%s", inPath.getLastComponentUTF8(), mat.name.c_str());
|
||||
HECL::Frontend::IR matIR = FE.compileSource(mat.source, diagName);
|
||||
HECL::Backend::GX matGX;
|
||||
matGX.reset(matIR);
|
||||
++matIdx;
|
||||
matGX.reset(matIR, FE.getDiagnostics());
|
||||
}
|
||||
++setIdx;
|
||||
}
|
||||
}
|
||||
|
||||
head.write(writer);
|
||||
//head.write(writer);
|
||||
|
||||
|
||||
return true;
|
||||
|
|
|
@ -45,10 +45,11 @@ struct CMDL
|
|||
return conn.saveBlend();
|
||||
}
|
||||
|
||||
static bool Cook(const DNACMDL::Mesh& mesh,
|
||||
const HECL::ProjectPath& outPath)
|
||||
static bool Cook(const HECL::ProjectPath& outPath,
|
||||
const HECL::ProjectPath& inPath,
|
||||
const DNACMDL::Mesh& mesh)
|
||||
{
|
||||
return true;
|
||||
return DNACMDL::WriteCMDL<MaterialSet, DNACMDL::SurfaceHeader_1_2, 2>(outPath, inPath, mesh);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -124,19 +124,19 @@ void SpecBase::doCook(const HECL::ProjectPath& path, const HECL::ProjectPath& co
|
|||
case HECL::BlenderConnection::TypeMesh:
|
||||
{
|
||||
HECL::BlenderConnection::DataStream ds = conn.beginData();
|
||||
cookMesh(path, ds, cookedPath);
|
||||
cookMesh(cookedPath, path, ds);
|
||||
break;
|
||||
}
|
||||
case HECL::BlenderConnection::TypeActor:
|
||||
{
|
||||
HECL::BlenderConnection::DataStream ds = conn.beginData();
|
||||
cookActor(path, ds, cookedPath);
|
||||
cookActor(cookedPath, path, ds);
|
||||
break;
|
||||
}
|
||||
case HECL::BlenderConnection::TypeArea:
|
||||
{
|
||||
HECL::BlenderConnection::DataStream ds = conn.beginData();
|
||||
cookArea(path, ds, cookedPath);
|
||||
cookArea(cookedPath, path, ds);
|
||||
break;
|
||||
}
|
||||
default: break;
|
||||
|
@ -145,7 +145,7 @@ void SpecBase::doCook(const HECL::ProjectPath& path, const HECL::ProjectPath& co
|
|||
else if (HECL::IsPathYAML(path))
|
||||
{
|
||||
FILE* fp = HECL::Fopen(path.getAbsolutePath().c_str(), _S("r"));
|
||||
cookYAML(fp, cookedPath);
|
||||
cookYAML(cookedPath, path, fp);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -46,11 +46,11 @@ struct SpecBase : HECL::Database::IDataSpec
|
|||
/* Cook handlers */
|
||||
using BlendStream = HECL::BlenderConnection::DataStream;
|
||||
using Mesh = BlendStream::Mesh;
|
||||
virtual void cookMesh(const HECL::ProjectPath& in, BlendStream& ds, const HECL::ProjectPath& out) const=0;
|
||||
virtual void cookActor(const HECL::ProjectPath& in, BlendStream& ds, const HECL::ProjectPath& out) const=0;
|
||||
virtual void cookArea(const HECL::ProjectPath& in, BlendStream& ds, const HECL::ProjectPath& out) const=0;
|
||||
virtual void cookYAML(FILE* in, const HECL::ProjectPath& out) const=0;
|
||||
|
||||
virtual void cookMesh(const HECL::ProjectPath& out, const HECL::ProjectPath& in, BlendStream& ds) const=0;
|
||||
virtual void cookActor(const HECL::ProjectPath& out, const HECL::ProjectPath& in, BlendStream& ds) const=0;
|
||||
virtual void cookArea(const HECL::ProjectPath& out, const HECL::ProjectPath& in, BlendStream& ds) const=0;
|
||||
virtual void cookYAML(const HECL::ProjectPath& out, const HECL::ProjectPath& in, FILE* fin) const=0;
|
||||
|
||||
const HECL::ProjectPath& getMasterShaderPath() const {return m_masterShader;}
|
||||
|
||||
|
|
|
@ -280,21 +280,21 @@ struct SpecMP1 : SpecBase
|
|||
return false;
|
||||
}
|
||||
|
||||
void cookMesh(const HECL::ProjectPath& in, BlendStream& ds, const HECL::ProjectPath& out) const
|
||||
void cookMesh(const HECL::ProjectPath& out, const HECL::ProjectPath& in, BlendStream& ds) const
|
||||
{
|
||||
Mesh mesh = ds.compileMesh();
|
||||
DNAMP1::CMDL::Cook(mesh, out);
|
||||
DNAMP1::CMDL::Cook(out, in, mesh);
|
||||
}
|
||||
|
||||
void cookActor(const HECL::ProjectPath& in, BlendStream& ds, const HECL::ProjectPath& out) const
|
||||
void cookActor(const HECL::ProjectPath& out, const HECL::ProjectPath& in, BlendStream& ds) const
|
||||
{
|
||||
}
|
||||
|
||||
void cookArea(const HECL::ProjectPath& in, BlendStream& ds, const HECL::ProjectPath& out) const
|
||||
void cookArea(const HECL::ProjectPath& out, const HECL::ProjectPath& in, BlendStream& ds) const
|
||||
{
|
||||
}
|
||||
|
||||
void cookYAML(FILE* in, const HECL::ProjectPath& out) const
|
||||
void cookYAML(const HECL::ProjectPath& out, const HECL::ProjectPath& in, FILE* fin) const
|
||||
{
|
||||
}
|
||||
};
|
||||
|
|
|
@ -270,19 +270,19 @@ struct SpecMP2 : SpecBase
|
|||
return false;
|
||||
}
|
||||
|
||||
void cookMesh(const HECL::ProjectPath& in, BlendStream& ds, const HECL::ProjectPath& out) const
|
||||
void cookMesh(const HECL::ProjectPath& out, const HECL::ProjectPath& in, BlendStream& ds) const
|
||||
{
|
||||
}
|
||||
|
||||
void cookActor(const HECL::ProjectPath& in, BlendStream& ds, const HECL::ProjectPath& out) const
|
||||
void cookActor(const HECL::ProjectPath& out, const HECL::ProjectPath& in, BlendStream& ds) const
|
||||
{
|
||||
}
|
||||
|
||||
void cookArea(const HECL::ProjectPath& in, BlendStream& ds, const HECL::ProjectPath& out) const
|
||||
void cookArea(const HECL::ProjectPath& out, const HECL::ProjectPath& in, BlendStream& ds) const
|
||||
{
|
||||
}
|
||||
|
||||
void cookYAML(FILE* in, const HECL::ProjectPath& out) const
|
||||
void cookYAML(const HECL::ProjectPath& out, const HECL::ProjectPath& in, FILE* fin) const
|
||||
{
|
||||
}
|
||||
};
|
||||
|
|
|
@ -453,19 +453,19 @@ struct SpecMP3 : SpecBase
|
|||
return false;
|
||||
}
|
||||
|
||||
void cookMesh(const HECL::ProjectPath& in, BlendStream& ds, const HECL::ProjectPath& out) const
|
||||
void cookMesh(const HECL::ProjectPath& out, const HECL::ProjectPath& in, BlendStream& ds) const
|
||||
{
|
||||
}
|
||||
|
||||
void cookActor(const HECL::ProjectPath& in, BlendStream& ds, const HECL::ProjectPath& out) const
|
||||
void cookActor(const HECL::ProjectPath& out, const HECL::ProjectPath& in, BlendStream& ds) const
|
||||
{
|
||||
}
|
||||
|
||||
void cookArea(const HECL::ProjectPath& in, BlendStream& ds, const HECL::ProjectPath& out) const
|
||||
void cookArea(const HECL::ProjectPath& out, const HECL::ProjectPath& in, BlendStream& ds) const
|
||||
{
|
||||
}
|
||||
|
||||
void cookYAML(FILE* in, const HECL::ProjectPath& out) const
|
||||
void cookYAML(const HECL::ProjectPath& out, const HECL::ProjectPath& in, FILE* fin) const
|
||||
{
|
||||
}
|
||||
};
|
||||
|
|
2
hecl
2
hecl
|
@ -1 +1 @@
|
|||
Subproject commit abb371d22ba32982f87c174d494756e0477c21c1
|
||||
Subproject commit 18f692317a8b043fbf52bad6efffd043ae7a352d
|
Loading…
Reference in New Issue