Exemplo n.º 1
0
JNIEXPORT jlong JNICALL Java_org_lwjgl_opencl_CL12_nclCreateProgramWithBuiltInKernels(JNIEnv *env, jclass clazz, jlong context, jint num_devices, jlong device_list, jlong kernel_names, jlong errcode_ret, jlong function_pointer) {
	const cl_device_id *device_list_address = (const cl_device_id *)(intptr_t)device_list;
	const cl_char *kernel_names_address = (const cl_char *)(intptr_t)kernel_names;
	cl_int *errcode_ret_address = (cl_int *)(intptr_t)errcode_ret;
	clCreateProgramWithBuiltInKernelsPROC clCreateProgramWithBuiltInKernels = (clCreateProgramWithBuiltInKernelsPROC)((intptr_t)function_pointer);
	cl_program __result = clCreateProgramWithBuiltInKernels((cl_context)(intptr_t)context, num_devices, device_list_address, kernel_names_address, errcode_ret_address);
	return (intptr_t)__result;
}
Exemplo n.º 2
0
    /// Creates a new program with the built-in kernels listed in
    /// \p kernel_names for \p devices in \p context.
    ///
    /// \opencl_version_warning{1,2}
    ///
    /// \see_opencl_ref{clCreateProgramWithBuiltInKernels}
    static program create_with_builtin_kernels(const context &context,
                                               const std::vector<device> &devices,
                                               const std::string &kernel_names)
    {
        cl_int error = 0;

        cl_program program_ = clCreateProgramWithBuiltInKernels(
            context.get(),
            static_cast<uint_>(devices.size()),
            reinterpret_cast<const cl_device_id *>(&devices[0]),
            kernel_names.c_str(),
            &error
        );

        if(!program_){
            BOOST_THROW_EXCEPTION(opencl_error(error));
        }

        return program(program_, false);
    }