Trying ttf loading
This commit is contained in:
@@ -1,18 +1,40 @@
|
||||
#pragma once
|
||||
#include "Elements/Element.h"
|
||||
#include "Containers/List.h"
|
||||
#include "Graphics/GraphicsResources.h"
|
||||
|
||||
namespace Seele
|
||||
{
|
||||
namespace UI
|
||||
{
|
||||
DECLARE_NAME_REF(Gfx, RenderCommand);
|
||||
struct RenderElementStyle
|
||||
{
|
||||
Vector2 position;
|
||||
Vector2 dimensions;
|
||||
Vector backgroundColor;
|
||||
uint32 backgroundImageIndex;
|
||||
Vector4 borderBottomColor;
|
||||
Vector4 borderLeftColor;
|
||||
Vector4 borderRightColor;
|
||||
Vector4 borderTopColor;
|
||||
float borderBottomLeftRadius;
|
||||
float borderBottomRightRadius;
|
||||
float borderTopLeftRadius;
|
||||
float borderTopRightRadius;
|
||||
Vector4 fontColor;
|
||||
float fontSize;
|
||||
float opacity;
|
||||
};
|
||||
static_assert(sizeof(RenderElementStyle) == 34*4);
|
||||
class RenderElement
|
||||
{
|
||||
public:
|
||||
RenderElement() = default;
|
||||
RenderElement(Element* parent, Element* referencedElement)
|
||||
: parent(parent)
|
||||
, referencedElement(referencedElement)
|
||||
{}
|
||||
~RenderElement() = default;
|
||||
uint32 hierarchyIndex;
|
||||
Element* parent;
|
||||
Element* referencedElement;
|
||||
};
|
||||
@@ -36,12 +58,13 @@ struct AddElementRenderHierarchyUpdate : public RenderHierarchyUpdate
|
||||
struct RemoveElementRenderHierarchyUpdate : public RenderHierarchyUpdate
|
||||
{
|
||||
Element* element;
|
||||
RemoveElementRenderHierarchyUpdate(Element* elementToRemove)
|
||||
bool removeChildren;
|
||||
RemoveElementRenderHierarchyUpdate(Element* elementToRemove, bool removeChildren = false)
|
||||
: element(elementToRemove)
|
||||
, removeChildren(removeChildren)
|
||||
{}
|
||||
virtual void apply(Array<RenderElement>& elements) override;
|
||||
};
|
||||
|
||||
class RenderHierarchy
|
||||
{
|
||||
public:
|
||||
@@ -58,6 +81,9 @@ private:
|
||||
static_assert(std::is_trivially_copyable_v<RenderElement>);
|
||||
// List of all drawable elements in draw order
|
||||
Array<RenderElement> drawElements;
|
||||
// Shader data used for styling elements
|
||||
Array<RenderElementStyle> elementStyles;
|
||||
Array<Gfx::PTexture> usedTextures;
|
||||
|
||||
List<RenderHierarchyUpdate*> updates;
|
||||
std::mutex updateLock;
|
||||
|
||||
Reference in New Issue
Block a user