Spaces:
Runtime error
Runtime error
enum class ColorType { | |
Constant, | |
LinearGradient, | |
RadialGradient | |
}; | |
struct Constant { | |
Vector4f color; | |
ptr<void> get_ptr() { | |
return ptr<void>(this); | |
} | |
}; | |
struct LinearGradient { | |
LinearGradient(const Vector2f &begin, | |
const Vector2f &end, | |
int num_stops, | |
ptr<float> stop_offsets, | |
ptr<float> stop_colors) | |
: begin(begin), end(end), num_stops(num_stops), | |
stop_offsets(stop_offsets.get()), stop_colors(stop_colors.get()) {} | |
ptr<void> get_ptr() { | |
return ptr<void>(this); | |
} | |
void copy_to(ptr<float> stop_offset, | |
ptr<float> stop_colors) const; | |
Vector2f begin, end; | |
int num_stops; | |
float *stop_offsets; | |
float *stop_colors; // rgba | |
}; | |
struct RadialGradient { | |
RadialGradient(const Vector2f ¢er, | |
const Vector2f &radius, | |
int num_stops, | |
ptr<float> stop_offsets, | |
ptr<float> stop_colors) | |
: center(center), radius(radius), num_stops(num_stops), | |
stop_offsets(stop_offsets.get()), stop_colors(stop_colors.get()) {} | |
ptr<void> get_ptr() { | |
return ptr<void>(this); | |
} | |
void copy_to(ptr<float> stop_offset, | |
ptr<float> stop_colors) const; | |
Vector2f center, radius; | |
int num_stops; | |
float *stop_offsets; | |
float *stop_colors; // rgba | |
}; | |