libgpac
Documentation of the core library of GPAC
SVG Scenegraph

Scenegraph for SVG files. More...

+ Collaboration diagram for SVG Scenegraph:

Data Structures

struct  GF_DOMAttribute
 
struct  GF_DOMFullAttribute
 
struct  GF_DOMNode
 
struct  GF_DOMFullNode
 
struct  GF_DOMText
 
struct  GF_DOMUpdates
 
struct  GF_DOMEventTarget
 
struct  GF_DOMMediaEvent
 
struct  GF_DOM_Event
 
struct  GF_DOMHandler
 
struct  SVGPropertiesPointers
 

Macros

#define GF_DOM_BASE_ATTRIBUTE
 
#define GF_DOM_FULL_ATTRIBUTE    GF_DOM_ATTRIBUTE \
 
#define GF_DOM_BASE_NODE
 
#define GF_DOM_BASE_LISTENER
 

Typedefs

typedef struct _smil_timing_rti SMIL_Timing_RTI
 
typedef void gf_sg_smil_evaluate(struct _smil_timing_rti *rti, Fixed normalized_simple_time, GF_SGSMILTimingEvalState state)
 
typedef struct __dom_base_attribute SVGAttribute
 
typedef struct __dom_full_attribute SVGExtendedAttribute
 
typedef struct __dom_base_node SVG_Element
 
typedef struct __xml_ev_handler SVG_handlerElement
 
typedef struct _all_atts SVGAllAttributes
 

Enumerations

enum  {
  TAG_DOM_ATTRIBUTE_NULL , TAG_DOM_ATT_any , TAG_XML_ATT_RANGE_FIRST , TAG_XML_ATT_id = TAG_XML_ATT_RANGE_FIRST ,
  TAG_XML_ATT_base , TAG_XML_ATT_lang , TAG_XML_ATT_space , TAG_XML_ATT_RANGE_LAST ,
  TAG_XLINK_ATT_RANGE_FIRST , TAG_XLINK_ATT_type = TAG_XLINK_ATT_RANGE_FIRST , TAG_XLINK_ATT_role , TAG_XLINK_ATT_arcrole ,
  TAG_XLINK_ATT_title , TAG_XLINK_ATT_href , TAG_XLINK_ATT_show , TAG_XLINK_ATT_actuate ,
  TAG_XLINK_ATT_RANGE_LAST , TAG_XMLEV_ATT_RANGE_FIRST , TAG_XMLEV_ATT_event , TAG_XMLEV_ATT_phase ,
  TAG_XMLEV_ATT_propagate , TAG_XMLEV_ATT_defaultAction , TAG_XMLEV_ATT_observer , TAG_XMLEV_ATT_target ,
  TAG_XMLEV_ATT_handler , TAG_XMLEV_ATT_RANGE_LAST , TAG_LSR_ATT_RANGE_FIRST , TAG_LSR_ATT_enabled ,
  TAG_LSR_ATT_RANGE_LAST , TAG_LSR_ATT_children , TAG_LSR_ATT_overflow , TAG_LSR_ATT_rotation ,
  TAG_LSR_ATT_scale , TAG_LSR_ATT_translation , TAG_LSR_ATT_svg_width , TAG_LSR_ATT_svg_height ,
  TAG_LSR_ATT_textContent , TAG_LSR_ATT_text_display , TAG_SVG_ATT_RANGE_FIRST , TAG_SVG_ATT_id = TAG_SVG_ATT_RANGE_FIRST ,
  TAG_SVG_ATT__class , TAG_SVG_ATT_requiredFeatures , TAG_SVG_ATT_requiredExtensions , TAG_SVG_ATT_requiredFormats ,
  TAG_SVG_ATT_requiredFonts , TAG_SVG_ATT_systemLanguage , TAG_SVG_ATT_display , TAG_SVG_ATT_visibility ,
  TAG_SVG_ATT_image_rendering , TAG_SVG_ATT_pointer_events , TAG_SVG_ATT_shape_rendering , TAG_SVG_ATT_text_rendering ,
  TAG_SVG_ATT_audio_level , TAG_SVG_ATT_viewport_fill , TAG_SVG_ATT_viewport_fill_opacity , TAG_SVG_ATT_overflow ,
  TAG_SVG_ATT_fill_opacity , TAG_SVG_ATT_stroke_opacity , TAG_SVG_ATT_fill , TAG_SVG_ATT_fill_rule ,
  TAG_SVG_ATT_filter , TAG_SVG_ATT_stroke , TAG_SVG_ATT_stroke_dasharray , TAG_SVG_ATT_stroke_dashoffset ,
  TAG_SVG_ATT_stroke_linecap , TAG_SVG_ATT_stroke_linejoin , TAG_SVG_ATT_stroke_miterlimit , TAG_SVG_ATT_stroke_width ,
  TAG_SVG_ATT_color , TAG_SVG_ATT_color_rendering , TAG_SVG_ATT_vector_effect , TAG_SVG_ATT_solid_color ,
  TAG_SVG_ATT_solid_opacity , TAG_SVG_ATT_display_align , TAG_SVG_ATT_line_increment , TAG_SVG_ATT_stop_color ,
  TAG_SVG_ATT_stop_opacity , TAG_SVG_ATT_font_family , TAG_SVG_ATT_font_size , TAG_SVG_ATT_font_style ,
  TAG_SVG_ATT_font_variant , TAG_SVG_ATT_font_weight , TAG_SVG_ATT_text_anchor , TAG_SVG_ATT_text_align ,
  TAG_SVG_ATT_text_decoration , TAG_SVG_ATT_focusHighlight , TAG_SVG_ATT_externalResourcesRequired , TAG_SVG_ATT_focusable ,
  TAG_SVG_ATT_nav_next , TAG_SVG_ATT_nav_prev , TAG_SVG_ATT_nav_up , TAG_SVG_ATT_nav_up_right ,
  TAG_SVG_ATT_nav_right , TAG_SVG_ATT_nav_down_right , TAG_SVG_ATT_nav_down , TAG_SVG_ATT_nav_down_left ,
  TAG_SVG_ATT_nav_left , TAG_SVG_ATT_nav_up_left , TAG_SVG_ATT_transform , TAG_SVG_ATT_target ,
  TAG_SVG_ATT_attributeName , TAG_SVG_ATT_attributeType , TAG_SVG_ATT_begin , TAG_SVG_ATT_dur ,
  TAG_SVG_ATT_end , TAG_SVG_ATT_repeatCount , TAG_SVG_ATT_repeatDur , TAG_SVG_ATT_restart ,
  TAG_SVG_ATT_smil_fill , TAG_SVG_ATT_min , TAG_SVG_ATT_max , TAG_SVG_ATT_to ,
  TAG_SVG_ATT_calcMode , TAG_SVG_ATT_values , TAG_SVG_ATT_keyTimes , TAG_SVG_ATT_keySplines ,
  TAG_SVG_ATT_from , TAG_SVG_ATT_by , TAG_SVG_ATT_additive , TAG_SVG_ATT_accumulate ,
  TAG_SVG_ATT_path , TAG_SVG_ATT_keyPoints , TAG_SVG_ATT_rotate , TAG_SVG_ATT_origin ,
  TAG_SVG_ATT_transform_type , TAG_SVG_ATT_clipBegin , TAG_SVG_ATT_clipEnd , TAG_SVG_ATT_syncBehavior ,
  TAG_SVG_ATT_syncTolerance , TAG_SVG_ATT_syncMaster , TAG_SVG_ATT_syncReference , TAG_SVG_ATT_x ,
  TAG_SVG_ATT_y , TAG_SVG_ATT_width , TAG_SVG_ATT_height , TAG_SVG_ATT_preserveAspectRatio ,
  TAG_SVG_ATT_initialVisibility , TAG_SVG_ATT_type , TAG_SVG_ATT_cx , TAG_SVG_ATT_cy ,
  TAG_SVG_ATT_r , TAG_SVG_ATT_cursorManager_x , TAG_SVG_ATT_cursorManager_y , TAG_SVG_ATT_rx ,
  TAG_SVG_ATT_ry , TAG_SVG_ATT_horiz_adv_x , TAG_SVG_ATT_horiz_origin_x , TAG_SVG_ATT_font_stretch ,
  TAG_SVG_ATT_unicode_range , TAG_SVG_ATT_panose_1 , TAG_SVG_ATT_widths , TAG_SVG_ATT_bbox ,
  TAG_SVG_ATT_units_per_em , TAG_SVG_ATT_stemv , TAG_SVG_ATT_stemh , TAG_SVG_ATT_slope ,
  TAG_SVG_ATT_cap_height , TAG_SVG_ATT_x_height , TAG_SVG_ATT_accent_height , TAG_SVG_ATT_ascent ,
  TAG_SVG_ATT_descent , TAG_SVG_ATT_ideographic , TAG_SVG_ATT_alphabetic , TAG_SVG_ATT_mathematical ,
  TAG_SVG_ATT_hanging , TAG_SVG_ATT_underline_position , TAG_SVG_ATT_underline_thickness , TAG_SVG_ATT_strikethrough_position ,
  TAG_SVG_ATT_strikethrough_thickness , TAG_SVG_ATT_overline_position , TAG_SVG_ATT_overline_thickness , TAG_SVG_ATT_d ,
  TAG_SVG_ATT_unicode , TAG_SVG_ATT_glyph_name , TAG_SVG_ATT_arabic_form , TAG_SVG_ATT_lang ,
  TAG_SVG_ATT_u1 , TAG_SVG_ATT_g1 , TAG_SVG_ATT_u2 , TAG_SVG_ATT_g2 ,
  TAG_SVG_ATT_k , TAG_SVG_ATT_opacity , TAG_SVG_ATT_x1 , TAG_SVG_ATT_y1 ,
  TAG_SVG_ATT_x2 , TAG_SVG_ATT_y2 , TAG_SVG_ATT_filterUnits , TAG_SVG_ATT_gradientUnits ,
  TAG_SVG_ATT_spreadMethod , TAG_SVG_ATT_gradientTransform , TAG_SVG_ATT_pathLength , TAG_SVG_ATT_points ,
  TAG_SVG_ATT_mediaSize , TAG_SVG_ATT_mediaTime , TAG_SVG_ATT_mediaCharacterEncoding , TAG_SVG_ATT_mediaContentEncodings ,
  TAG_SVG_ATT_bandwidth , TAG_SVG_ATT_fx , TAG_SVG_ATT_fy , TAG_SVG_ATT_size ,
  TAG_SVG_ATT_choice , TAG_SVG_ATT_delta , TAG_SVG_ATT_offset , TAG_SVG_ATT_syncBehaviorDefault ,
  TAG_SVG_ATT_syncToleranceDefault , TAG_SVG_ATT_viewBox , TAG_SVG_ATT_zoomAndPan , TAG_SVG_ATT_version ,
  TAG_SVG_ATT_baseProfile , TAG_SVG_ATT_contentScriptType , TAG_SVG_ATT_snapshotTime , TAG_SVG_ATT_timelineBegin ,
  TAG_SVG_ATT_playbackOrder , TAG_SVG_ATT_editable , TAG_SVG_ATT_text_x , TAG_SVG_ATT_text_y ,
  TAG_SVG_ATT_text_rotate , TAG_SVG_ATT_transformBehavior , TAG_SVG_ATT_overlay , TAG_SVG_ATT_fullscreen ,
  TAG_SVG_ATT_motionTransform , TAG_SVG_ATT_clip_path , TAG_SVG_ATT_filter_transfer_type , TAG_SVG_ATT_filter_table_values ,
  TAG_SVG_ATT_filter_intercept , TAG_SVG_ATT_filter_amplitude , TAG_SVG_ATT_filter_exponent , TAG_GSVG_ATT_useAsPrimary ,
  TAG_GSVG_ATT_depthOffset , TAG_GSVG_ATT_depthGain
}
 
