libgpac
Documentation of the core library of GPAC
svg_paint_servers.c File Reference
#include "visual_manager.h"
#include "nodes_stacks.h"
#include "texturing.h"
+ Include dependency graph for svg_paint_servers.c:

Data Structures

struct  SVG_GradientStack
 
struct  GF_SolidColorStack
 

Macros

#define GRAD_TEXTURE_SIZE   128
 
#define GRAD_TEXTURE_HSIZE   64
 

Enumerations

enum  { GF_SR_TEXTURE_GRAD_REGISTERED = 1<<6 , GF_SR_TEXTURE_GRAD_NO_RGB = 1<<7 }
 

Functions

static void SVG_DestroyPaintServer (GF_Node *node)
 
static GF_Nodesvg_copy_gradient_attributes_from (GF_Node *node, SVGAllAttributes *all_atts)
 
static void svg_gradient_traverse (GF_Node *node, GF_TraverseState *tr_state, Bool real_traverse)
 
static void svg_update_gradient (SVG_GradientStack *st, GF_ChildNodeItem *children, Bool linear)
 
static void svg_traverse_gradient (GF_Node *node, void *rs, Bool is_destroy)
 
static GF_Rect compositor_svg_get_gradient_bounds (GF_TextureHandler *txh, SVGAllAttributes *all_atts)
 
void compositor_svg_build_gradient_texture (GF_TextureHandler *txh)
 
static void SVG_UpdateLinearGradient (GF_TextureHandler *txh)
 
static void SVG_LG_ComputeMatrix (GF_TextureHandler *txh, GF_Rect *bounds, GF_Matrix2D *mat, Bool for_3d)
 
void compositor_init_svg_linearGradient (GF_Compositor *compositor, GF_Node *node)
 
static void SVG_UpdateRadialGradient (GF_TextureHandler *txh)
 
static void SVG_RG_ComputeMatrix (GF_TextureHandler *txh, GF_Rect *bounds, GF_Matrix2D *mat, Bool for_3d)
 
void compositor_init_svg_radialGradient (GF_Compositor *compositor, GF_Node *node)
 
static void svg_traverse_PaintServer (GF_Node *node, void *rs, Bool is_destroy, Bool is_solid_color)
 
Bool compositor_svg_solid_color_dirty (GF_Compositor *compositor, GF_Node *node)
 
static void svg_traverse_solidColor (GF_Node *node, void *rs, Bool is_destroy)
 
void compositor_init_svg_solidColor (GF_Compositor *compositor, GF_Node *node)
 
static void svg_traverse_stop (GF_Node *node, void *rs, Bool is_destroy)
 
void compositor_init_svg_stop (GF_Compositor *compositor, GF_Node *node)
 
GF_TextureHandlercompositor_svg_get_gradient_texture (GF_Node *node)
 
static void svg_traverse_clip_path (GF_Node *node, void *rs, Bool is_destroy)
 
void compositor_init_svg_clip_path (GF_Compositor *compositor, GF_Node *node)
 

Data Structure Documentation

◆ SVG_GradientStack

struct SVG_GradientStack
+ Collaboration diagram for SVG_GradientStack:
Data Fields
GF_TextureHandler txh
Bool linear
Bool animated
Fixed * keys
u32 * cols
u32 current_frame

◆ GF_SolidColorStack

struct GF_SolidColorStack
Data Fields
u32 current_frame
Bool is_dirty

Macro Definition Documentation

◆ GRAD_TEXTURE_SIZE

#define GRAD_TEXTURE_SIZE   128

◆ GRAD_TEXTURE_HSIZE

#define GRAD_TEXTURE_HSIZE   64

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
GF_SR_TEXTURE_GRAD_REGISTERED 
GF_SR_TEXTURE_GRAD_NO_RGB 

Function Documentation

◆ SVG_DestroyPaintServer()

static void SVG_DestroyPaintServer ( GF_Node node)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svg_copy_gradient_attributes_from()

static GF_Node* svg_copy_gradient_attributes_from ( GF_Node node,
SVGAllAttributes all_atts 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svg_gradient_traverse()

static void svg_gradient_traverse ( GF_Node node,
GF_TraverseState *  tr_state,
Bool  real_traverse 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svg_update_gradient()

static void svg_update_gradient ( SVG_GradientStack st,
GF_ChildNodeItem children,
Bool  linear 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svg_traverse_gradient()

static void svg_traverse_gradient ( GF_Node node,
void *  rs,
Bool  is_destroy 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compositor_svg_get_gradient_bounds()

static GF_Rect compositor_svg_get_gradient_bounds ( GF_TextureHandler txh,
SVGAllAttributes all_atts 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compositor_svg_build_gradient_texture()

void compositor_svg_build_gradient_texture ( GF_TextureHandler txh)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SVG_UpdateLinearGradient()

static void SVG_UpdateLinearGradient ( GF_TextureHandler txh)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SVG_LG_ComputeMatrix()

static void SVG_LG_ComputeMatrix ( GF_TextureHandler txh,
GF_Rect bounds,
GF_Matrix2D mat,
Bool  for_3d 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compositor_init_svg_linearGradient()

void compositor_init_svg_linearGradient ( GF_Compositor *  compositor,
GF_Node node 
)

!! Gradients are textures but are not registered as textures with the compositor in order to avoid updating too many textures each frame - gradients are only registered with the compositor when they are used in OpenGL, in order to release associated HW resource when no longer used

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SVG_UpdateRadialGradient()

static void SVG_UpdateRadialGradient ( GF_TextureHandler txh)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SVG_RG_ComputeMatrix()

static void SVG_RG_ComputeMatrix ( GF_TextureHandler txh,
GF_Rect bounds,
GF_Matrix2D mat,
Bool  for_3d 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compositor_init_svg_radialGradient()

void compositor_init_svg_radialGradient ( GF_Compositor *  compositor,
GF_Node node 
)

!! Gradients are textures but are not registered as textures with the compositor in order to avoid updating too many textures each frame - gradients are only registered with the compositor when they are used in OpenGL, in order to release associated HW resource when no longer used

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svg_traverse_PaintServer()

static void svg_traverse_PaintServer ( GF_Node node,
void *  rs,
Bool  is_destroy,
Bool  is_solid_color 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compositor_svg_solid_color_dirty()

Bool compositor_svg_solid_color_dirty ( GF_Compositor *  compositor,
GF_Node node 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svg_traverse_solidColor()

static void svg_traverse_solidColor ( GF_Node node,
void *  rs,
Bool  is_destroy 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compositor_init_svg_solidColor()

void compositor_init_svg_solidColor ( GF_Compositor *  compositor,
GF_Node node 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svg_traverse_stop()

static void svg_traverse_stop ( GF_Node node,
void *  rs,
Bool  is_destroy 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compositor_init_svg_stop()

void compositor_init_svg_stop ( GF_Compositor *  compositor,
GF_Node node 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compositor_svg_get_gradient_texture()

GF_TextureHandler* compositor_svg_get_gradient_texture ( GF_Node node)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ svg_traverse_clip_path()

static void svg_traverse_clip_path ( GF_Node node,
void *  rs,
Bool  is_destroy 
)
static
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compositor_init_svg_clip_path()

void compositor_init_svg_clip_path ( GF_Compositor *  compositor,
GF_Node node 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function: