enum class TVG_EXPORT PathCommand { Close = 0, MoveTo, LineTo, CubicTo };
enum class TVG_EXPORT StrokeCap { Square = 0, Round, Butt };
enum class TVG_EXPORT StrokeJoin { Bevel = 0, Round, Miter };
+enum class TVG_EXPORT FillSpread { Pad = 0, Reflect, Repeat };
struct Point
public:
struct ColorStop
{
- float pos;
+ float offset;
uint8_t r, g, b, a;
};
virtual ~Fill();
Result colorStops(const ColorStop* colorStops, uint32_t cnt) noexcept;
+ Result spread(FillSpread s) noexcept;
+
uint32_t colorStops(const ColorStop** colorStops) const noexcept;
+ FillSpread spread() const noexcept;
_TVG_DECALRE_IDENTIFIER();
_TVG_DECLARE_PRIVATE(Fill);
{
ColorStop* colorStops = nullptr;
uint32_t cnt = 0;
+ FillSpread spread;
~Impl()
{
return impl->cnt;
}
+
+Result Fill::spread(FillSpread s) noexcept
+{
+ auto impl = pImpl.get();
+ if (!impl) return Result::MemoryCorruption;
+
+ impl->spread = s;
+
+ return Result::Success;
+}
+
+
+FillSpread Fill::spread() const noexcept
+{
+ auto impl = pImpl.get();
+ assert(impl);
+
+ return impl->spread;
+}
+
#endif /* _TVG_FILL_CPP_ */
\ No newline at end of file