enum  GF_NamespaceType {
  GF_XMLNS_UNDEFINED = 0 , GF_XMLNS_XML , GF_XMLNS_XLINK , GF_XMLNS_XMLEV ,
  GF_XMLNS_LASER , GF_XMLNS_SVG , GF_XMLNS_XBL , GF_XMLNS_SVG_GPAC_EXTENSION
}
 
enum  { GF_DOM_TEXT_REGULAR = 0 , GF_DOM_TEXT_CDATA , GF_DOM_TEXT_INSERTED }
 
enum  GF_DOMEventPhase {
  GF_DOM_EVENT_PHASE_CAPTURE = 1 , GF_DOM_EVENT_PHASE_AT_TARGET = 2 , GF_DOM_EVENT_PHASE_BUBBLE = 3 , GF_DOM_EVENT_CANCEL_MASK = 0xE0 ,
  GF_DOM_EVENT_PHASE_CANCEL = 1<<5 , GF_DOM_EVENT_PHASE_CANCEL_ALL = 1<<6 , GF_DOM_EVENT_PHASE_PREVENT = 1<<7
}
 
enum  GF_DOMEventTargetType {
  GF_DOM_EVENT_TARGET_NODE , GF_DOM_EVENT_TARGET_DOCUMENT , GF_DOM_EVENT_TARGET_MSE_MEDIASOURCE , GF_DOM_EVENT_TARGET_MSE_SOURCEBUFFERLIST ,
  GF_DOM_EVENT_TARGET_MSE_SOURCEBUFFER , GF_DOM_EVENT_TARGET_XHR
}
 
enum  GF_DOMEventCategory {
  GF_DOM_EVENT_UNKNOWN_CATEGORY , GF_DOM_EVENT_DOM = 1 , GF_DOM_EVENT_MUTATION = 1<<1 , GF_DOM_EVENT_MOUSE = 1<<2 ,
  GF_DOM_EVENT_FOCUS = 1<<3 , GF_DOM_EVENT_KEY = 1<<4 , GF_DOM_EVENT_UI = 1<<5 , GF_DOM_EVENT_TEXT = 1<<6 ,
  GF_DOM_EVENT_SVG = 1<<7 , GF_DOM_EVENT_SMIL = 1<<8 , GF_DOM_EVENT_LASER = 1<<9 , GF_DOM_EVENT_MEDIA = 1<<10 ,
  GF_DOM_EVENT_MEDIASOURCE = 1<<11 , GF_DOM_EVENT_GPAC = 1<<30 , GF_DOM_EVENT_FAKE = 0x80000000
}
 
enum  GF_SGSMILTimingEvalState {
  SMIL_TIMING_EVAL_NONE = 0 , SMIL_TIMING_EVAL_UPDATE , SMIL_TIMING_EVAL_FREEZE , SMIL_TIMING_EVAL_REMOVE ,
  SMIL_TIMING_EVAL_REPEAT , SMIL_TIMING_EVAL_FRACTION , SMIL_TIMING_EVAL_DISCARD , SMIL_TIMING_EVAL_ACTIVATE ,
  SMIL_TIMING_EVAL_DEACTIVATE
}
 

Functions

GF_NamespaceType gf_xml_get_namespace_id (char *name)
 
GF_Err gf_sg_add_namespace (GF_SceneGraph *sg, char *name, char *qname)
 
GF_Err gf_sg_remove_namespace (GF_SceneGraph *sg, char *name, char *qname)
 
GF_NamespaceType gf_sg_get_namespace_code (GF_SceneGraph *sg, char *qname)
 
GF_NamespaceType gf_sg_get_namespace_code_from_name (GF_SceneGraph *sg, char *name)
 
const char * gf_sg_get_namespace_qname (GF_SceneGraph *sg, GF_NamespaceType xmlns_id)
 
const char * gf_sg_get_namespace (GF_SceneGraph *sg, GF_NamespaceType xmlns_id)
 
void gf_xml_push_namespaces (GF_DOMNode *elt)
 
void gf_xml_pop_namespaces (GF_DOMNode *elt)
 
GF_NamespaceType gf_xml_get_element_namespace (GF_Node *n)
 
GF_DOMTextgf_dom_add_text_node (GF_Node *parent, char *text_data)
 
void gf_dom_set_textContent (GF_Node *n, char *text)
 
char * gf_dom_flatten_textContent (GF_Node *n)
 
GF_DOMTextgf_dom_new_text_node (GF_SceneGraph *sg)
 
GF_DOMUpdatesgf_dom_add_updates_node (GF_Node *parent)
 
GF_DOMEventTargetgf_dom_event_target_new (GF_DOMEventTargetType type, void *obj)
 
GF_Err gf_sg_listener_associate (GF_Node *listener, GF_DOMEventTarget *evt_target)
 
Bool gf_dom_event_fire (GF_Node *node, GF_DOM_Event *event)
 
Bool gf_sg_fire_dom_event (GF_DOMEventTarget *et, GF_DOM_Event *event, GF_SceneGraph *sg, GF_Node *n)
 
Bool gf_dom_event_fire_ex (GF_Node *node, GF_DOM_Event *event, GF_List *use_stack)
 
GF_EventType gf_dom_event_type_by_name (const char *name)
 
const char * gf_dom_event_get_name (GF_EventType type)
 
const char * gf_dom_get_key_name (GF_KeyCode key_identifier)
 
GF_KeyCode gf_dom_get_key_type (char *key_name)
 
GF_DOMEventCategory gf_dom_event_get_category (GF_EventType type)
 
void gf_sg_register_event_type (GF_SceneGraph *sg, GF_DOMEventCategory category)
 
void gf_sg_unregister_event_type (GF_SceneGraph *sg, GF_DOMEventCategory category)
 
GF_Err gf_node_dom_listener_add (GF_Node *n, GF_Node *listener)
 
u32 gf_dom_listener_count (GF_Node *n)
 
GF_Nodegf_dom_listener_get (GF_Node *n, u32 idx)
 
GF_DOMHandlergf_dom_listener_build (GF_Node *observer, GF_EventType event_type, u32 event_param)
 
void gf_node_register_iri (GF_SceneGraph *sg, XMLRI *iri)
 
void gf_node_unregister_iri (GF_SceneGraph *sg, XMLRI *iri)
 
u32 gf_node_animation_count (GF_Node *n)
 
GF_Err gf_node_store_embedded_data (XMLRI *iri, const char *cache_dir, const char *base_filename)
 
void gf_svg_properties_init_pointers (SVGPropertiesPointers *svg_props)
 
void gf_svg_properties_reset_pointers (SVGPropertiesPointers *svg_props)
 
void gf_svg_apply_animations (GF_Node *n, SVGPropertiesPointers *render_svg_props)
 
Bool gf_svg_has_appearance_flag_dirty (u32 flags)
 
Bool gf_svg_is_element_transformable (u32 tag)
 
void * gf_svg_create_attribute_value (u32 attribute_type)
 
void gf_svg_delete_attribute_value (u32 attribute_type, void *value, GF_SceneGraph *sg)
 
Bool gf_svg_attributes_equal (GF_FieldInfo *a, GF_FieldInfo *b)
 
GF_Err gf_svg_attributes_copy (GF_FieldInfo *a, GF_FieldInfo *b, Bool clamp)
 
GF_Err gf_svg_attributes_add (GF_FieldInfo *a, GF_FieldInfo *b, GF_FieldInfo *c, Bool clamp)
 
Bool gf_svg_attribute_is_interpolatable (u32 type)
 
GF_Err gf_svg_attributes_interpolate (GF_FieldInfo *a, GF_FieldInfo *b, GF_FieldInfo *c, Fixed coef, Bool clamp)
 
GF_Err gf_svg_attributes_muladd (Fixed alpha, GF_FieldInfo *a, Fixed beta, GF_FieldInfo *b, GF_FieldInfo *c, Bool clamp)
 
GF_Err gf_node_get_attribute_by_tag (GF_Node *n, u32 attribute_tag, Bool create_if_not_found, Bool set_default, GF_FieldInfo *field)
 
const char * gf_svg_attribute_type_to_string (u32 att_type)
 
GF_Err gf_svg_parse_attribute (GF_Node *n, GF_FieldInfo *info, char *attribute_content, u8 anim_value_type)
 
void gf_svg_parse_style (GF_Node *n, char *style)
 
char * gf_svg_dump_attribute (GF_Node *n, GF_FieldInfo *info)
 
char * gf_svg_dump_attribute_indexed (GF_Node *n, GF_FieldInfo *info)
 
void gf_svg_path_build (GF_Path *path, GF_List *commands, GF_List *points)
 
GF_Err gf_svg_parse_element_id (GF_Node *n, const char *nodename, Bool warning_if_defined)
 
const char * gf_svg_get_system_paint_server_name (u32 paint_type)
 
u32 gf_svg_get_system_paint_server_type (const char *name)
 
Bool gf_smil_notify_timed_elements (GF_SceneGraph *sg)
 
void gf_smil_timing_insert_clock (GF_Node *n, Bool is_end, Double clock)
 
Bool gf_svg_parse_transformlist (GF_Matrix2D *mat, char *attribute_content)
 
void gf_smil_set_evaluation_callback (GF_Node *smil_time, gf_sg_smil_evaluate smil_evaluate)
 
void gf_smil_set_media_duration (SMIL_Timing_RTI *rti, Double media_duration)
 
Double gf_smil_get_media_duration (SMIL_Timing_RTI *rti)
 
GF_Nodegf_smil_get_element (SMIL_Timing_RTI *rti)
 
Bool gf_smil_timing_is_active (GF_Node *node)
 
void gf_smil_timing_modified (GF_Node *node, GF_FieldInfo *field)
 
void gf_svg_flatten_attributes (SVG_Element *n, SVGAllAttributes *all_atts)
 
const char * gf_svg_get_attribute_name (GF_Node *n, u32 tag)
 
u32 gf_svg_apply_inheritance (SVGAllAttributes *all_atts, SVGPropertiesPointers *render_svg_props)
 
GF_DOMAttributegf_xml_create_attribute (GF_Node *n, u32 tag)
 
u32 gf_xml_get_attribute_type (u32 tag)
 
u32 gf_xml_get_attribute_tag (GF_Node *n, char *attribute_name, GF_NamespaceType ns)
 
u32 gf_xml_get_element_tag (const char *node_name, u32 xmlns)
 
enum  {
  SVG_Unknown_datatype = 0 , XML_Space_datatype , XMLEV_Propagate_datatype , XMLEV_DefaultAction_datatype ,
  XMLEV_Phase_datatype , SVG_FillRule_datatype , SVG_StrokeLineJoin_datatype , SVG_StrokeLineCap_datatype ,
  SVG_FontStyle_datatype , SVG_FontWeight_datatype , SVG_FontVariant_datatype , SVG_TextAnchor_datatype ,
  SVG_TransformType_datatype , SVG_Display_datatype , SVG_Visibility_datatype , SVG_Overflow_datatype ,
  SVG_ZoomAndPan_datatype , SVG_DisplayAlign_datatype , SVG_PointerEvents_datatype , SVG_RenderingHint_datatype ,
  SVG_VectorEffect_datatype , SVG_PlaybackOrder_datatype , SVG_TimelineBegin_datatype , SVG_GradientUnit_datatype ,
  SVG_InitialVisibility_datatype , SVG_FocusHighlight_datatype , SVG_Overlay_datatype , SVG_TransformBehavior_datatype ,
  SVG_SpreadMethod_datatype , SVG_TextAlign_datatype , SVG_Focusable_datatype , SVG_Filter_TransferType_datatype ,
  SMIL_SyncBehavior_datatype , SMIL_SyncTolerance_datatype , SMIL_AttributeType_datatype , SMIL_CalcMode_datatype ,
  SMIL_Additive_datatype , SMIL_Accumulate_datatype , SMIL_Restart_datatype , SMIL_Fill_datatype ,
  SVG_ClipPath_datatype , SVG_LAST_U8_PROPERTY , DOM_String_datatype , DOM_StringList_datatype ,
  XMLEV_Event_datatype , XMLRI_datatype , XMLRI_List_datatype , XML_IDREF_datatype ,
  SMIL_KeyTimes_datatype , SMIL_KeySplines_datatype , SMIL_KeyPoints_datatype , SMIL_Times_datatype ,
  SMIL_AnimateValue_datatype , SMIL_AnimateValues_datatype , SMIL_Duration_datatype , SMIL_RepeatCount_datatype ,
  SMIL_AttributeName_datatype , SVG_Number_datatype , SVG_FontSize_datatype , SVG_Length_datatype ,
  SVG_Coordinate_datatype , SVG_Rotate_datatype , SVG_Numbers_datatype , SVG_Points_datatype ,
  SVG_Coordinates_datatype , SVG_Boolean_datatype , SVG_Color_datatype , SVG_Paint_datatype ,
  SVG_PathData_datatype , SVG_FontFamily_datatype , SVG_ID_datatype , SVG_StrokeDashArray_datatype ,
  SVG_PreserveAspectRatio_datatype , SVG_ViewBox_datatype , SVG_GradientOffset_datatype , SVG_Focus_datatype ,
  SVG_Clock_datatype , SVG_ContentType_datatype , SVG_LanguageID_datatype , SVG_Transform_datatype ,
  SVG_Transform_Translate_datatype , SVG_Transform_Scale_datatype , SVG_Transform_SkewX_datatype , SVG_Transform_SkewY_datatype ,
  SVG_Transform_Rotate_datatype , SVG_Motion_datatype , LASeR_Choice_datatype , LASeR_Size_datatype ,
  SVG_Matrix2D_datatype , SVG_NodeList_datatype
}
 Data types used for SVG scene graph. More...
 

Detailed Description

This section documents the Scenegraph for SVG files.


Data Structure Documentation

◆ GF_DOMAttribute

struct GF_DOMAttribute

DOM attribute

◆ GF_DOMFullAttribute

struct GF_DOMFullAttribute

DOM full attribute

Data Fields
GF_DOM_BASE_ATTRIBUTE u32 xmlns
char * name

◆ GF_DOMNode

struct GF_DOMNode

DOM base node

◆ GF_DOMFullNode

struct GF_DOMFullNode

DOM full node

Data Fields
GF_DOM_BASE_NODE char * name
u32 ns

◆ GF_DOMText

struct GF_DOMText

DOM text node

Data Fields
BASE_NODE CHILDREN char * textContent
u32 type

◆ GF_DOMUpdates

struct GF_DOMUpdates

DOM update (DIMS/LASeR) node

Data Fields
BASE_NODE CHILDREN char * data
u32 data_size
GF_List * updates

◆ GF_DOMEventTarget

struct GF_DOMEventTarget

DOM EventTarget Interface

Data Fields
GF_List * listeners

list of SVG Listener nodes attached to this Event Target

void * ptr

pointer to the object implementing the DOM Event Target Interface

GF_DOMEventTargetType ptr_type

type of the object implementing the DOM Event Target Interface

◆ GF_DOMMediaEvent

struct GF_DOMMediaEvent

DOM Event media information

Data Fields
Bool bufferValid
u32 level
Fixed remaining_time
u16 status
const char * session_name
u64 loaded_size
u64 total_size

◆ GF_DOM_Event

struct GF_DOM_Event

DOM Event structure

+ Collaboration diagram for GF_DOM_Event:
Data Fields
GF_EventType type
u8 event_phase
u8 bubbles
u8 cancelable
u8 has_ui_events
void * target
GF_DOMEventTargetType target_type
GF_DOMEventTarget * currentTarget
Double timestamp
u32 detail
s32 screenX
s32 screenY
s32 clientX
s32 clientY
u32 button
u32 key_flags
u32 key_hw_code
GF_Node * relatedTarget
GF_Rect screen_rect
GF_Point2D prev_translate
GF_Point2D new_translate
Fixed prev_scale
Fixed new_scale
u32 cpu_percentage
Bool onBattery
u32 batteryState
u32 batteryLevel
Double smil_event_time
GF_Node * relatedNode
Bool is_vrml
GF_DOMMediaEvent media_event
u32 consumed
GF_FieldInfo * attr
GF_Err error_state
const char * addon_url

◆ SVGPropertiesPointers

struct SVGPropertiesPointers

SVG properties of node

+ Collaboration diagram for SVGPropertiesPointers:
Data Fields
SVG_Paint * color
SVG_Paint * fill
SVG_Paint * stroke
SVG_Paint * solid_color
SVG_Paint * stop_color
SVG_Paint * viewport_fill
SVG_Number * fill_opacity
SVG_Number * solid_opacity
SVG_Number * stop_opacity
SVG_Number * stroke_opacity
SVG_Number * viewport_fill_opacity
SVG_Number * opacity
SVG_Number * audio_level
Fixed computed_audio_level
SVG_RenderingHint * color_rendering
SVG_RenderingHint * image_rendering
SVG_RenderingHint * shape_rendering
SVG_RenderingHint * text_rendering
SVG_Display * display
SVG_Visibility * visibility
SVG_Overflow * overflow
SVG_FontFamily * font_family
SVG_FontSize * font_size
SVG_FontStyle * font_style
SVG_FontWeight * font_weight
SVG_FontVariant * font_variant
SVG_Number * line_increment
SVG_TextAnchor * text_anchor
SVG_DisplayAlign * display_align
SVG_TextAlign * text_align
SVG_PointerEvents * pointer_events
SVG_FillRule * fill_rule
SVG_StrokeDashArray * stroke_dasharray
SVG_Length * stroke_dashoffset
SVG_StrokeLineCap * stroke_linecap
SVG_StrokeLineJoin * stroke_linejoin
SVG_Number * stroke_miterlimit
SVG_Length * stroke_width
SVG_VectorEffect * vector_effect

Macro Definition Documentation

◆ GF_DOM_BASE_ATTRIBUTE

#define GF_DOM_BASE_ATTRIBUTE
Value:
u16 tag; /*attribute identifier*/ \
u16 data_type; /*attribute datatype*/ \
void *data; /*data pointer*/ \
struct __dom_base_attribute *next; /*next attribute*/
uint16_t u16
Definition: setup.h:330

macro for DOM base attribute

◆ GF_DOM_FULL_ATTRIBUTE

#define GF_DOM_FULL_ATTRIBUTE    GF_DOM_ATTRIBUTE \

macro for DOM full attribute

◆ GF_DOM_BASE_NODE

#define GF_DOM_BASE_NODE
Value:
BASE_NODE \
CHILDREN \
GF_DOMAttribute *attributes;

macro for DOM base node

◆ GF_DOM_BASE_LISTENER

#define GF_DOM_BASE_LISTENER
Value:
/* JavaScript context in which the listener is applicable */ \
struct js_handler_context *js_data;\
/* text content of the callback */ \
char *callback; \
/* parent timed elt */ \
GF_Node *timed_elt;

macro for DOM listener DOM listener is simply a node added to the node events list. Only one observer can be attached to a listener. The listener will remove itself from the observer event list when destructed.

Typedef Documentation

◆ SMIL_Timing_RTI

typedef struct _smil_timing_rti SMIL_Timing_RTI

SMIL runtime timing information

◆ gf_sg_smil_evaluate

typedef void gf_sg_smil_evaluate(struct _smil_timing_rti *rti, Fixed normalized_simple_time, GF_SGSMILTimingEvalState state)

SMIL timing evaluation callback

Parameters
rtiSMIL runtime info
normalized_simple_timeSMIL normalized time
stateSMIL evaluation state

◆ SVGAttribute

typedef struct __dom_base_attribute SVGAttribute

SVG attribute - same as DOM attribute

◆ SVGExtendedAttribute

typedef struct __dom_full_attribute SVGExtendedAttribute

SVG extended attribute - same as DOM extended attribute

◆ SVG_Element

typedef struct __dom_base_node SVG_Element

SVG node - same as DOM node

◆ SVG_handlerElement

typedef struct __xml_ev_handler SVG_handlerElement

SVG handler node - same as DOM Event handler

◆ SVGAllAttributes

typedef struct _all_atts SVGAllAttributes

SVG all attributes

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

DOM attributes tags for xmlspace, xmlev, xlink, SVG and LASeR

◆ GF_NamespaceType

DOM built-in namespaces

◆ anonymous enum

anonymous enum

DOM text node type

Enumerator
GF_DOM_TEXT_REGULAR 

regular text

GF_DOM_TEXT_CDATA 

CDATA section

GF_DOM_TEXT_INSERTED 

inserted text node (typically external script)

◆ GF_DOMEventPhase

DOM Event phases

◆ GF_DOMEventTargetType

DOM Event possible targets

◆ GF_DOMEventCategory

DOM Event category

◆ GF_SGSMILTimingEvalState

SMIL timing evaluation state

◆ anonymous enum

anonymous enum

This section documents the data types used for SVG scene graph.

SVG attribute types

Function Documentation

◆ gf_xml_get_namespace_id()

GF_NamespaceType gf_xml_get_namespace_id ( char *  name)

gets built-in XMLNS id for this namespace

Parameters
namename of the namespace
Returns
namespace ID if known, otherwise GF_XMLNS_UNDEFINED

◆ gf_sg_add_namespace()

GF_Err gf_sg_add_namespace ( GF_SceneGraph sg,
char *  name,
char *  qname 
)

adds a new namespace

Parameters
sgthe target scene graph
namename of the namespace (full URL)
qnameQName of the namespace (short name in doc, eg "ev")
Returns
error if any

◆ gf_sg_remove_namespace()

GF_Err gf_sg_remove_namespace ( GF_SceneGraph sg,
char *  name,
char *  qname 
)

removes a new namespace

Parameters
sgthe target scene graph
namename of the namespace
qnameQName of the namespace
Returns
error if any

◆ gf_sg_get_namespace_code()

GF_NamespaceType gf_sg_get_namespace_code ( GF_SceneGraph sg,
char *  qname 
)

gets namespace code

Parameters
sgthe target scene graph
qnameQName of the namespace
Returns
namespace code

◆ gf_sg_get_namespace_code_from_name()

GF_NamespaceType gf_sg_get_namespace_code_from_name ( GF_SceneGraph sg,
char *  name 
)

gets namespace code from name

Parameters
sgthe target scene graph
namename of the namespace
Returns
namespace code

◆ gf_sg_get_namespace_qname()

const char* gf_sg_get_namespace_qname ( GF_SceneGraph sg,
GF_NamespaceType  xmlns_id 
)

gets namespace qname from ID

Parameters
sgthe target scene graph
xmlns_idID of the namespace
Returns
namespace qname

◆ gf_sg_get_namespace()

const char* gf_sg_get_namespace ( GF_SceneGraph sg,
GF_NamespaceType  xmlns_id 
)

gets namespace from ID

Parameters
sgthe target scene graph
xmlns_idID of the namespace
Returns
namespace name

◆ gf_xml_push_namespaces()

void gf_xml_push_namespaces ( GF_DOMNode elt)

push namespace parsing state

Parameters
eltthe current node being parsed

◆ gf_xml_pop_namespaces()

void gf_xml_pop_namespaces ( GF_DOMNode elt)

pop namespace parsing state

Parameters
eltthe current node being parsed

◆ gf_xml_get_element_namespace()

GF_NamespaceType gf_xml_get_element_namespace ( GF_Node n)

gets namespace of an element

Parameters
nthe target node
Returns
namespace ID

◆ gf_dom_add_text_node()

GF_DOMText* gf_dom_add_text_node ( GF_Node parent,
char *  text_data 
)

creates a new text node, assign string (does NOT duplicate it) and register node with parent if desired

Parameters
parentthe target parent node
text_dataUTF-8 data to add as a text node
Returns
the new inserted DOM text node or NULL if error

◆ gf_dom_set_textContent()

void gf_dom_set_textContent ( GF_Node n,
char *  text 
)

replaces text content of node by the specified string

Parameters
nthe target DOM node
textthe replacement string in UTF-8. If NULL, only resets the children of the node data to add as a text node

◆ gf_dom_flatten_textContent()

char* gf_dom_flatten_textContent ( GF_Node n)

flattens text content of the node

Parameters
nthe target DOM node
Returns
the flattened text - shall be free'ed by the caller

◆ gf_dom_new_text_node()

GF_DOMText* gf_dom_new_text_node ( GF_SceneGraph sg)

creates a new text node - this DOES NOT register the node

Parameters
sgthe target scene graph for the node
Returns
the new text node

◆ gf_dom_add_updates_node()

GF_DOMUpdates* gf_dom_add_updates_node ( GF_Node parent)

creates a new updates node and register node with parent

Parameters
parentthe target parent node
Returns
a new DOM updates node

◆ gf_dom_event_target_new()

GF_DOMEventTarget* gf_dom_event_target_new ( GF_DOMEventTargetType  type,
void *  obj 
)

creates a new event target

Parameters
typethe type of the event target
objopaque data passed to the event target
Returns
a new DOM event target

◆ gf_sg_listener_associate()

GF_Err gf_sg_listener_associate ( GF_Node listener,
GF_DOMEventTarget evt_target 
)

associates a listener node and a event target node

  • adds the listener node in the list of event listener nodes for the target node
  • sets the target node as the user of the listener
    Parameters
    listenerthe target listener
    evt_targetthe event target
    Returns
    error if any

◆ gf_dom_event_fire()

Bool gf_dom_event_fire ( GF_Node node,
GF_DOM_Event event 
)

fires an event on the specified node

Warning
event execution may very well destroy ANY node, especially the event target node !!
Parameters
nodethe target node
eventthe DOM event
Returns
GF_TRUE if event is consumed/aborted after this call, GF_FALSE otherwise (event now pending)

◆ gf_sg_fire_dom_event()

Bool gf_sg_fire_dom_event ( GF_DOMEventTarget et,
GF_DOM_Event event,
GF_SceneGraph sg,
GF_Node n 
)

fires a DOM event on the specified node

Warning
event execution may very well destroy ANY node, especially the event target node !!
Parameters
etthe event target
eventthe dom event
sgthe parent graph
nthe event current target, can be NULL
Returns
GF_TRUE if event is consumed/aborted after this call, GF_FALSE otherwise (event now pending)

◆ gf_dom_event_fire_ex()

Bool gf_dom_event_fire_ex ( GF_Node node,
GF_DOM_Event event,
GF_List use_stack 
)

fires event on the specified node

Warning
event execution may very well destroy ANY node, especially the event target node !!
Parameters
nodethe target node
eventthe DOM event
use_stacka list of parent node/use node pairs for bubbling phase - may be NULL
Returns
GF_TRUE if event is consumed/aborted after this call, GF_FALSE otherwise (event now pending)

◆ gf_dom_event_type_by_name()

GF_EventType gf_dom_event_type_by_name ( const char *  name)

gets event type by name

Parameters
namethe event name
Returns
the event type

◆ gf_dom_event_get_name()

const char* gf_dom_event_get_name ( GF_EventType  type)

gets event name by type

Parameters
typethe event type
Returns
the event name

◆ gf_dom_get_key_name()

const char* gf_dom_get_key_name ( GF_KeyCode  key_identifier)

gets key name by type

Parameters
key_identifierthe key type
Returns
the key name

◆ gf_dom_get_key_type()

GF_KeyCode gf_dom_get_key_type ( char *  key_name)

gets key type by name

Parameters
key_namethe key name
Returns
the key type

◆ gf_dom_event_get_category()

GF_DOMEventCategory gf_dom_event_get_category ( GF_EventType  type)

gets category of DOM event

Parameters
typetype of event
Returns
event category

◆ gf_sg_register_event_type()

void gf_sg_register_event_type ( GF_SceneGraph sg,
GF_DOMEventCategory  category 
)

registers an event category with the scene graph. Event with unregistered categories will not be fired

Parameters
sgthe target scene graph
categorythe DOM event category to add

◆ gf_sg_unregister_event_type()

void gf_sg_unregister_event_type ( GF_SceneGraph sg,
GF_DOMEventCategory  category 
)

unregisters an event category with the scene graph

Parameters
sgthe target scene graph
categorythe DOM event category to add

◆ gf_node_dom_listener_add()

GF_Err gf_node_dom_listener_add ( GF_Node n,
GF_Node listener 
)

adds a listener to the node.

Parameters
nthe target node
listenera listenerElement (XML event). The listener node is NOT registered with the node (it may very well not be a direct child of the node)
Returns
error if any

◆ gf_dom_listener_count()

u32 gf_dom_listener_count ( GF_Node n)

gets number of listener of a node

Parameters
nthe target node
Returns
number of listeners

◆ gf_dom_listener_get()

GF_Node* gf_dom_listener_get ( GF_Node n,
u32  idx 
)

gets a listener of a node

