2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 17:47:43 +00:00

Work on CMemoryCardDriver

This commit is contained in:
Jack Andersen
2016-12-22 20:41:39 -10:00
parent c92223301c
commit d7f79d6ec3
25 changed files with 929 additions and 82 deletions

View File

@@ -21,6 +21,7 @@ class CTexture
boo::GraphicsDataToken m_booToken;
boo::ITexture* m_booTex;
boo::ITexture* m_paletteTex;
std::unique_ptr<u8[]> m_otex;
size_t ComputeMippedTexelCount();
size_t ComputeMippedBlockCountDXT1();
@@ -39,18 +40,22 @@ class CTexture
void BuildC8(const void* data, size_t length);
public:
CTexture(std::unique_ptr<u8[]>&& in, u32 length);
CTexture(std::unique_ptr<u8[]>&& in, u32 length, bool otex);
enum class EClampMode
{
None,
One
};
ETexelFormat GetTexelFormat() const {return x0_fmt;}
ETexelFormat GetMemoryCardTexelFormat() const
{return x0_fmt == ETexelFormat::C8PC ? ETexelFormat::C8 : ETexelFormat::RGB5A3;}
u16 GetWidth() const {return x4_w;}
u16 GetHeight() const {return x6_h;}
void Load(int slot, EClampMode clamp) const;
boo::ITexture* GetBooTexture() {return m_booTex;}
boo::ITexture* GetPaletteTexture() {return m_paletteTex;}
std::unique_ptr<u8[]> BuildMemoryCardTex(u32& sizeOut, ETexelFormat& fmtOut,
std::unique_ptr<u8[]>& paletteOut) const;
};
CFactoryFnReturn FTextureFactory(const urde::SObjectTag& tag,