2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 14:27:42 +00:00

GuiSys and FrontEnd work

This commit is contained in:
Jack Andersen
2016-12-30 14:51:51 -10:00
parent 20677700e0
commit db7c2aeaf2
20 changed files with 496 additions and 79 deletions

View File

@@ -31,6 +31,7 @@ public:
FontChange,
PaletteChange
};
#if 0
struct Primitive
{
CTextColor x0_color1;
@@ -40,6 +41,7 @@ public:
wchar_t xc_glyph;
u8 xe_imageIndex;
};
#endif
enum class EMode
{
AllocTally,
@@ -55,6 +57,7 @@ private:
std::vector<char> x34_bytecode;
u32 x44_blobSize = 0;
u32 x48_curBytecodeOffset = 0;
u8 x4c_activeFont;
u32 x50_paletteCount = 0;
std::array<std::unique_ptr<CGraphicsPalette>, 64> x54_palettes;
u32 x254_nextPalette = 0;
@@ -106,10 +109,7 @@ private:
std::vector<boo::IShaderDataBinding*> m_dataBinding;
BooImageInstance m_imageData;
bool m_dirty = true;
BooImage(const CFontImageDef& imgDef)
: m_imageDef(imgDef)
{
}
BooImage(const CFontImageDef& imgDef, const zeus::CVector2i& offset);
};
std::vector<BooImage> m_images;
@@ -145,7 +145,7 @@ public:
void AddPaletteChange(const CGraphicsPalette& palette);
#else
void SetPrimitiveOpacity(int idx, float opacity);
u32 GetPrimitiveCount() const {return m_primitiveMarks.size();}
u32 GetPrimitiveCount() const { return m_primitiveMarks.size(); }
#endif
void SetMode(EMode mode);
void Render(const zeus::CColor& col, float) const;
@@ -153,12 +153,9 @@ public:
void AddCharacter(const zeus::CVector2i& offset, wchar_t ch, const zeus::CColor& color);
void AddPaletteChange(const zeus::CColor& main, const zeus::CColor& outline);
void AddFontChange(const TToken<CRasterFont>& font);
};
class CTextRenderBufferPages
{
public:
CTextRenderBufferPages(CTextExecuteBuffer&, const zeus::CVector2i&);
bool HasSpaceAvailable(const zeus::CVector2i& origin, const zeus::CVector2i& extent) const;
std::pair<zeus::CVector2i, zeus::CVector2i> AccumulateTextBounds() const;
};
}