19#define NOVASVG_DEFAULT_STROKE_STYLE (stroke_style_t{1.f, NOVASVG_LINE_CAP_BUTT, NOVASVG_LINE_JOIN_MITER, 10.f})
145 if(new_state == NULL)
188NOVASVG_INLINE void canvas_set_radial_gradient(
canvas_t*
canvas,
float cx,
float cy,
float cr,
float fx,
float fy,
float fr,
spread_method_t spread,
const gradient_stop_t* stops,
int nstops,
const matrix_t*
matrix)
533 return x >= l && x <= r && y >= t && y <= b;
679 float advance_width = 0.f;
681 bool has_previous =
false;
688 previous = codepoint;
692 return advance_width;
700 return advance_width;
708 return advance_width;
716 return advance_width;
727 if(ascent) *ascent = 0.f;
728 if(descent) *descent = 0.f;
729 if(line_gap) *line_gap = 0.f;
746 if(advance_width) *advance_width = 0.f;
747 if(left_side_bearing) *left_side_bearing = 0.f;
NOVASVG_INLINE float canvas_get_dash_offset(const canvas_t *canvas)
Retrieves the current dash offset.
NOVASVG_INLINE void canvas_stroke_rect(canvas_t *canvas, float x, float y, float w, float h)
Strokes a rectangle with the current stroke settings.
NOVASVG_INLINE void canvas_clip(canvas_t *canvas)
A drawing operator that intersects the current clipping region with the current path according to the...
NOVASVG_INLINE int canvas_get_reference_count(const canvas_t *canvas)
Retrieves the reference count of the canvas.
NOVASVG_INLINE codepoint_t font_face_apply_ligature(font_face_t *face, text_iterator_t *it, codepoint_t codepoint)
NOVASVG_INLINE font_face_t * canvas_get_font_face(const canvas_t *canvas)
Retrieves the current font face used for text rendering on the canvas.
NOVASVG_INLINE void matrix_map_point(const matrix_t *matrix, const point_t *src, point_t *dst)
Transforms the src point using matrix and stores the result in dst.
NOVASVG_INLINE void canvas_arc(canvas_t *canvas, float cx, float cy, float r, float a0, float a1, bool ccw)
Adds an arc to the current path.
NOVASVG_INLINE void paint_destroy(paint_t *paint)
Decrements the reference count and destroys the paint if the count reaches zero.
NOVASVG_INLINE void canvas_move_to(canvas_t *canvas, float x, float y)
Moves the current point to a new position.
void span_buffer_init_rect(span_buffer_t *span_buffer, int x, int y, int width, int height)
NOVASVG_INLINE void matrix_map(const matrix_t *matrix, float x, float y, float *xx, float *yy)
Transforms the point (x, y) using matrix and stores the result in (xx, yy).
NOVASVG_INLINE path_t * path_create(void)
Creates a new path object.
void span_buffer_init(span_buffer_t *span_buffer)
NOVASVG_INLINE void font_face_cache_add(font_face_cache_t *cache, const char *family, bool bold, bool italic, font_face_t *face)
Add a font face to the cache with the specified family and style.
NOVASVG_INLINE bool canvas_clip_contains(canvas_t *canvas, float x, float y)
Tests whether a point lies within the current clipping region.
NOVASVG_INLINE void font_face_cache_destroy(font_face_cache_t *cache)
Decrement the reference count of a font‐face cache and destroy it when it reaches zero.
NOVASVG_INLINE void canvas_map_point(const canvas_t *canvas, const point_t *src, point_t *dst)
Transforms the src point using the current transformation matrix and stores the result in dst.
NOVASVG_INLINE float font_face_text_extents(font_face_t *face, float size, const void *text, int length, text_encoding_t encoding, rect_t *extents)
Computes the bounding box of a text string and its advance width.
NOVASVG_INLINE void canvas_set_rgba(canvas_t *canvas, float r, float g, float b, float a)
Sets the current paint to a solid color.
texture_type_t
Defines the type of texture, either plain or tiled.
NOVASVG_INLINE void canvas_clip_extents(canvas_t *canvas, rect_t *extents)
Gets the bounding box of the current clipping region.
NOVASVG_INLINE void canvas_fill_rect(canvas_t *canvas, float x, float y, float w, float h)
Fills a rectangle according to the current fill rule.
NOVASVG_INLINE void canvas_add_path(canvas_t *canvas, const path_t *path)
Adds a path to the current path.
NOVASVG_INLINE fill_rule_t canvas_get_fill_rule(const canvas_t *canvas)
Retrieves the current fill rule.
NOVASVG_INLINE state_t * state_create(void)
NOVASVG_INLINE float canvas_get_line_width(const canvas_t *canvas)
Retrieves the current line width.
NOVASVG_INLINE void canvas_quad_to(canvas_t *canvas, float x1, float y1, float x2, float y2)
Adds a quadratic Bézier curve to the current path.
NOVASVG_INLINE void canvas_font_metrics(const canvas_t *canvas, float *ascent, float *descent, float *line_gap, rect_t *extents)
Retrieves font metrics for the current font.
NOVASVG_INLINE paint_t * canvas_get_paint(const canvas_t *canvas, color_t *color)
Retrieves the current paint.
NOVASVG_INLINE void canvas_set_matrix(canvas_t *canvas, const matrix_t *matrix)
Resets the current transformation matrix to the specified matrix.
NOVASVG_INLINE void font_face_destroy(font_face_t *face)
Decrements the reference count and potentially destroys the font face.
NOVASVG_INLINE void canvas_destroy(canvas_t *canvas)
Decreases the reference count and destroys the canvas when it reaches zero.
NOVASVG_INLINE void path_move_to(path_t *path, float x, float y)
Moves the current point to a new position.
NOVASVG_INLINE void canvas_set_line_join(canvas_t *canvas, line_join_t line_join)
Sets the line join style.
NOVASVG_INLINE void path_arc_to(path_t *path, float rx, float ry, float angle, bool large_arc_flag, bool sweep_flag, float x, float y)
Adds an elliptical arc to the path.
NOVASVG_INLINE void path_cubic_to(path_t *path, float x1, float y1, float x2, float y2, float x3, float y3)
Adds a cubic Bézier curve to the path.
NOVASVG_INLINE float canvas_get_font_size(const canvas_t *canvas)
Retrieves the current font size used for text rendering on the canvas.
NOVASVG_INLINE void canvas_scale(canvas_t *canvas, float sx, float sy)
Scales the current transformation matrix by factors sx and sy.
NOVASVG_INLINE void canvas_stroke_extents(canvas_t *canvas, rect_t *extents)
Computes the bounding box of the area that would be affected by a stroke operation.
unsigned int codepoint_t
Represents a Unicode code point.
NOVASVG_INLINE void canvas_stroke(canvas_t *canvas)
A drawing operator that strokes the current path according to the current stroke settings.
NOVASVG_INLINE void canvas_circle(canvas_t *canvas, float cx, float cy, float r)
Adds a circle to the current path.
NOVASVG_INLINE float canvas_text_extents(canvas_t *canvas, const void *text, int length, text_encoding_t encoding, rect_t *extents)
Retrieves the extents of a text.
NOVASVG_INLINE void canvas_stroke_path(canvas_t *canvas, const path_t *path)
Strokes a path with the current stroke settings.
NOVASVG_INLINE float canvas_clip_text(canvas_t *canvas, const void *text, int length, text_encoding_t encoding, float x, float y)
Intersects the current clipping region with text at the specified origin.
NOVASVG_INLINE void path_add_path(path_t *path, const path_t *source, const matrix_t *matrix)
Adds a sub-path to the path.
NOVASVG_INLINE bool canvas_stroke_contains(canvas_t *canvas, float x, float y)
Tests whether a point lies within the current stroke region.
NOVASVG_INLINE float canvas_add_text(canvas_t *canvas, const void *text, int length, text_encoding_t encoding, float x, float y)
Adds text to the current path at the specified origin.
NOVASVG_INLINE void color_init_rgba(color_t *color, float r, float g, float b, float a)
Initializes a color using RGBA components in the 0-1 range.
NOVASVG_INLINE void canvas_new_path(canvas_t *canvas)
Starts a new path on the canvas.
NOVASVG_INLINE bool canvas_fill_contains(canvas_t *canvas, float x, float y)
Tests whether a point lies within the current fill region.
NOVASVG_INLINE void canvas_shear(canvas_t *canvas, float shx, float shy)
Shears the current transformation matrix by factors shx and shy.
NOVASVG_INLINE font_face_cache_t * font_face_cache_reference(font_face_cache_t *cache)
Increments the reference count of a font‐face cache.
NOVASVG_INLINE float canvas_get_opacity(const canvas_t *canvas)
Retrieves the current global opacity.
NOVASVG_INLINE path_t * canvas_get_path(const canvas_t *canvas)
Gets the current path from the canvas.
NOVASVG_INLINE void canvas_set_font_size(canvas_t *canvas, float size)
Sets the font size for text rendering on the canvas.
NOVASVG_INLINE void canvas_save(canvas_t *canvas)
Saves the current state of the canvas.
NOVASVG_INLINE canvas_t * canvas_reference(canvas_t *canvas)
Increases the reference count of the canvas.
NOVASVG_INLINE float canvas_stroke_text(canvas_t *canvas, const void *text, int length, text_encoding_t encoding, float x, float y)
Strokes a text at the specified origin.
NOVASVG_INLINE void path_get_current_point(const path_t *path, float *x, float *y)
Retrieves the current point of the path.
NOVASVG_INLINE paint_t * paint_reference(paint_t *paint)
Increments the reference count of a paint object.
NOVASVG_INLINE void canvas_fill(canvas_t *canvas)
A drawing operator that fills the current path according to the current fill rule.
NOVASVG_INLINE void path_destroy(path_t *path)
Decreases the reference count of a path object.
NOVASVG_INLINE void path_close(path_t *path)
Closes the current sub-path.
NOVASVG_INLINE void canvas_line_to(canvas_t *canvas, float x, float y)
Adds a straight line segment to the current path.
NOVASVG_INLINE void canvas_set_dash_offset(canvas_t *canvas, float offset)
Sets the dash offset.
NOVASVG_INLINE void font_face_get_glyph_metrics(font_face_t *face, float size, codepoint_t codepoint, float *advance_width, float *left_side_bearing, rect_t *extents)
Retrieves metrics for a specified glyph at a given size.
NOVASVG_INLINE float canvas_get_miter_limit(const canvas_t *canvas)
Retrieves the current miter limit.
NOVASVG_INLINE void canvas_arc_to(canvas_t *canvas, float rx, float ry, float angle, bool large_arc_flag, bool sweep_flag, float x, float y)
Adds an elliptical arc to the current path.
NOVASVG_INLINE void canvas_set_fill_rule(canvas_t *canvas, fill_rule_t winding)
Sets the fill rule.
void surface_destroy(surface_t *surface)
Decrements the reference count and destroys the surface if the count reaches zero.
NOVASVG_INLINE font_face_t * font_face_cache_get(font_face_cache_t *cache, const char *family, bool bold, bool italic)
Retrieve a font face from the cache by family and style.
NOVASVG_INLINE void canvas_set_opacity(canvas_t *canvas, float opacity)
Sets the global opacity.
NOVASVG_INLINE void state_destroy(state_t *state)
NOVASVG_INLINE void matrix_init_identity(matrix_t *matrix)
Initializes a 2D transformation matrix to the identity matrix.
NOVASVG_INLINE bool canvas_select_font_face(canvas_t *canvas, const char *family, bool bold, bool italic)
Selects and sets the current font face on the canvas.
NOVASVG_INLINE surface_t * canvas_get_surface(const canvas_t *canvas)
Gets the surface associated with the canvas.
NOVASVG_INLINE void canvas_ellipse(canvas_t *canvas, float cx, float cy, float rx, float ry)
Adds an ellipse to the current path.
NOVASVG_INLINE void state_reset(state_t *state)
NOVASVG_INLINE void canvas_set_radial_gradient(canvas_t *canvas, float cx, float cy, float cr, float fx, float fy, float fr, spread_method_t spread, const gradient_stop_t *stops, int nstops, const matrix_t *matrix)
Sets the current paint to a radial gradient.
line_join_t
Defines the shape used at the corners of paths.
NOVASVG_INLINE void matrix_shear(matrix_t *matrix, float shx, float shy)
Shears the matrix by factors shx and shy.
fill_rule_t
Defines fill rule types for filling paths.
@ NOVASVG_FILL_RULE_NON_ZERO
Non-zero winding fill rule.
NOVASVG_INLINE void canvas_map_rect(const canvas_t *canvas, const rect_t *src, rect_t *dst)
Transforms the src rectangle using the current transformation matrix and stores the result in dst.
NOVASVG_INLINE canvas_t * canvas_create(surface_t *surface)
Creates a drawing context on a surface.
NOVASVG_INLINE void canvas_set_rgb(canvas_t *canvas, float r, float g, float b)
Sets the current paint to a solid color.
NOVASVG_INLINE line_join_t canvas_get_line_join(const canvas_t *canvas)
Retrieves the current line join style.
NOVASVG_INLINE float font_face_get_kern_advance(font_face_t *face, float size, codepoint_t ch1, codepoint_t ch2)
NOVASVG_INLINE void canvas_get_current_point(const canvas_t *canvas, float *x, float *y)
Retrieves the current point of the canvas.
NOVASVG_INLINE void path_add_ellipse(path_t *path, float cx, float cy, float rx, float ry)
Adds an ellipse to the path.
NOVASVG_INLINE void canvas_set_paint(canvas_t *canvas, paint_t *paint)
Sets the current paint.
NOVASVG_INLINE void canvas_paint(canvas_t *canvas)
A drawing operator that paints the current clipping region using the current paint.
NOVASVG_INLINE void path_add_arc(path_t *path, float cx, float cy, float r, float a0, float a1, bool ccw)
Adds an arc to the path.
NOVASVG_INLINE void canvas_fill_path(canvas_t *canvas, const path_t *path)
Fills a path according to the current fill rule.
NOVASVG_INLINE line_cap_t canvas_get_line_cap(const canvas_t *canvas)
Retrieves the current line cap style.
NOVASVG_INLINE void path_quad_to(path_t *path, float x1, float y1, float x2, float y2)
Adds a quadratic Bézier curve to the path.
NOVASVG_INLINE void canvas_add_font_face(canvas_t *canvas, const char *family, bool bold, bool italic, font_face_t *face)
Add a font face to the canvas using the specified family and style.
NOVASVG_INLINE void canvas_translate(canvas_t *canvas, float tx, float ty)
Translates the current transformation matrix by offsets tx and ty.
NOVASVG_INLINE void blend(canvas_t *canvas, const span_buffer_t *span_buffer)
NOVASVG_INLINE void canvas_set_font_face(canvas_t *canvas, font_face_t *face)
Sets the font face for text rendering on the canvas.
enum novasvg::render::text_encoding text_encoding_t
Text encodings used for converting text data to code points.
NOVASVG_INLINE void canvas_get_matrix(const canvas_t *canvas, matrix_t *matrix)
Stores the current transformation matrix in matrix.
NOVASVG_INLINE void canvas_reset_matrix(canvas_t *canvas)
Resets the current transformation matrix to the identity matrix.
NOVASVG_INLINE font_face_cache_t * canvas_get_font_face_cache(const canvas_t *canvas)
Returns the font-face cache associated with the canvas.
line_cap_t
Defines the shape used at the ends of open subpaths.
NOVASVG_INLINE void canvas_stroke_preserve(canvas_t *canvas)
A drawing operator that strokes the current path according to the current stroke settings.
NOVASVG_INLINE paint_t * paint_create_linear_gradient(float x1, float y1, float x2, float y2, spread_method_t spread, const gradient_stop_t *stops, int nstops, const matrix_t *matrix)
Creates a linear gradient paint.
NOVASVG_INLINE int render_version(void)
Gets the version of the novasvg rendering library.
NOVASVG_INLINE void canvas_transform(canvas_t *canvas, const matrix_t *matrix)
Multiplies the current transformation matrix with the specified matrix.
NOVASVG_INLINE void path_reset(path_t *path)
Resets the path.
NOVASVG_INLINE void path_add_round_rect(path_t *path, float x, float y, float w, float h, float rx, float ry)
Adds a rounded rectangle to the path.
NOVASVG_INLINE operator_t canvas_get_operator(const canvas_t *canvas)
Retrieves the current compositing operator.
NOVASVG_INLINE void canvas_set_texture(canvas_t *canvas, surface_t *surface, texture_type_t type, float opacity, const matrix_t *matrix)
Sets the current paint to a texture.
operator_t
Defines compositing operations.
@ NOVASVG_OPERATOR_SRC_OVER
Source is composited over destination.
void span_buffer_reset(span_buffer_t *span_buffer)
NOVASVG_INLINE codepoint_t text_iterator_next(text_iterator_t *it)
Retrieves the next code point and advances the iterator.
NOVASVG_INLINE bool canvas_add_font_file(canvas_t *canvas, const char *family, bool bold, bool italic, const char *filename, int ttcindex)
Load a font face from a file and add it to the canvas using the specified family and style.
NOVASVG_INLINE void canvas_set_miter_limit(canvas_t *canvas, float miter_limit)
Sets the miter limit.
NOVASVG_INLINE paint_t * paint_create_texture(surface_t *surface, texture_type_t type, float opacity, const matrix_t *matrix)
Creates a texture paint from a surface.
NOVASVG_INLINE void canvas_set_operator(canvas_t *canvas, operator_t op)
Sets the compositing operator.
NOVASVG_INLINE void canvas_set_linear_gradient(canvas_t *canvas, float x1, float y1, float x2, float y2, spread_method_t spread, const gradient_stop_t *stops, int nstops, const matrix_t *matrix)
Sets the current paint to a linear gradient.
NOVASVG_INLINE void font_face_get_metrics(const font_face_t *face, float size, float *ascent, float *descent, float *line_gap, rect_t *extents)
Retrieves metrics for a font face at a specified size.
NOVASVG_INLINE void canvas_fill_preserve(canvas_t *canvas)
A drawing operator that fills the current path according to the current fill rule.
void span_buffer_destroy(span_buffer_t *span_buffer)
NOVASVG_INLINE float canvas_add_glyph(canvas_t *canvas, codepoint_t codepoint, float x, float y)
Adds a glyph to the current path at the specified origin.
NOVASVG_INLINE bool text_iterator_has_next(const text_iterator_t *it)
Checks if there are more code points to iterate.
void span_buffer_copy(span_buffer_t *span_buffer, const span_buffer_t *source)
NOVASVG_INLINE void canvas_fill_extents(canvas_t *canvas, rect_t *extents)
Computes the bounding box of the area that would be affected by a fill operation.
NOVASVG_INLINE void canvas_set_line_width(canvas_t *canvas, float line_width)
Sets the line width.
NOVASVG_INLINE void canvas_set_line_cap(canvas_t *canvas, line_cap_t line_cap)
Sets the line cap style.
NOVASVG_INLINE void matrix_scale(matrix_t *matrix, float sx, float sy)
Scales the matrix by factors sx and sy
NOVASVG_INLINE bool font_face_cache_add_file(font_face_cache_t *cache, const char *family, bool bold, bool italic, const char *filename, int ttcindex)
Load a font face from a file and add it to the cache with the specified family and style.
NOVASVG_INLINE void state_copy(state_t *state, const state_t *source)
NOVASVG_INLINE void path_line_to(path_t *path, float x, float y)
Adds a straight line segment to the path.
NOVASVG_INLINE void canvas_set_color(canvas_t *canvas, const color_t *color)
Sets the current paint to a solid color.
void span_buffer_extents(span_buffer_t *span_buffer, rect_t *extents)
NOVASVG_INLINE float font_face_get_glyph_path(font_face_t *face, float size, float x, float y, codepoint_t codepoint, path_t *path)
Retrieves the path of a glyph and its advance width.
NOVASVG_INLINE void canvas_cubic_to(canvas_t *canvas, float x1, float y1, float x2, float y2, float x3, float y3)
Adds a cubic Bézier curve to the current path.
NOVASVG_INLINE void matrix_multiply(matrix_t *matrix, const matrix_t *left, const matrix_t *right)
Multiplies left and right matrices and stores the result in matrix.
NOVASVG_INLINE int canvas_get_dash_array(const canvas_t *canvas, const float **dashes)
Retrieves the current dash pattern.
NOVASVG_INLINE void canvas_close_path(canvas_t *canvas)
Closes the current path.
NOVASVG_INLINE paint_t * paint_create_radial_gradient(float cx, float cy, float cr, float fx, float fy, float fr, spread_method_t spread, const gradient_stop_t *stops, int nstops, const matrix_t *matrix)
Creates a radial gradient paint.
void span_buffer_intersect(span_buffer_t *span_buffer, const span_buffer_t *a, const span_buffer_t *b)
spread_method_t
Defines the spread method for gradients.
NOVASVG_INLINE void canvas_set_font_face_cache(canvas_t *canvas, font_face_cache_t *cache)
Assigns a font-face cache to the canvas for font management.
NOVASVG_INLINE void matrix_rotate(matrix_t *matrix, float angle)
Rotates the matrix by the specified angle (in radians).
NOVASVG_INLINE void canvas_set_font(canvas_t *canvas, font_face_t *face, float size)
Sets the font face and size for text rendering on the canvas.
NOVASVG_INLINE void canvas_map(const canvas_t *canvas, float x, float y, float *xx, float *yy)
Transforms the point (x, y) using the current transformation matrix and stores the result in (xx,...
NOVASVG_INLINE void canvas_restore(canvas_t *canvas)
Restores the canvas to the most recently saved state.
NOVASVG_INLINE void text_iterator_init(text_iterator_t *it, const void *text, int length, text_encoding_t encoding)
Initializes a text iterator.
NOVASVG_INLINE void path_add_circle(path_t *path, float cx, float cy, float r)
Adds a circle to the path.
NOVASVG_INLINE void canvas_rotate(canvas_t *canvas, float angle)
Rotates the current transformation matrix by the specified angle (in radians).
NOVASVG_INLINE void canvas_rect(canvas_t *canvas, float x, float y, float w, float h)
Adds a rectangle to the current path.
NOVASVG_INLINE void canvas_clip_preserve(canvas_t *canvas)
A drawing operator that intersects the current clipping region with the current path according to the...
surface_t * surface_reference(surface_t *surface)
Increments the reference count for a surface.
NOVASVG_INLINE void canvas_set_dash_array(canvas_t *canvas, const float *dashes, int ndashes)
Sets the dash pattern.
NOVASVG_INLINE const char * render_version_string(void)
Gets the version of the novasvg rendering library as a string.
NOVASVG_INLINE float canvas_fill_text(canvas_t *canvas, const void *text, int length, text_encoding_t encoding, float x, float y)
Fills a text at the specified origin.
bool span_buffer_contains(const span_buffer_t *span_buffer, float x, float y)
NOVASVG_INLINE void matrix_translate(matrix_t *matrix, float tx, float ty)
Adds a translation with offsets tx and ty to the matrix.
NOVASVG_INLINE void matrix_map_rect(const matrix_t *matrix, const rect_t *src, rect_t *dst)
Transforms the src rectangle using matrix and stores the result in dst.
NOVASVG_INLINE font_face_t * font_face_reference(font_face_t *face)
Increments the reference count of a font face.
NOVASVG_INLINE void canvas_set_dash(canvas_t *canvas, float offset, const float *dashes, int ndashes)
Sets the dash pattern.
NOVASVG_INLINE font_face_cache_t * font_face_cache_create(void)
Create a new, empty font‐face cache.
NOVASVG_INLINE void canvas_glyph_metrics(canvas_t *canvas, codepoint_t codepoint, float *advance_width, float *left_side_bearing, rect_t *extents)
Retrieves metrics for a specific glyph.
void rasterize(span_buffer_t *span_buffer, const path_t *path, const matrix_t *matrix, const rect_t *clip_rect, const stroke_data_t *stroke_data, fill_rule_t winding)
NOVASVG_INLINE void canvas_clip_path(canvas_t *canvas, const path_t *path)
Intersects the current clipping region with a path according to the current fill rule.
NOVASVG_INLINE void path_add_rect(path_t *path, float x, float y, float w, float h)
Adds a rectangle to the path.
NOVASVG_INLINE void canvas_clip_rect(canvas_t *canvas, float x, float y, float w, float h)
Intersects the current clipping region with a rectangle according to the current fill rule.
NOVASVG_INLINE void canvas_round_rect(canvas_t *canvas, float x, float y, float w, float h, float rx, float ry)
Adds a rounded rectangle to the current path.
Main namespace for the NovaSVG library.
#define novasvg_get_reference_count(ob)
#define novasvg_destroy_reference(ob)
#define novasvg_init_reference(ob)
#define novasvg_increment_reference(ob)
#define NOVASVG_DEFAULT_STROKE_STYLE
#define NOVASVG_BLACK_COLOR
#define NOVASVG_RENDER_VERSION_STRING
#define NOVASVG_MAKE_RECT(x, y, w, h)
#define NOVASVG_RENDER_VERSION
#define NOVASVG_IDENTITY_MATRIX
font_face_cache_t * face_cache
Represents a color with red, green, blue, and alpha components.
float b
Blue component (0 to 1).
float g
Green component (0 to 1).
float a
Alpha (opacity) component (0 to 1).
float r
Red component (0 to 1).
Represents a gradient stop.
A structure representing a 2D transformation matrix.
A structure representing a point in 2D space.
A structure representing a rectangle in 2D space.
float x
The x-coordinate of the top-left corner of the rectangle.
float w
The width of the rectangle.
float h
The height of the rectangle.
float y
The y-coordinate of the top-left corner of the rectangle.
struct novasvg::render::stroke_dash_t::@13 array
Iterator for traversing code points in text data.
std::string text
UTF-8; ' ' marks a forced line break ( ,.
#define novasvg_array_append_data(array, newdata, count)
#define novasvg_array_destroy(array)
#define novasvg_array_append(array, other)
#define novasvg_array_clear(array)
#define novasvg_array_init(array)