void init_funcs() { if (!init_done) { movetoF = moveto_; linetoF = lineto_; cubictoF = cubicto_; conictoF = conicto_; decomposer_funcs.move_to = Marshal.GetFunctionPointerForDelegate(movetoF); decomposer_funcs.line_to = Marshal.GetFunctionPointerForDelegate(linetoF); decomposer_funcs.conic_to = Marshal.GetFunctionPointerForDelegate(conictoF); decomposer_funcs.cubic_to = Marshal.GetFunctionPointerForDelegate(cubictoF); init_done = true; } }