NovaSVG 0.10.0
A header-only SVG library
Loading...
Searching...
No Matches
render.h File Reference
#include <stdbool.h>
Include dependency graph for render.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  novasvg::render::point
 A structure representing a point in 2D space. More...
 
struct  novasvg::render::rect
 A structure representing a rectangle in 2D space. More...
 
struct  novasvg::render::matrix
 A structure representing a 2D transformation matrix. More...
 
union  novasvg::render::path_element
 
struct  novasvg::render::path_iterator
 Iterator for traversing path elements in a path. More...
 
struct  novasvg::render::text_iterator
 Iterator for traversing code points in text data. More...
 
struct  novasvg::render::color
 Represents a color with red, green, blue, and alpha components. More...
 
struct  novasvg::render::gradient_stop_t
 Represents a gradient stop. More...
 

Namespaces

namespace  novasvg
 Main namespace for the NovaSVG library.
 
namespace  novasvg::render
 

Macros

#define NOVASVG_EXPORT
 
#define NOVASVG_IMPORT
 
#define NOVASVG_API   NOVASVG_IMPORT
 
#define NOVASVG_RENDER_VERSION_MAJOR   1
 
#define NOVASVG_RENDER_VERSION_MINOR   3
 
#define NOVASVG_RENDER_VERSION_MICRO   2
 
#define NOVASVG_RENDER_VERSION_ENCODE(major, minor, micro)   (((major) * 10000) + ((minor) * 100) + ((micro) * 1))
 
#define NOVASVG_RENDER_VERSION   NOVASVG_RENDER_VERSION_ENCODE(NOVASVG_RENDER_VERSION_MAJOR, NOVASVG_RENDER_VERSION_MINOR, NOVASVG_RENDER_VERSION_MICRO)
 
#define NOVASVG_RENDER_VERSION_XSTRINGIZE(major, minor, micro)   #major"."#minor"."#micro
 
#define NOVASVG_RENDER_VERSION_STRINGIZE(major, minor, micro)   NOVASVG_RENDER_VERSION_XSTRINGIZE(major, minor, micro)
 
#define NOVASVG_RENDER_VERSION_STRING   NOVASVG_RENDER_VERSION_STRINGIZE(NOVASVG_RENDER_VERSION_MAJOR, NOVASVG_RENDER_VERSION_MINOR, NOVASVG_RENDER_VERSION_MICRO)
 
#define NOVASVG_PI   3.14159265358979323846f
 
#define NOVASVG_TWO_PI   6.28318530717958647693f
 
#define NOVASVG_HALF_PI   1.57079632679489661923f
 
#define NOVASVG_SQRT2   1.41421356237309504880f
 
#define NOVASVG_KAPPA   0.55228474983079339840f
 
#define NOVASVG_DEG2RAD(x)   ((x) * (NOVASVG_PI / 180.0f))
 
#define NOVASVG_RAD2DEG(x)   ((x) * (180.0f / NOVASVG_PI))
 
#define NOVASVG_MAKE_POINT(x, y)   (point_t{x, y})
 
#define NOVASVG_EMPTY_POINT   NOVASVG_MAKE_POINT(0, 0)
 
#define NOVASVG_MAKE_RECT(x, y, w, h)   (rect_t{x, y, w, h})
 
#define NOVASVG_EMPTY_RECT   NOVASVG_MAKE_RECT(0, 0, 0, 0)
 
#define NOVASVG_MAKE_MATRIX(a, b, c, d, e, f)   (matrix_t{a, b, c, d, e, f})
 
#define NOVASVG_MAKE_SCALE(x, y)   NOVASVG_MAKE_MATRIX(x, 0, 0, y, 0, 0)
 
#define NOVASVG_MAKE_TRANSLATE(x, y)   NOVASVG_MAKE_MATRIX(1, 0, 0, 1, x, y)
 
#define NOVASVG_IDENTITY_MATRIX   NOVASVG_MAKE_MATRIX(1, 0, 0, 1, 0, 0)
 
#define NOVASVG_MAKE_COLOR(r, g, b, a)   (color_t{r, g, b, a})
 
#define NOVASVG_BLACK_COLOR   NOVASVG_MAKE_COLOR(0, 0, 0, 1)
 
#define NOVASVG_WHITE_COLOR   NOVASVG_MAKE_COLOR(1, 1, 1, 1)
 
#define NOVASVG_RED_COLOR   NOVASVG_MAKE_COLOR(1, 0, 0, 1)
 
#define NOVASVG_GREEN_COLOR   NOVASVG_MAKE_COLOR(0, 1, 0, 1)
 
#define NOVASVG_BLUE_COLOR   NOVASVG_MAKE_COLOR(0, 0, 1, 1)
 
#define NOVASVG_YELLOW_COLOR   NOVASVG_MAKE_COLOR(1, 1, 0, 1)
 
#define NOVASVG_CYAN_COLOR   NOVASVG_MAKE_COLOR(0, 1, 1, 1)
 
#define NOVASVG_MAGENTA_COLOR   NOVASVG_MAKE_COLOR(1, 0, 1, 1)
 

Typedefs

typedef void(* novasvg::render::destroy_func_t) (void *closure)
 A function pointer type for a cleanup callback.
 
typedef void(* novasvg::render::write_func_t) (void *closure, void *data, int size)
 A function pointer type for a write callback.
 
typedef struct novasvg::render::point novasvg::render::point_t
 A structure representing a point in 2D space.
 
typedef struct novasvg::render::rect novasvg::render::rect_t
 A structure representing a rectangle in 2D space.
 
using novasvg::render::matrix_t = struct novasvg::render::matrix
 A structure representing a 2D transformation matrix.
 
typedef struct path novasvg::render::path_t
 Represents a 2D path for drawing operations.
 
typedef enum novasvg::render::path_command novasvg::render::path_command_t
 Enumeration defining path commands.
 
typedef union novasvg::render::path_element novasvg::render::path_element_t
 
typedef struct novasvg::render::path_iterator novasvg::render::path_iterator_t
 Iterator for traversing path elements in a path.
 
typedef void(* novasvg::render::path_traverse_func_t) (void *closure, path_command_t command, const point_t *points, int npoints)
 Callback function type for traversing a path.
 
typedef enum novasvg::render::text_encoding novasvg::render::text_encoding_t
 Text encodings used for converting text data to code points.
 
typedef struct novasvg::render::text_iterator novasvg::render::text_iterator_t
 Iterator for traversing code points in text data.
 
typedef unsigned int novasvg::render::codepoint_t
 Represents a Unicode code point.
 
typedef struct font_face novasvg::render::font_face_t
 Represents a font face.
 
typedef struct font_face_cache novasvg::render::font_face_cache_t
 Represents a cache of loaded font faces.
 
typedef struct novasvg::render::color novasvg::render::color_t
 Represents a color with red, green, blue, and alpha components.
 
using novasvg::render::surface_t = struct surface
 Represents an image surface for drawing operations.
 
typedef struct paint novasvg::render::paint_t
 Represents a paint object used for drawing operations.
 
typedef struct canvas novasvg::render::canvas_t
 Represents a drawing context.
 

Enumerations

enum  novasvg::render::path_command { novasvg::render::NOVASVG_PATH_COMMAND_MOVE_TO , novasvg::render::NOVASVG_PATH_COMMAND_LINE_TO , novasvg::render::NOVASVG_PATH_COMMAND_CUBIC_TO , novasvg::render::NOVASVG_PATH_COMMAND_CLOSE }
 Enumeration defining path commands. More...
 
enum  novasvg::render::text_encoding { novasvg::render::NOVASVG_TEXT_ENCODING_LATIN1 , novasvg::render::NOVASVG_TEXT_ENCODING_UTF8 , novasvg::render::NOVASVG_TEXT_ENCODING_UTF16 , novasvg::render::NOVASVG_TEXT_ENCODING_UTF32 }
 Text encodings used for converting text data to code points. More...
 
enum  novasvg::render::texture_type_t { novasvg::render::NOVASVG_TEXTURE_TYPE_PLAIN , novasvg::render::NOVASVG_TEXTURE_TYPE_TILED }
 Defines the type of texture, either plain or tiled. More...
 
enum  novasvg::render::spread_method_t { novasvg::render::NOVASVG_SPREAD_METHOD_PAD , novasvg::render::NOVASVG_SPREAD_METHOD_REFLECT , novasvg::render::NOVASVG_SPREAD_METHOD_REPEAT }
 Defines the spread method for gradients. More...
 
enum  novasvg::render::fill_rule_t { novasvg::render::NOVASVG_FILL_RULE_NON_ZERO , novasvg::render::NOVASVG_FILL_RULE_EVEN_ODD }
 Defines fill rule types for filling paths. More...
 
enum  novasvg::render::operator_t {
  novasvg::render::NOVASVG_OPERATOR_CLEAR , novasvg::render::NOVASVG_OPERATOR_SRC , novasvg::render::NOVASVG_OPERATOR_DST , novasvg::render::NOVASVG_OPERATOR_SRC_OVER ,
  novasvg::render::NOVASVG_OPERATOR_DST_OVER , novasvg::render::NOVASVG_OPERATOR_SRC_IN , novasvg::render::NOVASVG_OPERATOR_DST_IN , novasvg::render::NOVASVG_OPERATOR_SRC_OUT ,
  novasvg::render::NOVASVG_OPERATOR_DST_OUT , novasvg::render::NOVASVG_OPERATOR_SRC_ATOP , novasvg::render::NOVASVG_OPERATOR_DST_ATOP , novasvg::render::NOVASVG_OPERATOR_XOR ,
  novasvg::render::NOVASVG_OPERATOR_MULTIPLY , novasvg::render::NOVASVG_OPERATOR_SCREEN , novasvg::render::NOVASVG_OPERATOR_DARKEN , novasvg::render::NOVASVG_OPERATOR_LIGHTEN ,
  novasvg::render::NOVASVG_OPERATOR_DIFFERENCE , novasvg::render::NOVASVG_OPERATOR_EXCLUSION
}
 Defines compositing operations. More...
 
enum  novasvg::render::line_cap_t { novasvg::render::NOVASVG_LINE_CAP_BUTT , novasvg::render::NOVASVG_LINE_CAP_ROUND , novasvg::render::NOVASVG_LINE_CAP_SQUARE }
 Defines the shape used at the ends of open subpaths. More...
 
enum  novasvg::render::line_join_t { novasvg::render::NOVASVG_LINE_JOIN_MITER , novasvg::render::NOVASVG_LINE_JOIN_ROUND , novasvg::render::NOVASVG_LINE_JOIN_BEVEL }
 Defines the shape used at the corners of paths. More...
 

Functions

NOVASVG_INLINE int novasvg::render::render_version (void)
 Gets the version of the novasvg rendering library.
 
NOVASVG_INLINE const char * novasvg::render::render_version_string (void)
 Gets the version of the novasvg rendering library as a string.
 
NOVASVG_INLINE void novasvg::render::matrix_init (matrix_t *matrix, float a, float b, float c, float d, float e, float f)
 Initializes a 2D transformation matrix.
 
NOVASVG_INLINE void novasvg::render::matrix_init_identity (matrix_t *matrix)
 Initializes a 2D transformation matrix to the identity matrix.
 
NOVASVG_INLINE void novasvg::render::matrix_init_translate (matrix_t *matrix, float tx, float ty)
 Initializes a 2D transformation matrix for translation.
 
NOVASVG_INLINE void novasvg::render::matrix_init_scale (matrix_t *matrix, float sx, float sy)
 Initializes a 2D transformation matrix for scaling.
 
NOVASVG_INLINE void novasvg::render::matrix_init_rotate (matrix_t *matrix, float angle)
 Initializes a 2D transformation matrix for rotation.
 
NOVASVG_INLINE void novasvg::render::matrix_init_shear (matrix_t *matrix, float shx, float shy)
 Initializes a 2D transformation matrix for shearing.
 
NOVASVG_INLINE void novasvg::render::matrix_translate (matrix_t *matrix, float tx, float ty)
 Adds a translation with offsets tx and ty to the matrix.
 
NOVASVG_INLINE void novasvg::render::matrix_scale (matrix_t *matrix, float sx, float sy)
 Scales the matrix by factors sx and sy
 
NOVASVG_INLINE void novasvg::render::matrix_rotate (matrix_t *matrix, float angle)
 Rotates the matrix by the specified angle (in radians).
 
NOVASVG_INLINE void novasvg::render::matrix_shear (matrix_t *matrix, float shx, float shy)
 Shears the matrix by factors shx and shy.
 
NOVASVG_INLINE void novasvg::render::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 bool novasvg::render::matrix_invert (const matrix_t *matrix, matrix_t *inverse)
 Calculates the inverse of matrix and stores it in inverse.
 
NOVASVG_INLINE void novasvg::render::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 void novasvg::render::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 novasvg::render::matrix_map_points (const matrix_t *matrix, const point_t *src, point_t *dst, int count)
 Transforms an array of src points using matrix and stores the results in dst.
 
NOVASVG_INLINE void novasvg::render::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 bool novasvg::render::matrix_parse (matrix_t *matrix, const char *data, int length)
 Parses an SVG transform string into a matrix.
 
NOVASVG_INLINE void novasvg::render::path_iterator_init (path_iterator_t *it, const path_t *path)
 Initializes a path iterator for a given path.
 
NOVASVG_INLINE bool novasvg::render::path_iterator_has_next (const path_iterator_t *it)
 Checks if there are more elements to iterate over.
 
NOVASVG_INLINE path_command_t novasvg::render::path_iterator_next (path_iterator_t *it, point_t points[3])
 Retrieves the current command and its associated points, then advances the iterator.
 
NOVASVG_INLINE path_t * novasvg::render::path_create (void)
 Creates a new path object.
 
NOVASVG_INLINE path_t * novasvg::render::path_reference (path_t *path)
 Increases the reference count of a path object.
 
NOVASVG_INLINE void novasvg::render::path_destroy (path_t *path)
 Decreases the reference count of a path object.
 
NOVASVG_INLINE int novasvg::render::path_get_reference_count (const path_t *path)
 Retrieves the reference count of a path object.
 
NOVASVG_INLINE int novasvg::render::path_get_elements (const path_t *path, const path_element_t **elements)
 Retrieves the elements of a path.
 
NOVASVG_INLINE void novasvg::render::path_move_to (path_t *path, float x, float y)
 Moves the current point to a new position.
 
NOVASVG_INLINE void novasvg::render::path_line_to (path_t *path, float x, float y)
 Adds a straight line segment to the path.
 
NOVASVG_INLINE void novasvg::render::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 novasvg::render::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 void novasvg::render::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 novasvg::render::path_close (path_t *path)
 Closes the current sub-path.
 
NOVASVG_INLINE void novasvg::render::path_get_current_point (const path_t *path, float *x, float *y)
 Retrieves the current point of the path.
 
NOVASVG_INLINE void novasvg::render::path_reserve (path_t *path, int count)
 Reserves space for path elements.
 
NOVASVG_INLINE void novasvg::render::path_reset (path_t *path)
 Resets the path.
 
NOVASVG_INLINE void novasvg::render::path_add_rect (path_t *path, float x, float y, float w, float h)
 Adds a rectangle to the path.
 
NOVASVG_INLINE void novasvg::render::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 void novasvg::render::path_add_ellipse (path_t *path, float cx, float cy, float rx, float ry)
 Adds an ellipse to the path.
 
NOVASVG_INLINE void novasvg::render::path_add_circle (path_t *path, float cx, float cy, float r)
 Adds a circle to the path.
 
NOVASVG_INLINE void novasvg::render::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 novasvg::render::path_add_path (path_t *path, const path_t *source, const matrix_t *matrix)
 Adds a sub-path to the path.
 
NOVASVG_INLINE void novasvg::render::path_transform (path_t *path, const matrix_t *matrix)
 Applies a transformation matrix to the path.
 
NOVASVG_INLINE void novasvg::render::path_traverse (const path_t *path, path_traverse_func_t traverse_func, void *closure)
 Traverses the path and calls the callback for each element.
 
NOVASVG_INLINE void novasvg::render::path_traverse_flatten (const path_t *path, path_traverse_func_t traverse_func, void *closure)
 Traverses the path with Bézier curves flattened to line segments.
 
NOVASVG_INLINE void novasvg::render::path_traverse_dashed (const path_t *path, float offset, const float *dashes, int ndashes, path_traverse_func_t traverse_func, void *closure)
 Traverses the path with a dashed pattern and calls the callback for each segment.
 
NOVASVG_INLINE path_t * novasvg::render::path_clone (const path_t *path)
 Creates a copy of the path.
 
NOVASVG_INLINE path_t * novasvg::render::path_clone_flatten (const path_t *path)
 Creates a copy of the path with Bézier curves flattened to line segments.
 
NOVASVG_INLINE path_t * novasvg::render::path_clone_dashed (const path_t *path, float offset, const float *dashes, int ndashes)
 Creates a copy of the path with a dashed pattern applied.
 
NOVASVG_INLINE float novasvg::render::path_extents (const path_t *path, rect_t *extents, bool tight)
 Computes the bounding box and total length of the path.
 
NOVASVG_INLINE float novasvg::render::path_length (const path_t *path)
 Calculates the total length of the path.
 
NOVASVG_INLINE bool novasvg::render::path_parse (path_t *path, const char *data, int length)
 Parses SVG path data into a path_t object.
 
NOVASVG_INLINE void novasvg::render::text_iterator_init (text_iterator_t *it, const void *text, int length, text_encoding_t encoding)
 Initializes a text iterator.
 
NOVASVG_INLINE bool novasvg::render::text_iterator_has_next (const text_iterator_t *it)
 Checks if there are more code points to iterate.
 
NOVASVG_INLINE codepoint_t novasvg::render::text_iterator_next (text_iterator_t *it)
 Retrieves the next code point and advances the iterator.
 
NOVASVG_INLINE font_face_t * novasvg::render::font_face_load_from_file (const char *filename, int ttcindex)
 Loads a font face from a file.
 
NOVASVG_INLINE font_face_t * novasvg::render::font_face_load_from_data (const void *data, unsigned int length, int ttcindex, destroy_func_t destroy_func, void *closure)
 Loads a font face from memory.
 
NOVASVG_INLINE font_face_t * novasvg::render::font_face_reference (font_face_t *face)
 Increments the reference count of a font face.
 
NOVASVG_INLINE void novasvg::render::font_face_destroy (font_face_t *face)
 Decrements the reference count and potentially destroys the font face.
 
NOVASVG_INLINE int novasvg::render::font_face_get_reference_count (const font_face_t *face)
 Retrieves the current reference count of a font face.
 
NOVASVG_INLINE void novasvg::render::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 novasvg::render::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 novasvg::render::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 float novasvg::render::font_face_traverse_glyph_path (font_face_t *face, float size, float x, float y, codepoint_t codepoint, path_traverse_func_t traverse_func, void *closure)
 Traverses the path of a glyph and calls a callback for each path element.
 
NOVASVG_INLINE float novasvg::render::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 font_face_cache_t * novasvg::render::font_face_cache_create (void)
 Create a new, empty font‐face cache.
 
NOVASVG_INLINE font_face_cache_t * novasvg::render::font_face_cache_reference (font_face_cache_t *cache)
 Increments the reference count of a font‐face cache.
 
NOVASVG_INLINE void novasvg::render::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 int novasvg::render::font_face_cache_reference_count (const font_face_cache_t *cache)
 Retrieve the current reference count of a font‐face cache.
 
NOVASVG_INLINE void novasvg::render::font_face_cache_reset (font_face_cache_t *cache)
 Remove all entries from a font‐face cache.
 
NOVASVG_INLINE void novasvg::render::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 novasvg::render::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 font_face_t * novasvg::render::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 int novasvg::render::font_face_cache_load_file (font_face_cache_t *cache, const char *filename)
 Load all font faces from a file and add them to the cache.
 
NOVASVG_INLINE int novasvg::render::font_face_cache_load_dir (font_face_cache_t *cache, const char *dirname)
 Load all font faces from files in a directory recursively and add them to the cache.
 
NOVASVG_INLINE int novasvg::render::font_face_cache_load_sys (font_face_cache_t *cache)
 Load all available system font faces and add them to the cache.
 
NOVASVG_INLINE void novasvg::render::color_init_rgb (color_t *color, float r, float g, float b)
 Initializes a color using RGB components in the 0-1 range.
 
NOVASVG_INLINE void novasvg::render::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 novasvg::render::color_init_rgb8 (color_t *color, int r, int g, int b)
 Initializes a color using RGB components in the 0-255 range.
 
NOVASVG_INLINE void novasvg::render::color_init_rgba8 (color_t *color, int r, int g, int b, int a)
 Initializes a color using RGBA components in the 0-255 range.
 
NOVASVG_INLINE void novasvg::render::color_init_rgba32 (color_t *color, unsigned int value)
 Initializes a color from a 32-bit unsigned RGBA value.
 
NOVASVG_INLINE void novasvg::render::color_init_argb32 (color_t *color, unsigned int value)
 Initializes a color from a 32-bit unsigned ARGB value.
 
NOVASVG_INLINE void novasvg::render::color_init_hsl (color_t *color, float h, float s, float l)
 Initializes a color with the specified HSL color values.
 
NOVASVG_INLINE void novasvg::render::color_init_hsla (color_t *color, float h, float s, float l, float a)
 Initializes a color with the specified HSLA color values.
 
NOVASVG_INLINE unsigned int novasvg::render::color_to_rgba32 (const color_t *color)
 Converts a color to a 32-bit unsigned RGBA value.
 
NOVASVG_INLINE unsigned int novasvg::render::color_to_argb32 (const color_t *color)
 Converts a color to a 32-bit unsigned ARGB value.
 
NOVASVG_INLINE int novasvg::render::color_parse (color_t *color, const char *data, int length)
 Parses a color from a string using CSS color syntax.
 
surface_t * novasvg::render::surface_create (int width, int height)
 Creates a new image surface with the specified dimensions.
 
surface_t * novasvg::render::surface_create_for_data (unsigned char *data, int width, int height, int stride)
 Creates an image surface using existing pixel data.
 
surface_t * novasvg::render::surface_load_from_image_file (const char *filename)
 Loads an image surface from a file.
 
surface_t * novasvg::render::surface_load_from_image_data (const void *data, int length)
 Loads an image surface from raw image data.
 
surface_t * novasvg::render::surface_load_from_image_base64 (const char *data, int length)
 Loads an image surface from base64-encoded data.
 
surface_t * novasvg::render::surface_reference (surface_t *surface)
 Increments the reference count for a surface.
 
void novasvg::render::surface_destroy (surface_t *surface)
 Decrements the reference count and destroys the surface if the count reaches zero.
 
int novasvg::render::surface_get_reference_count (const surface_t *surface)
 Gets the current reference count of a surface.
 
unsigned char * novasvg::render::surface_get_data (const surface_t *surface)
 Gets the pixel data of the surface.
 
int novasvg::render::surface_get_width (const surface_t *surface)
 Gets the width of the surface.
 
int novasvg::render::surface_get_height (const surface_t *surface)
 Gets the height of the surface.
 
int novasvg::render::surface_get_stride (const surface_t *surface)
 Gets the stride of the surface.
 
void novasvg::render::surface_clear (surface_t *surface, const color_t *color)
 Clears the entire surface with the specified color.
 
void novasvg::render::convert_argb_to_rgba (unsigned char *dst, const unsigned char *src, int width, int height, int stride)
 Converts pixel data from premultiplied ARGB to RGBA format.
 
void novasvg::render::convert_rgba_to_argb (unsigned char *dst, const unsigned char *src, int width, int height, int stride)
 Converts pixel data from RGBA to premultiplied ARGB format.
 
NOVASVG_INLINE paint_t * novasvg::render::paint_create_rgb (float r, float g, float b)
 Creates a solid RGB paint.
 
NOVASVG_INLINE paint_t * novasvg::render::paint_create_rgba (float r, float g, float b, float a)
 Creates a solid RGBA paint.
 
NOVASVG_INLINE paint_t * novasvg::render::paint_create_color (const color_t *color)
 Creates a solid color paint.
 
NOVASVG_INLINE paint_t * novasvg::render::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 paint_t * novasvg::render::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.
 
NOVASVG_INLINE paint_t * novasvg::render::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 paint_t * novasvg::render::paint_reference (paint_t *paint)
 Increments the reference count of a paint object.
 
NOVASVG_INLINE void novasvg::render::paint_destroy (paint_t *paint)
 Decrements the reference count and destroys the paint if the count reaches zero.
 
NOVASVG_INLINE int novasvg::render::paint_get_reference_count (const paint_t *paint)
 Retrieves the reference count of a paint object.
 
NOVASVG_INLINE canvas_t * novasvg::render::canvas_create (surface_t *surface)
 Creates a drawing context on a surface.
 
NOVASVG_INLINE canvas_t * novasvg::render::canvas_reference (canvas_t *canvas)
 Increases the reference count of the canvas.
 
NOVASVG_INLINE void novasvg::render::canvas_destroy (canvas_t *canvas)
 Decreases the reference count and destroys the canvas when it reaches zero.
 
NOVASVG_INLINE int novasvg::render::canvas_get_reference_count (const canvas_t *canvas)
 Retrieves the reference count of the canvas.
 
NOVASVG_INLINE surface_t * novasvg::render::canvas_get_surface (const canvas_t *canvas)
 Gets the surface associated with the canvas.
 
NOVASVG_INLINE void novasvg::render::canvas_save (canvas_t *canvas)
 Saves the current state of the canvas.
 
NOVASVG_INLINE void novasvg::render::canvas_restore (canvas_t *canvas)
 Restores the canvas to the most recently saved state.
 
NOVASVG_INLINE void novasvg::render::canvas_set_rgb (canvas_t *canvas, float r, float g, float b)
 Sets the current paint to a solid color.
 
NOVASVG_INLINE void novasvg::render::canvas_set_rgba (canvas_t *canvas, float r, float g, float b, float a)
 Sets the current paint to a solid color.
 
NOVASVG_INLINE void novasvg::render::canvas_set_color (canvas_t *canvas, const color_t *color)
 Sets the current paint to a solid color.
 
NOVASVG_INLINE void novasvg::render::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 novasvg::render::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.
 
NOVASVG_INLINE void novasvg::render::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.
 
NOVASVG_INLINE void novasvg::render::canvas_set_paint (canvas_t *canvas, paint_t *paint)
 Sets the current paint.
 
NOVASVG_INLINE paint_t * novasvg::render::canvas_get_paint (const canvas_t *canvas, color_t *color)
 Retrieves the current paint.
 
NOVASVG_INLINE void novasvg::render::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 font_face_cache_t * novasvg::render::canvas_get_font_face_cache (const canvas_t *canvas)
 Returns the font-face cache associated with the canvas.
 
NOVASVG_INLINE void novasvg::render::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 bool novasvg::render::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 bool novasvg::render::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 void novasvg::render::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 novasvg::render::canvas_set_font_face (canvas_t *canvas, font_face_t *face)
 Sets the font face for text rendering on the canvas.
 
NOVASVG_INLINE font_face_t * novasvg::render::canvas_get_font_face (const canvas_t *canvas)
 Retrieves the current font face used for text rendering on the canvas.
 
NOVASVG_INLINE void novasvg::render::canvas_set_font_size (canvas_t *canvas, float size)
 Sets the font size for text rendering on the canvas.
 
NOVASVG_INLINE float novasvg::render::canvas_get_font_size (const canvas_t *canvas)
 Retrieves the current font size used for text rendering on the canvas.
 
NOVASVG_INLINE void novasvg::render::canvas_set_fill_rule (canvas_t *canvas, fill_rule_t winding)
 Sets the fill rule.
 
NOVASVG_INLINE fill_rule_t novasvg::render::canvas_get_fill_rule (const canvas_t *canvas)
 Retrieves the current fill rule.
 
NOVASVG_INLINE void novasvg::render::canvas_set_operator (canvas_t *canvas, operator_t op)
 Sets the compositing operator.
 
NOVASVG_INLINE operator_t novasvg::render::canvas_get_operator (const canvas_t *canvas)
 Retrieves the current compositing operator.
 
NOVASVG_INLINE void novasvg::render::canvas_set_opacity (canvas_t *canvas, float opacity)
 Sets the global opacity.
 
NOVASVG_INLINE float novasvg::render::canvas_get_opacity (const canvas_t *canvas)
 Retrieves the current global opacity.
 
NOVASVG_INLINE void novasvg::render::canvas_set_line_width (canvas_t *canvas, float line_width)
 Sets the line width.
 
NOVASVG_INLINE float novasvg::render::canvas_get_line_width (const canvas_t *canvas)
 Retrieves the current line width.
 
NOVASVG_INLINE void novasvg::render::canvas_set_line_cap (canvas_t *canvas, line_cap_t line_cap)
 Sets the line cap style.
 
NOVASVG_INLINE line_cap_t novasvg::render::canvas_get_line_cap (const canvas_t *canvas)
 Retrieves the current line cap style.
 
NOVASVG_INLINE void novasvg::render::canvas_set_line_join (canvas_t *canvas, line_join_t line_join)
 Sets the line join style.
 
NOVASVG_INLINE line_join_t novasvg::render::canvas_get_line_join (const canvas_t *canvas)
 Retrieves the current line join style.
 
NOVASVG_INLINE void novasvg::render::canvas_set_miter_limit (canvas_t *canvas, float miter_limit)
 Sets the miter limit.
 
NOVASVG_INLINE float novasvg::render::canvas_get_miter_limit (const canvas_t *canvas)
 Retrieves the current miter limit.
 
NOVASVG_INLINE void novasvg::render::canvas_set_dash (canvas_t *canvas, float offset, const float *dashes, int ndashes)
 Sets the dash pattern.
 
NOVASVG_INLINE void novasvg::render::canvas_set_dash_offset (canvas_t *canvas, float offset)
 Sets the dash offset.
 
NOVASVG_INLINE float novasvg::render::canvas_get_dash_offset (const canvas_t *canvas)
 Retrieves the current dash offset.
 
NOVASVG_INLINE void novasvg::render::canvas_set_dash_array (canvas_t *canvas, const float *dashes, int ndashes)
 Sets the dash pattern.
 
NOVASVG_INLINE int novasvg::render::canvas_get_dash_array (const canvas_t *canvas, const float **dashes)
 Retrieves the current dash pattern.
 
NOVASVG_INLINE void novasvg::render::canvas_translate (canvas_t *canvas, float tx, float ty)
 Translates the current transformation matrix by offsets tx and ty.
 
NOVASVG_INLINE void novasvg::render::canvas_scale (canvas_t *canvas, float sx, float sy)
 Scales the current transformation matrix by factors sx and sy.
 
NOVASVG_INLINE void novasvg::render::canvas_shear (canvas_t *canvas, float shx, float shy)
 Shears the current transformation matrix by factors shx and shy.
 
NOVASVG_INLINE void novasvg::render::canvas_rotate (canvas_t *canvas, float angle)
 Rotates the current transformation matrix by the specified angle (in radians).
 
NOVASVG_INLINE void novasvg::render::canvas_transform (canvas_t *canvas, const matrix_t *matrix)
 Multiplies the current transformation matrix with the specified matrix.
 
NOVASVG_INLINE void novasvg::render::canvas_reset_matrix (canvas_t *canvas)
 Resets the current transformation matrix to the identity matrix.
 
NOVASVG_INLINE void novasvg::render::canvas_set_matrix (canvas_t *canvas, const matrix_t *matrix)
 Resets the current transformation matrix to the specified matrix.
 
NOVASVG_INLINE void novasvg::render::canvas_get_matrix (const canvas_t *canvas, matrix_t *matrix)
 Stores the current transformation matrix in matrix.
 
NOVASVG_INLINE void novasvg::render::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, yy).
 
NOVASVG_INLINE void novasvg::render::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 void novasvg::render::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 void novasvg::render::canvas_move_to (canvas_t *canvas, float x, float y)
 Moves the current point to a new position.
 
NOVASVG_INLINE void novasvg::render::canvas_line_to (canvas_t *canvas, float x, float y)
 Adds a straight line segment to the current path.
 
NOVASVG_INLINE void novasvg::render::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 novasvg::render::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 novasvg::render::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 novasvg::render::canvas_rect (canvas_t *canvas, float x, float y, float w, float h)
 Adds a rectangle to the current path.
 
NOVASVG_INLINE void novasvg::render::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.
 
NOVASVG_INLINE void novasvg::render::canvas_ellipse (canvas_t *canvas, float cx, float cy, float rx, float ry)
 Adds an ellipse to the current path.
 
NOVASVG_INLINE void novasvg::render::canvas_circle (canvas_t *canvas, float cx, float cy, float r)
 Adds a circle to the current path.
 
NOVASVG_INLINE void novasvg::render::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 novasvg::render::canvas_add_path (canvas_t *canvas, const path_t *path)
 Adds a path to the current path.
 
NOVASVG_INLINE void novasvg::render::canvas_new_path (canvas_t *canvas)
 Starts a new path on the canvas.
 
NOVASVG_INLINE void novasvg::render::canvas_close_path (canvas_t *canvas)
 Closes the current path.
 
NOVASVG_INLINE void novasvg::render::canvas_get_current_point (const canvas_t *canvas, float *x, float *y)
 Retrieves the current point of the canvas.
 
NOVASVG_INLINE path_t * novasvg::render::canvas_get_path (const canvas_t *canvas)
 Gets the current path from the canvas.
 
NOVASVG_INLINE bool novasvg::render::canvas_fill_contains (canvas_t *canvas, float x, float y)
 Tests whether a point lies within the current fill region.
 
NOVASVG_INLINE bool novasvg::render::canvas_stroke_contains (canvas_t *canvas, float x, float y)
 Tests whether a point lies within the current stroke region.
 
NOVASVG_INLINE bool novasvg::render::canvas_clip_contains (canvas_t *canvas, float x, float y)
 Tests whether a point lies within the current clipping region.
 
NOVASVG_INLINE void novasvg::render::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 novasvg::render::canvas_stroke_extents (canvas_t *canvas, rect_t *extents)
 Computes the bounding box of the area that would be affected by a stroke operation.
 
NOVASVG_INLINE void novasvg::render::canvas_clip_extents (canvas_t *canvas, rect_t *extents)
 Gets the bounding box of the current clipping region.
 
NOVASVG_INLINE void novasvg::render::canvas_fill (canvas_t *canvas)
 A drawing operator that fills the current path according to the current fill rule.
 
NOVASVG_INLINE void novasvg::render::canvas_stroke (canvas_t *canvas)
 A drawing operator that strokes the current path according to the current stroke settings.
 
NOVASVG_INLINE void novasvg::render::canvas_clip (canvas_t *canvas)
 A drawing operator that intersects the current clipping region with the current path according to the current fill rule.
 
NOVASVG_INLINE void novasvg::render::canvas_paint (canvas_t *canvas)
 A drawing operator that paints the current clipping region using the current paint.
 
NOVASVG_INLINE void novasvg::render::canvas_fill_preserve (canvas_t *canvas)
 A drawing operator that fills the current path according to the current fill rule.
 
NOVASVG_INLINE void novasvg::render::canvas_stroke_preserve (canvas_t *canvas)
 A drawing operator that strokes the current path according to the current stroke settings.
 
NOVASVG_INLINE void novasvg::render::canvas_clip_preserve (canvas_t *canvas)
 A drawing operator that intersects the current clipping region with the current path according to the current fill rule.
 
NOVASVG_INLINE void novasvg::render::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 novasvg::render::canvas_fill_path (canvas_t *canvas, const path_t *path)
 Fills a path according to the current fill rule.
 
NOVASVG_INLINE void novasvg::render::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 novasvg::render::canvas_stroke_path (canvas_t *canvas, const path_t *path)
 Strokes a path with the current stroke settings.
 
NOVASVG_INLINE void novasvg::render::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 novasvg::render::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 float novasvg::render::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 float novasvg::render::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 float novasvg::render::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.
 
NOVASVG_INLINE float novasvg::render::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 float novasvg::render::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 novasvg::render::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 void novasvg::render::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.
 
NOVASVG_INLINE float novasvg::render::canvas_text_extents (canvas_t *canvas, const void *text, int length, text_encoding_t encoding, rect_t *extents)
 Retrieves the extents of a text.
 

Macro Definition Documentation

◆ NOVASVG_API

#define NOVASVG_API   NOVASVG_IMPORT

◆ NOVASVG_BLACK_COLOR

#define NOVASVG_BLACK_COLOR   NOVASVG_MAKE_COLOR(0, 0, 0, 1)

Definition at line 1028 of file render.h.

◆ NOVASVG_BLUE_COLOR

#define NOVASVG_BLUE_COLOR   NOVASVG_MAKE_COLOR(0, 0, 1, 1)

Definition at line 1032 of file render.h.

◆ NOVASVG_CYAN_COLOR

#define NOVASVG_CYAN_COLOR   NOVASVG_MAKE_COLOR(0, 1, 1, 1)

Definition at line 1034 of file render.h.

◆ NOVASVG_DEG2RAD

#define NOVASVG_DEG2RAD (   x)    ((x) * (NOVASVG_PI / 180.0f))

Definition at line 108 of file render.h.

◆ NOVASVG_EMPTY_POINT

#define NOVASVG_EMPTY_POINT   NOVASVG_MAKE_POINT(0, 0)

Definition at line 120 of file render.h.

◆ NOVASVG_EMPTY_RECT

#define NOVASVG_EMPTY_RECT   NOVASVG_MAKE_RECT(0, 0, 0, 0)

Definition at line 133 of file render.h.

◆ NOVASVG_EXPORT

#define NOVASVG_EXPORT

Definition at line 46 of file render.h.

◆ NOVASVG_GREEN_COLOR

#define NOVASVG_GREEN_COLOR   NOVASVG_MAKE_COLOR(0, 1, 0, 1)

Definition at line 1031 of file render.h.

◆ NOVASVG_HALF_PI

#define NOVASVG_HALF_PI   1.57079632679489661923f

Definition at line 104 of file render.h.

◆ NOVASVG_IDENTITY_MATRIX

#define NOVASVG_IDENTITY_MATRIX   NOVASVG_MAKE_MATRIX(1, 0, 0, 1, 0, 0)

Definition at line 150 of file render.h.

◆ NOVASVG_IMPORT

#define NOVASVG_IMPORT

Definition at line 47 of file render.h.

◆ NOVASVG_KAPPA

#define NOVASVG_KAPPA   0.55228474983079339840f

Definition at line 106 of file render.h.

◆ NOVASVG_MAGENTA_COLOR

#define NOVASVG_MAGENTA_COLOR   NOVASVG_MAKE_COLOR(1, 0, 1, 1)

Definition at line 1035 of file render.h.

◆ NOVASVG_MAKE_COLOR

#define NOVASVG_MAKE_COLOR (   r,
  g,
  b,
  a 
)    (color_t{r, g, b, a})

Definition at line 1026 of file render.h.

◆ NOVASVG_MAKE_MATRIX

#define NOVASVG_MAKE_MATRIX (   a,
  b,
  c,
  d,
  e,
  f 
)    (matrix_t{a, b, c, d, e, f})

Definition at line 147 of file render.h.

◆ NOVASVG_MAKE_POINT

#define NOVASVG_MAKE_POINT (   x,
  y 
)    (point_t{x, y})

Definition at line 119 of file render.h.

◆ NOVASVG_MAKE_RECT

#define NOVASVG_MAKE_RECT (   x,
  y,
  w,
  h 
)    (rect_t{x, y, w, h})

Definition at line 132 of file render.h.

◆ NOVASVG_MAKE_SCALE

#define NOVASVG_MAKE_SCALE (   x,
  y 
)    NOVASVG_MAKE_MATRIX(x, 0, 0, y, 0, 0)

Definition at line 148 of file render.h.

◆ NOVASVG_MAKE_TRANSLATE

#define NOVASVG_MAKE_TRANSLATE (   x,
  y 
)    NOVASVG_MAKE_MATRIX(1, 0, 0, 1, x, y)

Definition at line 149 of file render.h.

◆ NOVASVG_PI

#define NOVASVG_PI   3.14159265358979323846f

Definition at line 102 of file render.h.

◆ NOVASVG_RAD2DEG

#define NOVASVG_RAD2DEG (   x)    ((x) * (180.0f / NOVASVG_PI))

Definition at line 109 of file render.h.

◆ NOVASVG_RED_COLOR

#define NOVASVG_RED_COLOR   NOVASVG_MAKE_COLOR(1, 0, 0, 1)

Definition at line 1030 of file render.h.

◆ NOVASVG_RENDER_VERSION

◆ NOVASVG_RENDER_VERSION_ENCODE

#define NOVASVG_RENDER_VERSION_ENCODE (   major,
  minor,
  micro 
)    (((major) * 10000) + ((minor) * 100) + ((micro) * 1))

Definition at line 69 of file render.h.

◆ NOVASVG_RENDER_VERSION_MAJOR

#define NOVASVG_RENDER_VERSION_MAJOR   1

Definition at line 65 of file render.h.

◆ NOVASVG_RENDER_VERSION_MICRO

#define NOVASVG_RENDER_VERSION_MICRO   2

Definition at line 67 of file render.h.

◆ NOVASVG_RENDER_VERSION_MINOR

#define NOVASVG_RENDER_VERSION_MINOR   3

Definition at line 66 of file render.h.

◆ NOVASVG_RENDER_VERSION_STRING

◆ NOVASVG_RENDER_VERSION_STRINGIZE

#define NOVASVG_RENDER_VERSION_STRINGIZE (   major,
  minor,
  micro 
)    NOVASVG_RENDER_VERSION_XSTRINGIZE(major, minor, micro)

Definition at line 73 of file render.h.

◆ NOVASVG_RENDER_VERSION_XSTRINGIZE

#define NOVASVG_RENDER_VERSION_XSTRINGIZE (   major,
  minor,
  micro 
)    #major"."#minor"."#micro

Definition at line 72 of file render.h.

◆ NOVASVG_SQRT2

#define NOVASVG_SQRT2   1.41421356237309504880f

Definition at line 105 of file render.h.

◆ NOVASVG_TWO_PI

#define NOVASVG_TWO_PI   6.28318530717958647693f

Definition at line 103 of file render.h.

◆ NOVASVG_WHITE_COLOR

#define NOVASVG_WHITE_COLOR   NOVASVG_MAKE_COLOR(1, 1, 1, 1)

Definition at line 1029 of file render.h.

◆ NOVASVG_YELLOW_COLOR

#define NOVASVG_YELLOW_COLOR   NOVASVG_MAKE_COLOR(1, 1, 0, 1)

Definition at line 1033 of file render.h.