private static extern ErrorCode clBuildProgram( ProgramSafeHandle program, uint numDevices, [In, MarshalAs(UnmanagedType.LPArray)] ClDeviceID[] devices, [MarshalAs(UnmanagedType.LPStr)] string options, BuildProgramCallback pfnNotify, IntPtr userData);
private static extern ProgramSafeHandle clLinkProgram( ContextSafeHandle context, uint numDevices, [In, MarshalAs(UnmanagedType.LPArray)] ClDeviceID[] devices, [MarshalAs(UnmanagedType.LPStr)] string options, uint numInputPrograms, [In, MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(SafeHandleArrayMarshaler))] ProgramSafeHandle[] inputPrograms, BuildProgramCallback pfnNotify, IntPtr userData, out ErrorCode errorCode);
private static extern ErrorCode clCompileProgram( ProgramSafeHandle program, uint numDevices, [In, MarshalAs(UnmanagedType.LPArray)] ClDeviceID[] devices, string options, uint numInputHeaders, [In, MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(SafeHandleArrayMarshaler))] ProgramSafeHandle[] inputHeaders, [In, MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPStr)] string[] headerIncludeNames, BuildProgramCallback pfnNotify, IntPtr userData);
public static void BuildProgram(ProgramSafeHandle program, ClDeviceID[] devices, string options, BuildProgramCallback notify, IntPtr userData) { ErrorHandler.ThrowOnFailure(clBuildProgram(program, devices != null && devices.Length > 0 ? (uint)devices.Length : 0, devices, options, notify, userData)); }