IQM Support Implemented

More info to come
This commit is contained in:
Shiny Metagross 2022-08-12 13:17:08 -07:00 committed by Christoph Oelckers
commit 08f520f1c6
49 changed files with 1356 additions and 62 deletions

View file

@ -221,7 +221,7 @@ void FUE1Model::UnloadGeometry()
groups.Reset();
}
int FUE1Model::FindFrame( const char *name, bool nodefault )
int FUE1Model::FindFrame(const char* name, bool nodefault)
{
// there are no named frames, but we need something here to properly interface with it. So just treat the string as an index number.
auto index = strtol(name, nullptr, 0);
@ -229,7 +229,7 @@ int FUE1Model::FindFrame( const char *name, bool nodefault )
return index;
}
void FUE1Model::RenderFrame( FModelRenderer *renderer, FGameTexture *skin, int frame, int frame2, double inter, int translation, const FTextureID* surfaceskinids)
void FUE1Model::RenderFrame( FModelRenderer *renderer, FGameTexture *skin, int frame, int frame2, double inter, int translation, const FTextureID* surfaceskinids, const TArray<VSMatrix>& animationData)
{
// the moment of magic
if ( (frame < 0) || (frame2 < 0) || (frame >= numFrames) || (frame2 >= numFrames) ) return;
@ -260,7 +260,7 @@ void FUE1Model::RenderFrame( FModelRenderer *renderer, FGameTexture *skin, int f
// TODO: Handle per-group render styles and other flags once functions for it are implemented
// Future note: poly renderstyles should always be enforced unless the actor itself has a style other than Normal
renderer->SetMaterial(sskin,false,translation);
renderer->SetupFrame(this, vofs+frame*fsize,vofs+frame2*fsize,vsize);
renderer->SetupFrame(this, vofs + frame * fsize, vofs + frame2 * fsize, vsize, {});
renderer->DrawArrays(0,vsize);
vofs += vsize;
}
@ -321,3 +321,8 @@ FUE1Model::~FUE1Model()
{
UnloadGeometry();
}
const TArray<VSMatrix>* FUE1Model::AttachAnimationData()
{
return {};
}