/*hardcoded proto loading - this is mainly used for module development and testing...*/ void compositor_init_hardcoded_proto(GF_Compositor *compositor, GF_Node *node) { MFURL *proto_url; GF_Proto *proto; u32 i; proto = gf_node_get_proto(node); if (!proto) return; proto_url = gf_sg_proto_get_extern_url(proto); for (i=0; i<proto_url->count; i++) { const char *url = proto_url->vals[0].url; #ifndef GPAC_DISABLE_3D if (!strcmp(url, "urn:inet:gpac:builtin:PathExtrusion")) { compositor_init_path_extrusion(compositor, node); return; } if (!strcmp(url, "urn:inet:gpac:builtin:PlanarExtrusion")) { compositor_init_planar_extrusion(compositor, node); return; } if (!strcmp(url, "urn:inet:gpac:builtin:PlaneClipper")) { compositor_init_plane_clipper(compositor, node); return; } #endif if (!strcmp(url, "urn:inet:gpac:builtin:TextureText")) { compositor_init_texture_text(compositor, node); return; } if (!strcmp(url, "urn:inet:gpac:builtin:OffscreenGroup")) { compositor_init_offscreen_group(compositor, node); return; } if (!strcmp(url, "urn:inet:gpac:builtin:DepthGroup")) { compositor_init_depth_group(compositor, node); return; } if (!strcmp(url, "urn:inet:gpac:builtin:DepthViewPoint")) { compositor_init_depth_viewpoint(compositor, node); return; } if (!strcmp(url, "urn:inet:gpac:builtin:IndexedCurve2D")) { compositor_init_idx_curve2d(compositor, node); return; } if (!strcmp(url, "urn:inet:gpac:builtin:Untransform")) { compositor_init_untransform(compositor, node); return; } if (!strcmp(url, "urn:inet:gpac:builtin:FlashShape")) { compositor_init_hc_flashshape(compositor, node); return; } } }
/*hardcoded proto loading - this is mainly used for module development and testing...*/ void compositor_init_hardcoded_proto(GF_Compositor *compositor, GF_Node *node) { MFURL *proto_url; GF_Proto *proto; u32 i, j; GF_HardcodedProto *ifce; proto = gf_node_get_proto(node); if (!proto) return; proto_url = gf_sg_proto_get_extern_url(proto); for (i=0; i<proto_url->count; i++) { const char *url = proto_url->vals[0].url; #ifndef GPAC_DISABLE_3D if (!strcmp(url, "urn:inet:gpac:builtin:PathExtrusion")) { compositor_init_path_extrusion(compositor, node); return; } if (!strcmp(url, "urn:inet:gpac:builtin:PlanarExtrusion")) { compositor_init_planar_extrusion(compositor, node); return; } if (!strcmp(url, "urn:inet:gpac:builtin:PlaneClipper")) { compositor_init_plane_clipper(compositor, node); return; } #endif if (!strcmp(url, "urn:inet:gpac:builtin:TextureText")) { compositor_init_texture_text(compositor, node); return; } if (!strcmp(url, "urn:inet:gpac:builtin:OffscreenGroup")) { compositor_init_offscreen_group(compositor, node); return; } if (!strcmp(url, "urn:inet:gpac:builtin:DepthGroup")) { compositor_init_depth_group(compositor, node); return; } if (!strcmp(url, "urn:inet:gpac:builtin:DepthViewPoint")) { compositor_init_depth_viewpoint(compositor, node); return; } if (!strcmp(url, "urn:inet:gpac:builtin:IndexedCurve2D")) { compositor_init_idx_curve2d(compositor, node); return; } if (!strcmp(url, "urn:inet:gpac:builtin:Untransform")) { compositor_init_untransform(compositor, node); return; } if (!strcmp(url, "urn:inet:gpac:builtin:FlashShape")) { compositor_init_hc_flashshape(compositor, node); return; } if (!strcmp(url, "urn:inet:gpac:builtin:StyleGroup")) { compositor_init_style_group(compositor, node); return; } if (!strcmp(url, "urn:inet:gpac:builtin:TestSensor")) { compositor_init_test_sensor(compositor, node); return; } /*check proto modules*/ if (compositor->proto_modules) { j = 0; while ( (ifce = (GF_HardcodedProto *)gf_list_enum(compositor->proto_modules, &j) )) { if ( ifce->can_load_proto(url) && ifce->init(ifce, compositor, node, url) ) { return; } } } } }