GPAC
Open Source Multimedia Framework. For more information, check out http://gpac.wp.mines-telecom.fr
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups
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)
 

Data Structure Documentation

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

Macro Definition Documentation

#define GRAD_TEXTURE_SIZE   128
#define GRAD_TEXTURE_HSIZE   64

Enumeration Type Documentation

anonymous enum
Enumerator
GF_SR_TEXTURE_GRAD_REGISTERED 
GF_SR_TEXTURE_GRAD_NO_RGB 

Function Documentation

static void SVG_DestroyPaintServer ( GF_Node node)
static

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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:

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:

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:

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:

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:

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:

static void SVG_UpdateLinearGradient ( GF_TextureHandler txh)
static

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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:

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:

static void SVG_UpdateRadialGradient ( GF_TextureHandler txh)
static

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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:

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:

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:

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:

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:

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:

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:

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:

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: