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
drawable.h File Reference
+ Include dependency graph for drawable.h:
+ This graph shows which files directly or indirectly include this file:

Data Structures

struct  BoundInfo
 
struct  DRInfo
 
struct  Drawable
 
struct  DrawAspect2D
 
struct  DrawableContext
 
struct  StrikeInfo2D
 

Macros

#define CTX_3DTYPE_MASK   0x7800
 
#define CTX_REDRAW_MASK   0x00000003
 

Enumerations

enum  {
  DRAWABLE_USE_TRAVERSE_DRAW = 1, DRAWABLE_HAS_CHANGED = 1<<1, DRAWABLE_HAS_CHANGED_IN_LAST_TRAVERSE = 1<<2, DRAWABLE_DRAWN_ON_VISUAL = 1<<3,
  DRAWABLE_REGISTERED_WITH_VISUAL = 1<<4, DRAWABLE_IS_OVERLAY = 1<<5, DRAWABLE_IS_CACHED = 1<<6
}
 
enum  {
  CTX_APP_DIRTY = 1, CTX_TEXTURE_DIRTY = 1<<1, CTX_HAS_APPEARANCE = 1<<2, CTX_IS_TRANSPARENT = 1<<3,
  CTX_IS_TEXT = 1<<4, CTX_IS_BACKGROUND = 1<<5, CTX_NO_ANTIALIAS = 1<<6, CTX_PATH_FILLED = 1<<7,
  CTX_PATH_STROKE = 1<<8, CTX_SVG_OUTLINE_GEOMETRY_DIRTY = 1<<9, CTX_FLIPED_COORDS = 1<<10
}
 

Functions

Drawable * drawable_new ()
 
void drawable_del (Drawable *dr)
 
void drawable_del_ex (Drawable *dr, GF_Compositor *compositor)
 
void drawable_node_del (GF_Node *node)
 
void drawable_finalize_sort (DrawableContext *ctx, GF_TraverseState *tr_state, GF_Rect *orig_bounds)
 
void drawable_finalize_sort_ex (DrawableContext *ctx, GF_TraverseState *tr_state, GF_Rect *orig_bounds, Bool skip_focus)
 
Drawable * drawable_stack_new (GF_Compositor *compositor, GF_Node *node)
 
void drawable_reset_path (Drawable *st)
 
void drawable_reset_path_outline (Drawable *st)
 
void drawable_mark_modified (Drawable *st, GF_TraverseState *tr_state)
 
void drawable_check_focus_highlight (GF_Node *node, GF_TraverseState *tr_state, GF_Rect *orig_bounds)
 
void drawable_reset_group_highlight (GF_TraverseState *tr_state, GF_Node *n)
 
Bool drawable_flush_bounds (Drawable *node, GF_VisualManager *on_visual, u32 draw_mode)
 
Bool drawable_has_same_bounds (DrawableContext *ctx, GF_VisualManager *visual)
 
Bool drawable_get_previous_bound (Drawable *node, GF_IRect *rc, GF_VisualManager *visual)
 
void drawable_reset_bounds (Drawable *dr, GF_VisualManager *visual)
 
void drawable_check_bounds (DrawableContext *ctx, GF_VisualManager *visual)
 
void drawable_traverse_focus (GF_Node *node, void *rs, Bool is_destroy)
 
u32 drawable_get_aspect_2d_mpeg4 (GF_Node *node, DrawAspect2D *asp, GF_TraverseState *tr_state)
 
Bool drawable_get_aspect_2d_svg (GF_Node *node, DrawAspect2D *asp, GF_TraverseState *tr_state)
 
DrawableContext * NewDrawableContext ()
 
void DeleteDrawableContext (DrawableContext *)
 
void drawctx_reset (DrawableContext *ctx)
 
void drawctx_update_info (DrawableContext *ctx, GF_VisualManager *visual)
 
DrawableContext * drawable_init_context_mpeg4 (Drawable *node, GF_TraverseState *tr_state)
 
DrawableContext * drawable_init_context_svg (Drawable *drawable, GF_TraverseState *tr_state)
 
void drawable_draw (Drawable *drawable, GF_TraverseState *tr_state)
 
void vrml_drawable_pick (Drawable *drawable, GF_TraverseState *tr_state)
 
void svg_drawable_pick (GF_Node *node, Drawable *drawable, GF_TraverseState *tr_state)
 
void delete_strikeinfo2d (StrikeInfo2D *info)
 
StrikeInfo2Ddrawable_get_strikeinfo (GF_Compositor *compositor, Drawable *drawable, DrawAspect2D *asp, GF_Node *appear, GF_Path *path, u32 svg_flags, GF_TraverseState *tr_state)
 
void drawable_compute_line_scale (GF_TraverseState *tr_state, DrawAspect2D *asp)
 
Bool svg_drawable_is_over (Drawable *drawable, Fixed x, Fixed y, DrawAspect2D *asp, GF_TraverseState *tr_state, GF_Rect *glyph_rc)
 

Data Structure Documentation

struct BoundInfo
+ Collaboration diagram for BoundInfo:
Data Fields
GF_IRect clip
GF_Rect unclip
void * extra_check
struct _bound_info * next
struct DRInfo
+ Collaboration diagram for DRInfo:
Data Fields
GF_VisualManager * visual
struct _bound_info * current_bounds
struct _bound_info * previous_bounds
struct _dirty_rect_info * next
struct _drawable
+ Collaboration diagram for Drawable:
Data Fields
GF_Mesh * mesh
u32 flags
GF_Node * node
struct _dirty_rect_info * dri
GF_Path * path
struct _strikeinfo2d * outline
struct _draw_aspect_2d
+ Collaboration diagram for DrawAspect2D:
Data Fields
GF_Color fill_color
GF_Color line_color
Fixed line_scale
GF_PenSettings pen_props
struct _gf_sc_texture_handler * fill_texture
struct _gf_sc_texture_handler * line_texture
struct _drawable_context
+ Collaboration diagram for DrawableContext:
Data Fields
struct _drawable_context * next
u16 flags
s16 sub_path_index
Drawable * drawable
BoundInfo * bi
DrawAspect2D aspect
GF_Matrix2D transform
GF_ColorMatrix * col_mat
GF_Node * appear
Fixed depth_gain
Fixed depth_offset
struct StrikeInfo2D
+ Collaboration diagram for StrikeInfo2D:
Data Fields
struct _strikeinfo2d * next
GF_Path * outline
Drawable * drawable
GF_Node * lineProps
Fixed line_scale
Fixed path_length
GF_Path * original
Bool is_vectorial
GF_Mesh * mesh_outline

Macro Definition Documentation

#define CTX_3DTYPE_MASK   0x7800
#define CTX_REDRAW_MASK   0x00000003

Enumeration Type Documentation

anonymous enum
Enumerator
DRAWABLE_USE_TRAVERSE_DRAW 
DRAWABLE_HAS_CHANGED 
DRAWABLE_HAS_CHANGED_IN_LAST_TRAVERSE 
DRAWABLE_DRAWN_ON_VISUAL 
DRAWABLE_REGISTERED_WITH_VISUAL 
DRAWABLE_IS_OVERLAY 
DRAWABLE_IS_CACHED 
anonymous enum
Enumerator
CTX_APP_DIRTY 
CTX_TEXTURE_DIRTY 
CTX_HAS_APPEARANCE 
CTX_IS_TRANSPARENT 
CTX_IS_TEXT 
CTX_IS_BACKGROUND 
CTX_NO_ANTIALIAS 
CTX_PATH_FILLED 
CTX_PATH_STROKE 
CTX_SVG_OUTLINE_GEOMETRY_DIRTY 
CTX_FLIPED_COORDS 

Function Documentation

Drawable* drawable_new ( )

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void drawable_del ( Drawable *  dr)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void drawable_del_ex ( Drawable *  dr,
GF_Compositor *  compositor 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void drawable_node_del ( GF_Node node)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void drawable_finalize_sort ( DrawableContext *  ctx,
GF_TraverseState *  tr_state,
GF_Rect orig_bounds 
)
void drawable_finalize_sort_ex ( DrawableContext *  ctx,
GF_TraverseState *  tr_state,
GF_Rect orig_bounds,
Bool  skip_focus 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Drawable* drawable_stack_new ( GF_Compositor *  compositor,
GF_Node node 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void drawable_reset_path ( Drawable *  st)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void drawable_reset_path_outline ( Drawable *  st)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void drawable_mark_modified ( Drawable *  st,
GF_TraverseState *  tr_state 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void drawable_check_focus_highlight ( GF_Node node,
GF_TraverseState *  tr_state,
GF_Rect orig_bounds 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void drawable_reset_group_highlight ( GF_TraverseState *  tr_state,
GF_Node n 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Bool drawable_flush_bounds ( Drawable *  node,
GF_VisualManager *  on_visual,
u32  draw_mode 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Bool drawable_has_same_bounds ( DrawableContext *  ctx,
GF_VisualManager *  visual 
)
Bool drawable_get_previous_bound ( Drawable *  node,
GF_IRect rc,
GF_VisualManager *  visual 
)

+ Here is the caller graph for this function:

void drawable_reset_bounds ( Drawable *  dr,
GF_VisualManager *  visual 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void drawable_check_bounds ( DrawableContext *  ctx,
GF_VisualManager *  visual 
)
void drawable_traverse_focus ( GF_Node node,
void *  rs,
Bool  is_destroy 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 drawable_get_aspect_2d_mpeg4 ( GF_Node node,
DrawAspect2D *  asp,
GF_TraverseState *  tr_state 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Bool drawable_get_aspect_2d_svg ( GF_Node node,
DrawAspect2D *  asp,
GF_TraverseState *  tr_state 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

DrawableContext* NewDrawableContext ( )

+ Here is the caller graph for this function:

void DeleteDrawableContext ( DrawableContext *  )

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void drawctx_reset ( DrawableContext *  ctx)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void drawctx_update_info ( DrawableContext *  ctx,
GF_VisualManager *  visual 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

DrawableContext* drawable_init_context_mpeg4 ( Drawable *  node,
GF_TraverseState *  tr_state 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

DrawableContext* drawable_init_context_svg ( Drawable *  drawable,
GF_TraverseState *  tr_state 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void drawable_draw ( Drawable *  drawable,
GF_TraverseState *  tr_state 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vrml_drawable_pick ( Drawable *  drawable,
GF_TraverseState *  tr_state 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void svg_drawable_pick ( GF_Node node,
Drawable *  drawable,
GF_TraverseState *  tr_state 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void delete_strikeinfo2d ( StrikeInfo2D info)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

StrikeInfo2D* drawable_get_strikeinfo ( GF_Compositor *  compositor,
Drawable *  drawable,
DrawAspect2D *  asp,
GF_Node appear,
GF_Path path,
u32  svg_flags,
GF_TraverseState *  tr_state 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void drawable_compute_line_scale ( GF_TraverseState *  tr_state,
DrawAspect2D *  asp 
)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Bool svg_drawable_is_over ( Drawable *  drawable,
Fixed  x,
Fixed  y,
DrawAspect2D *  asp,
GF_TraverseState *  tr_state,
GF_Rect glyph_rc 
)

!watchout!! asp2D.width is 0 if stroke not visible due to painting properties - we must override this for picking

+ Here is the call graph for this function:

+ Here is the caller graph for this function: