libgpac
Documentation of the core library of GPAC
visual_manager_3d.h File Reference
+ Include dependency graph for visual_manager_3d.h:
+ This graph shows which files directly or indirectly include this file:

Data Structures

struct  Drawable3D
 
struct  DirectionalLightContext
 
struct  Drawable3DContext
 
struct  GF_LightInfo
 
struct  GF_ClipInfo
 

Macros

#define GF_MAX_GL_CLIPS   2
 
#define GF_MAX_GL_LIGHTS   4
 

Enumerations

enum  { V3D_STATE_LIGHT = 1 , V3D_STATE_BLEND = (1<<1) , V3D_STATE_COLOR = (1<<2) }
 
enum  { V3D_MATERIAL_AMBIENT =0 , V3D_MATERIAL_DIFFUSE , V3D_MATERIAL_SPECULAR , V3D_MATERIAL_EMISSIVE }
 

Functions

Bool visual_3d_draw_frame (GF_VisualManager *visual, GF_Node *root, GF_TraverseState *tr_state, Bool is_root_visual)
 
Bool visual_3d_setup_ray (GF_VisualManager *visual, GF_TraverseState *tr_state, s32 ix, s32 iy)
 
void visual_3d_pick_node (GF_VisualManager *visual, GF_TraverseState *tr_state, GF_Event *ev, GF_ChildNodeItem *children)
 
Bool visual_3d_node_cull (GF_TraverseState *tr_state, GF_BBox *bbox, Bool skip_near)
 
void visual_3d_viewpoint_change (GF_TraverseState *tr_state, GF_Node *vp, Bool animate_change, Fixed fieldOfView, SFVec3f position, SFRotation orientation, SFVec3f local_center)
 
void visual_3d_vrml_drawable_pick (GF_Node *n, GF_TraverseState *tr_state, GF_Mesh *mesh, Drawable *drawable)
 
void visual_3d_vrml_drawable_collide (GF_Node *node, GF_TraverseState *tr_state)
 
void visual_3d_register_context (GF_TraverseState *tr_state, GF_Node *node_to_draw)
 
void visual_3d_flush_contexts (GF_VisualManager *visual, GF_TraverseState *tr_state)
 
void visual_3d_draw (GF_TraverseState *tr_state, GF_Mesh *mesh)
 
void visual_3d_draw_2d_with_aspect (Drawable *st, GF_TraverseState *tr_state, DrawAspect2D *asp)
 
void visual_3d_draw_from_context (DrawableContext *ctx, GF_TraverseState *tr_state)
 
void visual_3d_draw_2d (Drawable *st, GF_TraverseState *tr_state)
 
void visual_3d_set_2d_strike (GF_TraverseState *tr_state, DrawAspect2D *asp)
 
Bool visual_3d_setup_appearance (GF_TraverseState *tr_state)
 
Bool visual_3d_setup_texture (GF_TraverseState *tr_state, Fixed diffuse_alpha)
 
void visual_3d_disable_texture (GF_TraverseState *tr_state)
 
void visual_3d_check_collisions (GF_TraverseState *tr_state, GF_Node *root_node, GF_ChildNodeItem *node_list)
 
void visual_3d_init_draw (GF_TraverseState *tr_state, u32 layer_type)
 
void visual_3d_setup_projection (GF_TraverseState *tr_state, Bool is_layer)
 
Drawable3Ddrawable_3d_new (GF_Node *node)
 
void drawable_3d_del (GF_Node *n)
 
void drawable_3d_base_traverse (GF_Node *n, void *rs, Bool is_destroy, void(*build_shape)(GF_Node *, Drawable3D *, GF_TraverseState *))
 
void drawable3d_check_focus_highlight (GF_Node *node, GF_TraverseState *tr_state, GF_BBox *orig_bounds)
 
void visual_3d_setup (GF_VisualManager *visual)
 
void visual_3d_enable_depth_buffer (GF_VisualManager *visual, Bool on)
 
void visual_3d_enable_antialias (GF_VisualManager *visual, Bool bOn)
 
void visual_3d_enable_headlight (GF_VisualManager *visual, Bool bOn, GF_Camera *cam)
 
void visual_3d_set_state (GF_VisualManager *visual, u32 flag_mask, Bool setOn)
 
void visual_3d_clear (GF_VisualManager *visual, SFColor color, Fixed alpha)
 
void visual_3d_clear_depth (GF_VisualManager *visual)
 
void visual_3d_set_background_state (GF_VisualManager *visual, Bool on)
 
void visual_3d_set_texture_matrix (GF_VisualManager *visual, GF_Matrix *mx)
 
void visual_3d_projection_matrix_modified (GF_VisualManager *visual)
 
void visual_3d_set_viewport (GF_VisualManager *visual, GF_Rect vp)
 
void visual_3d_set_scissor (GF_VisualManager *visual, GF_Rect *vp)
 
void visual_3d_set_clipper_2d (GF_VisualManager *visual, GF_Rect clip, GF_Matrix *mx_at_clipper)
 
void visual_3d_reset_clipper_2d (GF_VisualManager *visual)
 
void visual_3d_set_clip_plane (GF_VisualManager *visual, GF_Plane p, GF_Matrix *mx_at_clipper, Bool is_2d_clip)
 
void visual_3d_reset_clip_plane (GF_VisualManager *visual)
 
void visual_3d_mesh_paint (GF_TraverseState *tr_state, GF_Mesh *mesh)
 
void visual_3d_mesh_strike (GF_TraverseState *tr_state, GF_Mesh *mesh, Fixed width, Fixed line_scale, u32 dash_style)
 
void visual_3d_set_material (GF_VisualManager *visual, u32 material_type, Fixed *rgba)
 
void visual_3d_set_shininess (GF_VisualManager *visual, Fixed shininess)
 
void visual_3d_set_material_2d (GF_VisualManager *visual, SFColor col, Fixed alpha)
 
void visual_3d_set_material_2d_argb (GF_VisualManager *visual, u32 col)
 
void visual_3d_remove_last_light (GF_VisualManager *visual)
 
void visual_3d_clear_all_lights (GF_VisualManager *visual)
 
Bool visual_3d_add_spot_light (GF_VisualManager *visual, Fixed ambientIntensity, SFVec3f attenuation, Fixed beamWidth, SFColor color, Fixed cutOffAngle, SFVec3f direction, Fixed intensity, SFVec3f location, GF_Matrix *light_mx)
 
Bool visual_3d_add_point_light (GF_VisualManager *visual, Fixed ambientIntensity, SFVec3f attenuation, SFColor color, Fixed intensity, SFVec3f location, GF_Matrix *light_mx)
 
Bool visual_3d_add_directional_light (GF_VisualManager *visual, Fixed ambientIntensity, SFColor color, Fixed intensity, SFVec3f direction, GF_Matrix *light_mx)
 
void visual_3d_has_inactive_light (GF_VisualManager *visual)
 
void visual_3d_set_fog (GF_VisualManager *visual, const char *type, SFColor color, Fixed density, Fixed visibility)
 
void visual_3d_fill_rect (GF_VisualManager *visual, GF_Rect rc, SFColorRGBA color)
 
void visual_3d_point_sprite (GF_VisualManager *visual, Drawable *stack, GF_TextureHandler *txh, GF_TraverseState *tr_state)
 
void visual_3d_mesh_hatch (GF_TraverseState *tr_state, GF_Mesh *mesh, u32 hatchStyle, SFColor hatchColor)
 
void visual_3d_draw_bbox (GF_TraverseState *tr_state, GF_BBox *box, Bool is_debug)
 
GF_Err visual_3d_init_autostereo (GF_VisualManager *visual)
 
void visual_3d_end_auto_stereo_pass (GF_VisualManager *visual)
 
void visual_3d_init_shaders (GF_VisualManager *visual)
 
void visual_3d_reset_graphics (GF_VisualManager *visual)
 
void visual_3d_clean_state (GF_VisualManager *visual)
 

Data Structure Documentation

◆ Drawable3D

struct Drawable3D
+ Collaboration diagram for Drawable3D:
Data Fields
GF_Mesh * mesh

◆ DirectionalLightContext

struct DirectionalLightContext
+ Collaboration diagram for DirectionalLightContext:
Data Fields
GF_Node * dlight
GF_Matrix light_matrix

◆ Drawable3DContext

struct Drawable3DContext
+ Collaboration diagram for Drawable3DContext:
Data Fields
GF_Node * geometry
GF_Node * appearance
GF_Matrix model_matrix
GF_ColorMatrix color_mat
u32 text_split_idx
Bool pixel_metrics
u32 cull_flag
GF_List * directional_lights
Fixed zmax
GF_Rect clipper
Bool has_clipper
GF_Plane clip_planes[MAX_USER_CLIP_PLANES]
u32 num_clip_planes
Fixed depth_offset

◆ GF_LightInfo

struct GF_LightInfo
+ Collaboration diagram for GF_LightInfo:
Data Fields
u32 type
SFVec3f direction
SFVec3f position
SFVec3f attenuation
Fixed ambientIntensity
Fixed intensity
Fixed beamWidth
Fixed cutOffAngle
SFColor color
GF_Matrix light_mx

◆ GF_ClipInfo

struct GF_ClipInfo
+ Collaboration diagram for GF_ClipInfo:
Data Fields
GF_Plane p
Bool is_2d_clip
GF_Matrix * mx_clipper

Macro Definition Documentation

◆ GF_MAX_GL_CLIPS

#define GF_MAX_GL_CLIPS   2

◆ GF_MAX_GL_LIGHTS

#define GF_MAX_GL_LIGHTS   4

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
V3D_STATE_LIGHT 
V3D_STATE_BLEND 
V3D_STATE_COLOR 

◆ anonymous enum

anonymous enum
Enumerator
V3D_MATERIAL_AMBIENT 
V3D_MATERIAL_DIFFUSE 
V3D_MATERIAL_SPECULAR 
V3D_MATERIAL_EMISSIVE 

Function Documentation

◆ visual_3d_draw_frame()

Bool visual_3d_draw_frame ( GF_VisualManager *  visual,
GF_Node root,
GF_TraverseState *  tr_state,
Bool  is_root_visual 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_setup_ray()

Bool visual_3d_setup_ray ( GF_VisualManager *  visual,
GF_TraverseState *  tr_state,
s32  ix,
s32  iy 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_pick_node()

void visual_3d_pick_node ( GF_VisualManager *  visual,
GF_TraverseState *  tr_state,
GF_Event ev,
GF_ChildNodeItem children 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_node_cull()

Bool visual_3d_node_cull ( GF_TraverseState *  tr_state,
GF_BBox bbox,
Bool  skip_near 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_viewpoint_change()

void visual_3d_viewpoint_change ( GF_TraverseState *  tr_state,
GF_Node vp,
Bool  animate_change,
Fixed  fieldOfView,
SFVec3f  position,
SFRotation  orientation,
SFVec3f  local_center 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_vrml_drawable_pick()

void visual_3d_vrml_drawable_pick ( GF_Node n,
GF_TraverseState *  tr_state,
GF_Mesh mesh,
Drawable *  drawable 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_vrml_drawable_collide()

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

◆ visual_3d_register_context()

void visual_3d_register_context ( GF_TraverseState *  tr_state,
GF_Node node_to_draw 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_flush_contexts()

void visual_3d_flush_contexts ( GF_VisualManager *  visual,
GF_TraverseState *  tr_state 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_draw()

void visual_3d_draw ( GF_TraverseState *  tr_state,
GF_Mesh mesh 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_draw_2d_with_aspect()

void visual_3d_draw_2d_with_aspect ( Drawable *  st,
GF_TraverseState *  tr_state,
DrawAspect2D *  asp 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_draw_from_context()

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

◆ visual_3d_draw_2d()

void visual_3d_draw_2d ( Drawable *  st,
GF_TraverseState *  tr_state 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_set_2d_strike()

void visual_3d_set_2d_strike ( GF_TraverseState *  tr_state,
DrawAspect2D *  asp 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_setup_appearance()

Bool visual_3d_setup_appearance ( GF_TraverseState *  tr_state)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_setup_texture()

Bool visual_3d_setup_texture ( GF_TraverseState *  tr_state,
Fixed  diffuse_alpha 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_disable_texture()

void visual_3d_disable_texture ( GF_TraverseState *  tr_state)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_check_collisions()

void visual_3d_check_collisions ( GF_TraverseState *  tr_state,
GF_Node root_node,
GF_ChildNodeItem node_list 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_init_draw()

void visual_3d_init_draw ( GF_TraverseState *  tr_state,
u32  layer_type 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_setup_projection()

void visual_3d_setup_projection ( GF_TraverseState *  tr_state,
Bool  is_layer 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ drawable_3d_new()

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

◆ drawable_3d_del()

void drawable_3d_del ( GF_Node n)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ drawable_3d_base_traverse()

void drawable_3d_base_traverse ( GF_Node n,
void *  rs,
Bool  is_destroy,
void(*)(GF_Node *, Drawable3D *, GF_TraverseState *)  build_shape 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ drawable3d_check_focus_highlight()

void drawable3d_check_focus_highlight ( GF_Node node,
GF_TraverseState *  tr_state,
GF_BBox orig_bounds 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_setup()

void visual_3d_setup ( GF_VisualManager *  visual)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_enable_depth_buffer()

void visual_3d_enable_depth_buffer ( GF_VisualManager *  visual,
Bool  on 
)
+ Here is the caller graph for this function:

◆ visual_3d_enable_antialias()

void visual_3d_enable_antialias ( GF_VisualManager *  visual,
Bool  bOn 
)
+ Here is the caller graph for this function:

◆ visual_3d_enable_headlight()

void visual_3d_enable_headlight ( GF_VisualManager *  visual,
Bool  bOn,
GF_Camera cam 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_set_state()

void visual_3d_set_state ( GF_VisualManager *  visual,
u32  flag_mask,
Bool  setOn 
)
+ Here is the caller graph for this function:

◆ visual_3d_clear()

void visual_3d_clear ( GF_VisualManager *  visual,
SFColor  color,
Fixed  alpha 
)
+ Here is the caller graph for this function:

◆ visual_3d_clear_depth()

void visual_3d_clear_depth ( GF_VisualManager *  visual)
+ Here is the caller graph for this function:

◆ visual_3d_set_background_state()

void visual_3d_set_background_state ( GF_VisualManager *  visual,
Bool  on 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_set_texture_matrix()

void visual_3d_set_texture_matrix ( GF_VisualManager *  visual,
GF_Matrix mx 
)
+ Here is the caller graph for this function:

◆ visual_3d_projection_matrix_modified()

void visual_3d_projection_matrix_modified ( GF_VisualManager *  visual)
+ Here is the caller graph for this function:

◆ visual_3d_set_viewport()

void visual_3d_set_viewport ( GF_VisualManager *  visual,
GF_Rect  vp 
)
+ Here is the caller graph for this function:

◆ visual_3d_set_scissor()

void visual_3d_set_scissor ( GF_VisualManager *  visual,
GF_Rect vp 
)
+ Here is the caller graph for this function:

◆ visual_3d_set_clipper_2d()

void visual_3d_set_clipper_2d ( GF_VisualManager *  visual,
GF_Rect  clip,
GF_Matrix mx_at_clipper 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_reset_clipper_2d()

void visual_3d_reset_clipper_2d ( GF_VisualManager *  visual)
+ Here is the caller graph for this function:

◆ visual_3d_set_clip_plane()

void visual_3d_set_clip_plane ( GF_VisualManager *  visual,
GF_Plane  p,
GF_Matrix mx_at_clipper,
Bool  is_2d_clip 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_reset_clip_plane()

void visual_3d_reset_clip_plane ( GF_VisualManager *  visual)
+ Here is the caller graph for this function:

◆ visual_3d_mesh_paint()

void visual_3d_mesh_paint ( GF_TraverseState *  tr_state,
GF_Mesh mesh 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_mesh_strike()

void visual_3d_mesh_strike ( GF_TraverseState *  tr_state,
GF_Mesh mesh,
Fixed  width,
Fixed  line_scale,
u32  dash_style 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_set_material()

void visual_3d_set_material ( GF_VisualManager *  visual,
u32  material_type,
Fixed rgba 
)
+ Here is the caller graph for this function:

◆ visual_3d_set_shininess()

void visual_3d_set_shininess ( GF_VisualManager *  visual,
Fixed  shininess 
)
+ Here is the caller graph for this function:

◆ visual_3d_set_material_2d()

void visual_3d_set_material_2d ( GF_VisualManager *  visual,
SFColor  col,
Fixed  alpha 
)
+ Here is the caller graph for this function:

◆ visual_3d_set_material_2d_argb()

void visual_3d_set_material_2d_argb ( GF_VisualManager *  visual,
u32  col 
)
+ Here is the caller graph for this function:

◆ visual_3d_remove_last_light()

void visual_3d_remove_last_light ( GF_VisualManager *  visual)
+ Here is the caller graph for this function:

◆ visual_3d_clear_all_lights()

void visual_3d_clear_all_lights ( GF_VisualManager *  visual)
+ Here is the caller graph for this function:

◆ visual_3d_add_spot_light()

Bool visual_3d_add_spot_light ( GF_VisualManager *  visual,
Fixed  ambientIntensity,
SFVec3f  attenuation,
Fixed  beamWidth,
SFColor  color,
Fixed  cutOffAngle,
SFVec3f  direction,
Fixed  intensity,
SFVec3f  location,
GF_Matrix light_mx 
)
+ Here is the caller graph for this function:

◆ visual_3d_add_point_light()

Bool visual_3d_add_point_light ( GF_VisualManager *  visual,
Fixed  ambientIntensity,
SFVec3f  attenuation,
SFColor  color,
Fixed  intensity,
SFVec3f  location,
GF_Matrix light_mx 
)
+ Here is the caller graph for this function:

◆ visual_3d_add_directional_light()

Bool visual_3d_add_directional_light ( GF_VisualManager *  visual,
Fixed  ambientIntensity,
SFColor  color,
Fixed  intensity,
SFVec3f  direction,
GF_Matrix light_mx 
)
+ Here is the caller graph for this function:

◆ visual_3d_has_inactive_light()

void visual_3d_has_inactive_light ( GF_VisualManager *  visual)
+ Here is the caller graph for this function:

◆ visual_3d_set_fog()

void visual_3d_set_fog ( GF_VisualManager *  visual,
const char *  type,
SFColor  color,
Fixed  density,
Fixed  visibility 
)
+ Here is the caller graph for this function:

◆ visual_3d_fill_rect()

void visual_3d_fill_rect ( GF_VisualManager *  visual,
GF_Rect  rc,
SFColorRGBA  color 
)
+ Here is the caller graph for this function:

◆ visual_3d_point_sprite()

void visual_3d_point_sprite ( GF_VisualManager *  visual,
Drawable *  stack,
GF_TextureHandler txh,
GF_TraverseState *  tr_state 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_mesh_hatch()

void visual_3d_mesh_hatch ( GF_TraverseState *  tr_state,
GF_Mesh mesh,
u32  hatchStyle,
SFColor  hatchColor 
)
+ Here is the caller graph for this function:

◆ visual_3d_draw_bbox()

void visual_3d_draw_bbox ( GF_TraverseState *  tr_state,
GF_BBox box,
Bool  is_debug 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_init_autostereo()

GF_Err visual_3d_init_autostereo ( GF_VisualManager *  visual)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_end_auto_stereo_pass()

void visual_3d_end_auto_stereo_pass ( GF_VisualManager *  visual)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_init_shaders()

void visual_3d_init_shaders ( GF_VisualManager *  visual)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_reset_graphics()

void visual_3d_reset_graphics ( GF_VisualManager *  visual)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ visual_3d_clean_state()

void visual_3d_clean_state ( GF_VisualManager *  visual)
+ Here is the caller graph for this function: