25 static constexpr int32_t kCornerSegments = 8;
26 static constexpr int32_t kMaxFanVertices = 2 + 4 * (kCornerSegments + 1);
30 static constexpr bool kExpandFanToList =
true;
31 static constexpr int32_t kMaxQuadVertices = 3 * (kMaxFanVertices - 2);
33 static constexpr bool kExpandFanToList =
false;
34 static constexpr int32_t kMaxQuadVertices = kMaxFanVertices;
42 virtual void Create()
override;
43 virtual void Destroy()
override;
48 void GatherQuadProperties(std::vector<Property>& outProps);
52 virtual void Render()
override;
55 void SetTexture(
class Texture* texture);
58 virtual void SetColor(glm::vec4 color)
override;
64 glm::vec4 bottomRight);
66 void SetUvScale(glm::vec2 scale);
67 glm::vec2 GetUvScale()
const;
69 void SetUvOffset(glm::vec2 offset);
70 glm::vec2 GetUvOffset()
const;
75 void SetCornerRadius(
float radius);
76 float GetCornerRadius()
const;
78 void SetBorderWidth(
float width);
79 float GetBorderWidth()
const;
81 void SetBorderColor(glm::vec4 color);
82 glm::vec4 GetBorderColor()
const;
85 uint32_t GetNumVertices()
const;
89 uint32_t GetBorderNumVertices()
const;
99 void InitVertexData();
100 void UpdateVertexData();
101 void UpdateBorders();
103 static uint32_t GenerateRoundedFan(
105 float posX,
float posY,
float posW,
float posH,
107 float uvX0,
float uvY0,
float uvX1,
float uvY1);
111 uint32_t mNumVertices = 0;
116 float mCornerRadius = 0.0f;
118 float mBorderWidth = 0.0f;
119 glm::vec4 mBorderColor = glm::vec4(0.0f, 0.0f, 0.0f, 1.0f);
123 uint32_t mBorderNumVertices = 0;
125 bool mBorderResourceCreated =
false;