public void Marshall(out IntPtr return_vals, out int n_return_vals) { n_return_vals = _set.Count; int size = GimpParam.Size; return_vals = Marshal.AllocCoTaskMem(n_return_vals * size); var seq = new IntPtrSeq(return_vals, n_return_vals, size); seq.ForEach((i, ptr) => this[i].GetGimpParam().Fill(ptr)); }
GimpParamDef[] GetParamDef(int num_args, IntPtr argsPtr) { var paramDef = new GimpParamDef[num_args]; var type = typeof(GimpParamDef); var seq = new IntPtrSeq(argsPtr, num_args, Marshal.SizeOf(type)); seq.ForEach((i, ptr) => { paramDef[i] = (GimpParamDef)Marshal.PtrToStructure(ptr, type); }); return(paramDef); }
public GimpParamSet(IntPtr ptr, int n) { var seq = new IntPtrSeq(ptr, n, GimpParam.Size); seq.ForEach(x => Add(new GimpParam(x))); }
GimpParamDef[] GetParamDef(int num_args, IntPtr argsPtr) { var paramDef = new GimpParamDef[num_args]; var type = typeof(GimpParamDef); var seq = new IntPtrSeq(argsPtr, num_args, Marshal.SizeOf(type)); seq.ForEach((i, ptr) => { paramDef[i] = (GimpParamDef) Marshal.PtrToStructure(ptr, type); }); return paramDef; }