Merge pull request #284 from AxioDL/revert-282-struct

Revert "CTextRenderBuffer: Forward declare structs where applicable"
This commit is contained in:
Phillip Stephens 2020-03-29 16:35:40 -07:00 committed by GitHub
commit a3f801049c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 49 additions and 60 deletions

View File

@ -12,37 +12,13 @@
namespace urde { namespace urde {
struct CTextRenderBuffer::BooFontCharacters { CTextRenderBuffer::CTextRenderBuffer(EMode mode, CGuiWidget::EGuiModelDrawFlags df) : x0_mode(mode), m_drawFlags(df) {}
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) {} CTextRenderBuffer::BooImage::BooImage(const CFontImageDef& imgDef, const zeus::CVector2i& offset) : m_imageDef(imgDef) {
};
struct CTextRenderBuffer::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) : m_imageDef(imgDef) {
m_imageData.SetMetrics(imgDef, offset); m_imageData.SetMetrics(imgDef, offset);
} }
};
struct CTextRenderBuffer::BooPrimitiveMark { void CTextRenderBuffer::BooPrimitiveMark::SetOpacity(CTextRenderBuffer& rb, float opacity) {
Command m_cmd;
u32 m_bindIdx;
u32 m_instIdx;
void SetOpacity(CTextRenderBuffer& rb, float opacity) {
switch (m_cmd) { switch (m_cmd) {
case Command::CharacterRender: { case Command::CharacterRender: {
BooFontCharacters& fc = rb.m_fontCharacters[m_bindIdx]; BooFontCharacters& fc = rb.m_fontCharacters[m_bindIdx];
@ -61,11 +37,6 @@ struct CTextRenderBuffer::BooPrimitiveMark {
break; break;
} }
} }
};
CTextRenderBuffer::CTextRenderBuffer(EMode mode, CGuiWidget::EGuiModelDrawFlags df) : x0_mode(mode), m_drawFlags(df) {}
CTextRenderBuffer::~CTextRenderBuffer() = default;
void CTextRenderBuffer::CommitResources() { void CTextRenderBuffer::CommitResources() {
if (m_committed) if (m_committed)
@ -154,8 +125,6 @@ void CTextRenderBuffer::SetPrimitiveOpacity(int idx, float opacity) {
m_primitiveMarks[idx].SetOpacity(*this, opacity); m_primitiveMarks[idx].SetOpacity(*this, opacity);
} }
u32 CTextRenderBuffer::GetPrimitiveCount() const { return m_primitiveMarks.size(); }
void CTextRenderBuffer::Render(const zeus::CColor& col, float time) const { void CTextRenderBuffer::Render(const zeus::CColor& col, float time) const {
const_cast<CTextRenderBuffer*>(this)->CommitResources(); const_cast<CTextRenderBuffer*>(this)->CommitResources();

View File

@ -65,13 +65,35 @@ private:
hecl::UniformBufferPool<CTextSupportShader::Uniform>::Token m_uniBuf; hecl::UniformBufferPool<CTextSupportShader::Uniform>::Token m_uniBuf;
hecl::UniformBufferPool<CTextSupportShader::Uniform>::Token m_uniBuf2; hecl::UniformBufferPool<CTextSupportShader::Uniform>::Token m_uniBuf2;
struct BooFontCharacters; 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; std::vector<BooFontCharacters> m_fontCharacters;
struct BooImage; 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; std::vector<BooImage> m_images;
struct BooPrimitiveMark; struct BooPrimitiveMark {
Command m_cmd;
u32 m_bindIdx;
u32 m_instIdx;
void SetOpacity(CTextRenderBuffer& rb, float opacity);
};
std::vector<BooPrimitiveMark> m_primitiveMarks; std::vector<BooPrimitiveMark> m_primitiveMarks;
u32 m_imagesCount = 0; u32 m_imagesCount = 0;
u32 m_activeFontCh = UINT32_MAX; u32 m_activeFontCh = UINT32_MAX;
@ -87,8 +109,6 @@ private:
public: public:
CTextRenderBuffer(EMode mode, CGuiWidget::EGuiModelDrawFlags df); CTextRenderBuffer(EMode mode, CGuiWidget::EGuiModelDrawFlags df);
~CTextRenderBuffer();
#if 0 #if 0
void SetPrimitive(const Primitive&, int); void SetPrimitive(const Primitive&, int);
Primitive GetPrimitive(int) const; Primitive GetPrimitive(int) const;
@ -99,7 +119,7 @@ public:
void AddPaletteChange(const CGraphicsPalette& palette); void AddPaletteChange(const CGraphicsPalette& palette);
#else #else
void SetPrimitiveOpacity(int idx, float opacity); void SetPrimitiveOpacity(int idx, float opacity);
u32 GetPrimitiveCount() const; u32 GetPrimitiveCount() const { return m_primitiveMarks.size(); }
#endif #endif
void SetMode(EMode mode); void SetMode(EMode mode);
void Render(const zeus::CColor& col, float) const; void Render(const zeus::CColor& col, float) const;