Convert visual layers to scene nodes.
This commit is contained in:
parent
798cb365d7
commit
3e53bd9e00
64 changed files with 863 additions and 551 deletions
|
@ -6,16 +6,14 @@
|
|||
#include "MeshPrimitives.h"
|
||||
#include "FontItem.h"
|
||||
|
||||
#include "SceneText.h"
|
||||
|
||||
#include "Color.h"
|
||||
|
||||
TextNode::TextNode(const std::string& content, const DiscretePoint& loc)
|
||||
: AbstractVisualNode(loc)
|
||||
: MaterialNode(loc)
|
||||
{
|
||||
mTextData.mContent = content;
|
||||
mTextData.mFont = FontItem("Arial", 16);
|
||||
mTextData.mLocation = loc;
|
||||
mTextData.mFillColor = Color(255, 255, 255);
|
||||
mTextData.mStrokeColor = Color(0, 0, 0);
|
||||
mContent= content;
|
||||
}
|
||||
|
||||
TextNode::~TextNode()
|
||||
|
@ -28,15 +26,6 @@ std::unique_ptr<TextNode> TextNode::Create(const std::string& content, const Dis
|
|||
return std::make_unique<TextNode>(content, loc);
|
||||
}
|
||||
|
||||
const Color& TextNode::getFillColor() const
|
||||
{
|
||||
return mTextData.mFillColor;
|
||||
}
|
||||
const Color& TextNode::getStrokeColor() const
|
||||
{
|
||||
return mTextData.mStrokeColor;
|
||||
}
|
||||
|
||||
std::string TextNode::getFontLabel() const
|
||||
{
|
||||
return {};
|
||||
|
@ -44,41 +33,40 @@ std::string TextNode::getFontLabel() const
|
|||
|
||||
std::string TextNode::getContent() const
|
||||
{
|
||||
return mTextData.mContent;
|
||||
return mContent;
|
||||
}
|
||||
|
||||
void TextNode::setContent(const std::string& content)
|
||||
{
|
||||
mTextData.mContent = content;
|
||||
if (mContent != content)
|
||||
{
|
||||
mContent = content;
|
||||
mContentIsDirty = true;
|
||||
}
|
||||
}
|
||||
|
||||
void TextNode::setFillColor(const Color& color)
|
||||
void TextNode::update(FontsManager* fontsManager)
|
||||
{
|
||||
mTextData.mFillColor = color;
|
||||
}
|
||||
|
||||
void TextNode::setStrokeColor(const Color& color)
|
||||
{
|
||||
mTextData.mStrokeColor = color;
|
||||
}
|
||||
|
||||
void TextNode::update(FontsManager* drawingManager)
|
||||
{
|
||||
updateMesh();
|
||||
updateTexture(drawingManager);
|
||||
}
|
||||
|
||||
const TextData& TextNode::getTextData() const
|
||||
{
|
||||
return mTextData;
|
||||
}
|
||||
|
||||
void TextNode::updateMesh()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void TextNode::updateTexture(FontsManager* fontsManager)
|
||||
{
|
||||
|
||||
if (!mSceneItem)
|
||||
{
|
||||
mSceneItem = std::make_unique<SceneText>();
|
||||
}
|
||||
|
||||
if (!mContentIsDirty)
|
||||
{
|
||||
dynamic_cast<SceneText*>(mSceneItem.get())->setContent(mContent);
|
||||
mContentIsDirty = false;
|
||||
}
|
||||
|
||||
if (mTransformIsDirty)
|
||||
{
|
||||
mSceneItem->updateTransform({mLocation});
|
||||
mTransformIsDirty = false;
|
||||
}
|
||||
|
||||
if (mMaterialIsDirty)
|
||||
{
|
||||
mSceneItem->updateUniformColor(mFillColor);
|
||||
mMaterialIsDirty = false;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue