mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-08-13 17:03:47 -04:00
48 lines
961 B
C
48 lines
961 B
C
|
#include "Resource.h"
|
||
|
|
||
|
namespace Ship
|
||
|
{
|
||
|
enum class MaterialCmt
|
||
|
{
|
||
|
Wrap = 0,
|
||
|
Mirror = 1,
|
||
|
Clamp = 2
|
||
|
};
|
||
|
|
||
|
class ShaderParam
|
||
|
{
|
||
|
public:
|
||
|
strhash name;
|
||
|
DataType dataType;
|
||
|
uint64_t value;
|
||
|
|
||
|
ShaderParam(BinaryReader* reader);
|
||
|
};
|
||
|
|
||
|
class MaterialV0 : public ResourceFile
|
||
|
{
|
||
|
public:
|
||
|
// Typical N64 Stuff
|
||
|
MaterialCmt cmtH, cmtV;
|
||
|
uint8_t clrR, clrG, clrB, clrA, clrM, clrL;
|
||
|
|
||
|
// Modern Stuff
|
||
|
strhash shaderID;
|
||
|
uint32_t shaderParamsCnt;
|
||
|
uint32_t offsetToShaderEntries;
|
||
|
|
||
|
void ParseFileBinary(BinaryReader* reader, Resource* res) override;
|
||
|
};
|
||
|
|
||
|
class Material : public Resource
|
||
|
{
|
||
|
public:
|
||
|
// Typical N64 Stuff
|
||
|
MaterialCmt cmtH, cmtV;
|
||
|
uint8_t clrR, clrG, clrB, clrA, clrM, clrL;
|
||
|
|
||
|
// Modern Stuff
|
||
|
strhash shaderID;
|
||
|
std::vector<ShaderParam*> shaderParams;
|
||
|
};
|
||
|
}
|