25 static constexpr int32_t kCornerSegments = 8;
26 static constexpr int32_t kMaxQuadVertices = 2 + 4 * (kCornerSegments + 1);
33 virtual void Create()
override;
34 virtual void Destroy()
override;
39 void GatherQuadProperties(std::vector<Property>& outProps);
43 virtual void Render()
override;
46 void SetTexture(
class Texture* texture);
49 virtual void SetColor(glm::vec4 color)
override;
55 glm::vec4 bottomRight);
57 void SetUvScale(glm::vec2 scale);
58 glm::vec2 GetUvScale()
const;
60 void SetUvOffset(glm::vec2 offset);
61 glm::vec2 GetUvOffset()
const;
66 void SetCornerRadius(
float radius);
67 float GetCornerRadius()
const;
69 void SetBorderWidth(
float width);
70 float GetBorderWidth()
const;
72 void SetBorderColor(glm::vec4 color);
73 glm::vec4 GetBorderColor()
const;
76 uint32_t GetNumVertices()
const;
80 uint32_t GetBorderNumVertices()
const;
90 void InitVertexData();
91 void UpdateVertexData();
94 static uint32_t GenerateRoundedFan(
96 float posX,
float posY,
float posW,
float posH,
98 float uvX0,
float uvY0,
float uvX1,
float uvY1);
102 uint32_t mNumVertices = 0;
107 float mCornerRadius = 0.0f;
109 float mBorderWidth = 0.0f;
110 glm::vec4 mBorderColor = glm::vec4(0.0f, 0.0f, 0.0f, 1.0f);
114 uint32_t mBorderNumVertices = 0;
116 bool mBorderResourceCreated =
false;