Parameters
nthe target node
idx0-based index of the listener to query
Returns
listener node or NULL if error

◆ gf_dom_listener_build()

GF_DOMHandler* gf_dom_listener_build ( GF_Node observer,
GF_EventType  event_type,
u32  event_param 
)

creates a default listener/handler for the given event on the given node Listener/handler are stored at the node level

Parameters
observerthe observer node
event_typethe event type
event_paramthe event parameter
Returns
the created handler element to allow for handler function override

◆ gf_node_register_iri()

void gf_node_register_iri ( GF_SceneGraph sg,
XMLRI iri 
)

registers a XML IRI with the scene graph - this is needed to handle replacement of IRI (SMIL anim, DOM / LASeR updates)

Warning
gf_node_unregister_iri shall be called when the parent node of the IRI is destroyed
Parameters
sgthe target scene graph
irithe IRI to register

◆ gf_node_unregister_iri()

void gf_node_unregister_iri ( GF_SceneGraph sg,
XMLRI iri 
)

unregisters a XML IRI with the scene graph

Parameters
sgthe target scene graph
irithe IRI to unregister

◆ gf_node_animation_count()

u32 gf_node_animation_count ( GF_Node n)

gets number of animation targeting this node

Parameters
nthe target node
Returns
the number of animations

◆ gf_node_store_embedded_data()

GF_Err gf_node_store_embedded_data ( XMLRI iri,
const char *  cache_dir,
const char *  base_filename 
)

writes data embedded in IRI (such as base64 data) to the indicated cahce directory, and updates the IRI accordingly

Parameters
irithe IRI to store
cache_dirlocation of the directory to which the data should be extracted
base_filenamelocation of the file the IRI was declared in
Returns
error if any

◆ gf_svg_properties_init_pointers()

void gf_svg_properties_init_pointers ( SVGPropertiesPointers svg_props)

initializes an SVGPropertiesPointers

Parameters
svg_propspointer to structure to initialize

◆ gf_svg_properties_reset_pointers()

void gf_svg_properties_reset_pointers ( SVGPropertiesPointers svg_props)

resets an SVGPropertiesPointers

Parameters
svg_propspointer to structure to reset

◆ gf_svg_apply_animations()

void gf_svg_apply_animations ( GF_Node n,
SVGPropertiesPointers render_svg_props 
)

applies animations for the node

Parameters
nthe target node
render_svg_propspointer to rendering SVG properties of the node

◆ gf_svg_has_appearance_flag_dirty()

Bool gf_svg_has_appearance_flag_dirty ( u32  flags)

check if appearance flag is set

Parameters
flagsflags to test
Returns
GF_TRUE if appearance dirty flag is set

◆ gf_svg_is_element_transformable()

Bool gf_svg_is_element_transformable ( u32  tag)

checks if node tag indicates a transformable elemnt

Parameters
tagtag to check
Returns
GF_TRUE if element is transformable

◆ gf_svg_create_attribute_value()

void* gf_svg_create_attribute_value ( u32  attribute_type)

creates an SVG attribute value for the given type

Parameters
attribute_typetype of attribute to delete
Returns
newly allocated attribute value

◆ gf_svg_delete_attribute_value()

void gf_svg_delete_attribute_value ( u32  attribute_type,
void *  value,
GF_SceneGraph sg 
)

destroys an SVG attribute value

Parameters
attribute_typetype of attribute to delete
valuethe value to destroy
sgthe parent scenegraph (needed for IRI registration)

◆ gf_svg_attributes_equal()

Bool gf_svg_attributes_equal ( GF_FieldInfo a,
GF_FieldInfo b 
)

checks if two SVG attributes are equal

Parameters
afirst attribute
bsecond attribute
Returns
GF_TRUE if equal

◆ gf_svg_attributes_copy()

GF_Err gf_svg_attributes_copy ( GF_FieldInfo a,
GF_FieldInfo b,
Bool  clamp 
)

copies attributes (a = b)

Parameters
adestination attribute
bsource attribute
clampif GF_TRUE, the interpolated value is clamped to its min/max possible values
Returns
error if any

◆ gf_svg_attributes_add()

GF_Err gf_svg_attributes_add ( GF_FieldInfo a,
GF_FieldInfo b,
GF_FieldInfo c,
Bool  clamp 
)

adds attributes ( c = a + b)

Parameters
afirst attribute
bsecond attribute
cdestination attribute
clampif GF_TRUE, the interpolated value is clamped to its min/max possible values
Returns
error if any

◆ gf_svg_attribute_is_interpolatable()

Bool gf_svg_attribute_is_interpolatable ( u32  type)

checks if attribute type can be interpolated

Parameters
typeattribute type
Returns
GF_TRUE if type can be interpolation

◆ gf_svg_attributes_interpolate()

GF_Err gf_svg_attributes_interpolate ( GF_FieldInfo a,
GF_FieldInfo b,
GF_FieldInfo c,
Fixed  coef,
Bool  clamp 
)

interpolates attributes ( c = coef * a + (1 - coef) * b )

Parameters
afirst attribute
bsecond attribute
cdestination attribute
coefinterpolation coefficient
clampif GF_TRUE, the interpolated value is clamped to its min/max possible values
Returns
error if any

◆ gf_svg_attributes_muladd()

GF_Err gf_svg_attributes_muladd ( Fixed  alpha,
GF_FieldInfo a,
Fixed  beta,
GF_FieldInfo b,
GF_FieldInfo c,
Bool  clamp 
)

multiply and add attributes (c = alpha * a + beta * b)

Parameters
afirst attribute
alphafirst multiplier
bsecond attribute
betasecond multiplier
cdestination attribute
clampif GF_TRUE, the interpolated value is clamped to its min/max possible values
Returns
error if any

◆ gf_node_get_attribute_by_tag()

GF_Err gf_node_get_attribute_by_tag ( GF_Node n,
u32  attribute_tag,
Bool  create_if_not_found,
Bool  set_default,
GF_FieldInfo field 
)

gets an attribute by its tag (built-in name)

Parameters
nthe target node
attribute_tagthe attribute tag
create_if_not_foundif GF_TRUE, adds the attribute if not found
set_defaultif GF_TRUE, sets the attribute to default when creating it
fieldset to the attribute information
Returns
error if any

◆ gf_svg_attribute_type_to_string()

const char* gf_svg_attribute_type_to_string ( u32  att_type)

gets name of an attribute type

Parameters
att_typethe attribute type
Returns
the attribute name

◆ gf_svg_parse_attribute()

GF_Err gf_svg_parse_attribute ( GF_Node n,
GF_FieldInfo info,
char *  attribute_content,
u8  anim_value_type 
)

parses an attribute

Parameters
nthe target node
infothe attribute information
attribute_contentthe UTF-8 string to parse
anim_value_typethe SMIL animation value type for this attribute, 0 if not animatable
Returns
error if any

◆ gf_svg_parse_style()

void gf_svg_parse_style ( GF_Node n,
char *  style 
)

parses an SVG style

Parameters
nthe target node
stylethe UTF-8 style string to parse

◆ gf_svg_dump_attribute()

char* gf_svg_dump_attribute ( GF_Node n,
GF_FieldInfo info 
)

dumps an SVG attribute

Parameters
nthe target node
infothe attribute information
Returns
the textural representation of the value - shall be destroyed by caller

◆ gf_svg_dump_attribute_indexed()

char* gf_svg_dump_attribute_indexed ( GF_Node n,
GF_FieldInfo info 
)

dumps an SVG indexed attribute (special 1-D version of a N dimensional attribute, used by LASeR and DOM updates)

Parameters
nthe target node
infothe attribute information
Returns
the textural representation of the value - shall be destroyed by caller

◆ gf_svg_path_build()

void gf_svg_path_build ( GF_Path path,
GF_List commands,
GF_List points 
)

builds a path from its SVG representation

Parameters
patha 2D graphical path object
commandsa list of SVG path commands
pointsa list of SVG path points

◆ gf_svg_parse_element_id()

GF_Err gf_svg_parse_element_id ( GF_Node n,
const char *  nodename,
Bool  warning_if_defined 
)

parses an SVG element ID

Parameters
nthe target node
nodenamethe node name to parse
warning_if_definedif GF_TRUE, throws a warning when the node name is already defined
Returns
error if any

◆ gf_svg_get_system_paint_server_name()

const char* gf_svg_get_system_paint_server_name ( u32  paint_type)

gets the name of a paint server type

Parameters
paint_typethe paint server type
Returns
paint server name

◆ gf_svg_get_system_paint_server_type()

u32 gf_svg_get_system_paint_server_type ( const char *  name)

gets the type of a paint server by name

Parameters
namethe paint server name
Returns
paint server type

◆ gf_smil_notify_timed_elements()

Bool gf_smil_notify_timed_elements ( GF_SceneGraph sg)

notifies the scene time to all the timed elements in the given scene graph (including sub-scenes).

Parameters
sgthe target scene graph
Returns
the number of active timed elements, or 0 if no changes in SMIL timing nodes (no redraw/reevaluate needed)

◆ gf_smil_timing_insert_clock()

void gf_smil_timing_insert_clock ( GF_Node n,
Bool  is_end,
Double  clock 
)

inserts a new resolved time instant in the begin or end attribute. The insertion preserves the sorting and removes the previous insertions which have become obsolete

Warning
Only used for inserting time when an element, whose target is a timed element, is activated
Parameters
nthe target element
is_endif GF_TRUE, the SMIL clock is an end clock
clockclock time in seconds

◆ gf_svg_parse_transformlist()

Bool gf_svg_parse_transformlist ( GF_Matrix2D mat,
char *  attribute_content 
)

parses a transformation list into a 2D matrix

Parameters
matthe matrix to fill
attribute_contentthe UTF8 string representin the SVG transformation
Returns
GF_TRUE if success

◆ gf_smil_set_evaluation_callback()

void gf_smil_set_evaluation_callback ( GF_Node smil_time,
gf_sg_smil_evaluate  smil_evaluate 
)

sets the SMIL evaluation callback for a node

Parameters
smil_timethe target SMIL node
smil_evaluatethe callback function

◆ gf_smil_set_media_duration()

void gf_smil_set_media_duration ( SMIL_Timing_RTI rti,
Double  media_duration 
)

assigns media duration for a SMIL node

Parameters
rtithe target SMIL runtime info of the node
media_durationthe media duration in seconds

◆ gf_smil_get_media_duration()

Double gf_smil_get_media_duration ( SMIL_Timing_RTI rti)

gets media duration of a SMIL node

Parameters
rtithe target SMIL runtime info of the node
Returns
the media duration in seconds

◆ gf_smil_get_element()

GF_Node* gf_smil_get_element ( SMIL_Timing_RTI rti)

gets node from a SMIL runtime info

Parameters
rtithe target SMIL runtime info of the node
Returns
the associated node

◆ gf_smil_timing_is_active()

Bool gf_smil_timing_is_active ( GF_Node node)

checks if a SMIL node is active

Parameters
nodethe target node
Returns
GF_TRUE if node is active

◆ gf_smil_timing_modified()

void gf_smil_timing_modified ( GF_Node node,
GF_FieldInfo field 
)

notifies a SMIL node that it has been modified

Parameters
nodethe target SMIL node
fieldthe field information describing the modified attribute, may be NULL

◆ gf_svg_flatten_attributes()

void gf_svg_flatten_attributes ( SVG_Element n,
SVGAllAttributes all_atts 
)

flattens all SVG attributes in a structure

Parameters
nthe target SVG node
all_attsfilled with all SVG attributes defined fo node

◆ gf_svg_get_attribute_name()

const char* gf_svg_get_attribute_name ( GF_Node n,
u32  tag 
)

gets SVG attribute name for a node

Parameters
nthe target SVG node
tagthe attribute tag
Returns
the attribute name

◆ gf_svg_apply_inheritance()

u32 gf_svg_apply_inheritance ( SVGAllAttributes all_atts,
SVGPropertiesPointers render_svg_props 
)

applies inheritance of SVG attributes to a render_svg_props

Note
Some properties (audio-level, display, opacity, solid*, stop*, vector-effect, viewport*) are inherited only when they are specified with the value 'inherit' otherwise they default to their initial value which for the function below means NULL, the compositor will take care of the rest
Parameters
all_attsthe flatten SVG attributes of the node
render_svg_propsthe set of properties applying to the parent node (initialize this one to 0 for root element)
Returns
the set of inherited flags (from node dirty flags)

◆ gf_xml_create_attribute()

GF_DOMAttribute* gf_xml_create_attribute ( GF_Node n,
u32  tag 
)

creates a DOM Attribute for the given tag

Warning
the attribute is not added to the node's attributes
Parameters
nthe target node
tagthe target built-in tag
Returns
a new DOM Attribute

◆ gf_xml_get_attribute_type()

u32 gf_xml_get_attribute_type ( u32  tag)

gets the type of a built-in XML/SVG/SMIL attribute tag

Parameters
tagthe target attribute tag
Returns
the attribute type

◆ gf_xml_get_attribute_tag()

u32 gf_xml_get_attribute_tag ( GF_Node n,
char *  attribute_name,
GF_NamespaceType  ns 
)

gets the built-in tag of a node's attribute

Parameters
nthe target node
attribute_namethe target attribute name
nsthe target namespace
Returns
the attribute tag

◆ gf_xml_get_element_tag()

u32 gf_xml_get_element_tag ( const char *  node_name,
u32  xmlns 
)

gets the built-in tag of a node

Parameters
node_namethe target node name
xmlnsthe target namespace
Returns
the node tag