libgpac
Documentation of the core library of GPAC
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 , DRAWABLE_HYBGL_INIT = 1<<7
}
 
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 , CTX_HYBOGL_NO_CLEAR = 1<<11 ,
  CTX_BACKROUND_NOT_LAYER = 1<<12 , CTX_BACKROUND_NO_CLEAR = 1<<13
}
 

Functions

Drawable * drawable_new ()
 
void drawable_del (Drawable *dr)
 
void drawable_del_ex (Drawable *dr, GF_Compositor *compositor, Bool no_free)
 
void drawable_node_del (GF_Node *node)
 
void drawable_init_ex (Drawable *tmp)
 
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 mode2d)
 
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, SVG_ClipPath *clip_path)
 
void drawable_draw (Drawable *drawable, GF_TraverseState *tr_state)
 
void call_drawable_draw (DrawableContext *ctx, GF_TraverseState *tr_state, Bool set_cyclic)
 
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)
 
void drawable_check_texture_dirty (DrawableContext *ctx, Drawable *drawable, GF_TraverseState *tr_state)
 

Data Structure Documentation

◆ BoundInfo

struct BoundInfo
+ Collaboration diagram for BoundInfo:
Data Fields
GF_IRect clip
GF_Rect unclip
void * extra_check
struct _bound_info * next

◆ DRInfo

struct DRInfo
Data Fields
GF_VisualManager * visual
struct _bound_info * current_bounds
struct _bound_info * previous_bounds
struct _dirty_rect_info * next

◆ _drawable

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

◆ _draw_aspect_2d

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

◆ _drawable_context

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
GF_Node * cliper
Fixed depth_gain
Fixed depth_offset

◆ StrikeInfo2D

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

◆ CTX_3DTYPE_MASK

#define CTX_3DTYPE_MASK   0x7800

◆ CTX_REDRAW_MASK

#define CTX_REDRAW_MASK   0x00000003

Enumeration Type Documentation

◆ anonymous enum

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 
DRAWABLE_HYBGL_INIT 

◆ anonymous enum

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 
CTX_HYBOGL_NO_CLEAR 
CTX_BACKROUND_NOT_LAYER 
CTX_BACKROUND_NO_CLEAR 

Function Documentation

◆ drawable_new()

Drawable* drawable_new ( )
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ drawable_del()

void drawable_del ( Drawable *  dr)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ drawable_del_ex()

void drawable_del_ex ( Drawable *  dr,
GF_Compositor *  compositor,
Bool  no_free 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ drawable_node_del()

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

◆ drawable_init_ex()

void drawable_init_ex ( Drawable *  tmp)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ drawable_finalize_sort()

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

◆ drawable_finalize_sort_ex()

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_stack_new()

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:

◆ drawable_reset_path()

void drawable_reset_path ( Drawable *  st)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ drawable_reset_path_outline()

void drawable_reset_path_outline ( Drawable *  st)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ drawable_mark_modified()

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:

◆ drawable_check_focus_highlight()

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:

◆ drawable_reset_group_highlight()

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:

◆ drawable_flush_bounds()

Bool drawable_flush_bounds ( Drawable *  node,
GF_VisualManager *  on_visual,
u32  mode2d 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ drawable_has_same_bounds()

Bool drawable_has_same_bounds ( DrawableContext *  ctx,
GF_VisualManager *  visual 
)

◆ drawable_get_previous_bound()

Bool drawable_get_previous_bound ( Drawable *  node,
GF_IRect rc,
GF_VisualManager *  visual 
)
+ Here is the caller graph for this function:

◆ drawable_reset_bounds()

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:

◆ drawable_check_bounds()

void drawable_check_bounds ( DrawableContext *  ctx,
GF_VisualManager *  visual 
)

◆ drawable_traverse_focus()

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:

◆ drawable_get_aspect_2d_mpeg4()

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:

◆ drawable_get_aspect_2d_svg()

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:

◆ NewDrawableContext()

DrawableContext* NewDrawableContext ( )
+ Here is the caller graph for this function:

◆ DeleteDrawableContext()

void DeleteDrawableContext ( DrawableContext *  ctx)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ drawctx_reset()

void drawctx_reset ( DrawableContext *  ctx)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ drawctx_update_info()

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:

◆ drawable_init_context_mpeg4()

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:

◆ drawable_init_context_svg()

DrawableContext* drawable_init_context_svg ( Drawable *  drawable,
GF_TraverseState *  tr_state,
SVG_ClipPath clip_path 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ drawable_draw()

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:

◆ call_drawable_draw()

void call_drawable_draw ( DrawableContext *  ctx,
GF_TraverseState *  tr_state,
Bool  set_cyclic 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vrml_drawable_pick()

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:

◆ svg_drawable_pick()

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:

◆ delete_strikeinfo2d()

void delete_strikeinfo2d ( StrikeInfo2D info)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ drawable_get_strikeinfo()

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:

◆ drawable_compute_line_scale()

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:

◆ svg_drawable_is_over()

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:

◆ drawable_check_texture_dirty()

void drawable_check_texture_dirty ( DrawableContext *  ctx,
Drawable *  drawable,
GF_TraverseState *  tr_state 
)
+ Here is the caller graph for this function: