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

New code style refactor

This commit is contained in:
Jack Andersen
2018-12-07 19:30:43 -10:00
parent 41ae32be31
commit 636c82a568
1451 changed files with 171430 additions and 203303 deletions

View File

@@ -11,8 +11,7 @@
#include "Graphics/Shaders/CTextSupportShader.hpp"
#include "boo/graphicsdev/IGraphicsDataFactory.hpp"
namespace urde
{
namespace urde {
class CGraphicsPalette;
class CRasterFont;
class CGlyph;
@@ -20,18 +19,12 @@ class CTextExecuteBuffer;
using CTextColor = zeus::CColor;
class CTextRenderBuffer
{
friend class CGuiTextSupport;
friend class CTextSupportShader;
class CTextRenderBuffer {
friend class CGuiTextSupport;
friend class CTextSupportShader;
public:
enum class Command
{
CharacterRender,
ImageRender,
FontChange,
PaletteChange
};
enum class Command { CharacterRender, ImageRender, FontChange, PaletteChange };
#if 0
struct Primitive
{
@@ -43,14 +36,10 @@ public:
u8 xe_imageIndex;
};
#endif
enum class EMode
{
AllocTally,
BufferFill
};
enum class EMode { AllocTally, BufferFill };
private:
EMode x0_mode;
EMode x0_mode;
#if 0
std::vector<TToken<CRasterFont>> x4_fonts;
std::vector<CFontImageDef> x14_images;
@@ -64,58 +53,54 @@ private:
u32 x254_nextPalette = 0;
#else
/* Boo-specific text-rendering functionality */
hecl::UniformBufferPool<CTextSupportShader::Uniform>::Token m_uniBuf;
hecl::UniformBufferPool<CTextSupportShader::Uniform>::Token m_uniBuf2;
/* Boo-specific text-rendering functionality */
hecl::UniformBufferPool<CTextSupportShader::Uniform>::Token m_uniBuf;
hecl::UniformBufferPool<CTextSupportShader::Uniform>::Token m_uniBuf2;
struct BooFontCharacters
{
TLockedToken<CRasterFont> m_font;
hecl::VertexBufferPool<CTextSupportShader::CharacterInstance>::Token m_instBuf;
boo::ObjToken<boo::IShaderDataBinding> m_dataBinding;
boo::ObjToken<boo::IShaderDataBinding> m_dataBinding2;
std::vector<CTextSupportShader::CharacterInstance> m_charData;
u32 m_charCount = 0;
bool m_dirty = true;
BooFontCharacters(const CToken& token)
: m_font(token) {}
};
std::vector<BooFontCharacters> m_fontCharacters;
struct BooFontCharacters {
TLockedToken<CRasterFont> m_font;
hecl::VertexBufferPool<CTextSupportShader::CharacterInstance>::Token m_instBuf;
boo::ObjToken<boo::IShaderDataBinding> m_dataBinding;
boo::ObjToken<boo::IShaderDataBinding> m_dataBinding2;
std::vector<CTextSupportShader::CharacterInstance> m_charData;
u32 m_charCount = 0;
bool m_dirty = true;
BooFontCharacters(const CToken& token) : m_font(token) {}
};
std::vector<BooFontCharacters> m_fontCharacters;
struct BooImage
{
CFontImageDef m_imageDef;
hecl::VertexBufferPool<CTextSupportShader::ImageInstance>::Token m_instBuf;
std::vector<boo::ObjToken<boo::IShaderDataBinding>> m_dataBinding;
std::vector<boo::ObjToken<boo::IShaderDataBinding>> m_dataBinding2;
CTextSupportShader::ImageInstance m_imageData;
bool m_dirty = true;
BooImage(const CFontImageDef& imgDef, const zeus::CVector2i& offset);
};
std::vector<BooImage> m_images;
struct BooImage {
CFontImageDef m_imageDef;
hecl::VertexBufferPool<CTextSupportShader::ImageInstance>::Token m_instBuf;
std::vector<boo::ObjToken<boo::IShaderDataBinding>> m_dataBinding;
std::vector<boo::ObjToken<boo::IShaderDataBinding>> m_dataBinding2;
CTextSupportShader::ImageInstance m_imageData;
bool m_dirty = true;
BooImage(const CFontImageDef& imgDef, const zeus::CVector2i& offset);
};
std::vector<BooImage> m_images;
struct BooPrimitiveMark
{
Command m_cmd;
u32 m_bindIdx;
u32 m_instIdx;
void SetOpacity(CTextRenderBuffer& rb, float opacity);
};
std::vector<BooPrimitiveMark> m_primitiveMarks;
u32 m_imagesCount = 0;
u32 m_activeFontCh = -1;
struct BooPrimitiveMark {
Command m_cmd;
u32 m_bindIdx;
u32 m_instIdx;
void SetOpacity(CTextRenderBuffer& rb, float opacity);
};
std::vector<BooPrimitiveMark> m_primitiveMarks;
u32 m_imagesCount = 0;
u32 m_activeFontCh = -1;
zeus::CColor m_main;
zeus::CColor m_outline = zeus::CColor::skBlack;
zeus::CColor m_main;
zeus::CColor m_outline = zeus::CColor::skBlack;
CGuiWidget::EGuiModelDrawFlags m_drawFlags;
CGuiWidget::EGuiModelDrawFlags m_drawFlags;
bool m_committed = false;
void CommitResources();
bool m_committed = false;
void CommitResources();
#endif
public:
CTextRenderBuffer(EMode mode, CGuiWidget::EGuiModelDrawFlags df);
CTextRenderBuffer(EMode mode, CGuiWidget::EGuiModelDrawFlags df);
#if 0
void SetPrimitive(const Primitive&, int);
Primitive GetPrimitive(int) const;
@@ -125,19 +110,18 @@ public:
CGraphicsPalette* GetNextAvailablePalette();
void AddPaletteChange(const CGraphicsPalette& palette);
#else
void SetPrimitiveOpacity(int idx, float opacity);
u32 GetPrimitiveCount() const { return m_primitiveMarks.size(); }
void SetPrimitiveOpacity(int idx, float opacity);
u32 GetPrimitiveCount() const { return m_primitiveMarks.size(); }
#endif
void SetMode(EMode mode);
void Render(const zeus::CColor& col, float) const;
void AddImage(const zeus::CVector2i& offset, const CFontImageDef& image);
void AddCharacter(const zeus::CVector2i& offset, char16_t ch, const zeus::CColor& color);
void AddPaletteChange(const zeus::CColor& main, const zeus::CColor& outline);
void AddFontChange(const TToken<CRasterFont>& font);
void SetMode(EMode mode);
void Render(const zeus::CColor& col, float) const;
void AddImage(const zeus::CVector2i& offset, const CFontImageDef& image);
void AddCharacter(const zeus::CVector2i& offset, char16_t ch, const zeus::CColor& color);
void AddPaletteChange(const zeus::CColor& main, const zeus::CColor& outline);
void AddFontChange(const TToken<CRasterFont>& font);
bool HasSpaceAvailable(const zeus::CVector2i& origin, const zeus::CVector2i& extent) const;
std::pair<zeus::CVector2i, zeus::CVector2i> AccumulateTextBounds() const;
bool HasSpaceAvailable(const zeus::CVector2i& origin, const zeus::CVector2i& extent) const;
std::pair<zeus::CVector2i, zeus::CVector2i> AccumulateTextBounds() const;
};
}
} // namespace urde