JOCL v2.6.0-rc-20250722
JOCL, OpenCL® API Binding for Java™ (public API).
CLProgramConfiguration.java
Go to the documentation of this file.
1/*
2 * Copyright 2009 - 2010 JogAmp Community. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without modification, are
5 * permitted provided that the following conditions are met:
6 *
7 * 1. Redistributions of source code must retain the above copyright notice, this list of
8 * conditions and the following disclaimer.
9 *
10 * 2. Redistributions in binary form must reproduce the above copyright notice, this list
11 * of conditions and the following disclaimer in the documentation and/or other materials
12 * provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED
15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
16 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
21 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
22 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 *
24 * The views and conclusions contained in the software and documentation are those of the
25 * authors and should not be interpreted as representing official policies, either expressed
26 * or implied, of JogAmp Community.
27 */
28
29package com.jogamp.opencl.util;
30
31import com.jogamp.opencl.CLDevice;
32import com.jogamp.opencl.CLProgram;
33import java.util.Map;
34
35/**
36 * Configuration representing everything needed to build an OpenCL program (program included).
37 * CLProgramConfiguration is a helper for building programs with more complex configurations or
38 * building multiple programs with the similar configuration.
39 * @see CLProgram#prepare()
40 * @see com.jogamp.opencl.CLProgramBuilder#createConfiguration(com.jogamp.opencl.CLProgram)
41 * @see com.jogamp.opencl.CLProgramBuilder#loadConfiguration(java.io.ObjectInputStream, com.jogamp.opencl.CLContext)
42 * @author Michael Bien
43 */
45
46 /**
47 * Builds or rebuilds a program.
48 */
49 public CLProgram build();
50
51 /**
52 * Builds or rebuilds a program.
53 * @param listener The callback who will be notified when the program has built.
54 */
56
57 /**
58 * Returns the program.
59 */
61
62 /**
63 * Returns a new instance of of this configuration without a {@link CLProgram},
64 * program binaries or sources associated with it.
65 */
67
68
69 // overwrite with CLProgramConfiguration as return type
70 @Override public CLProgramConfiguration forDevice(CLDevice device);
71 @Override public CLProgramConfiguration forDevices(CLDevice... devices);
72 @Override public CLProgramConfiguration withDefine(String name);
73 @Override public CLProgramConfiguration withDefine(String name, Object value);
74 @Override public CLProgramConfiguration withDefines(String... names);
75 @Override public CLProgramConfiguration withDefines(Map<String, ? extends Object> defines);
76 @Override public CLProgramConfiguration withOption(String option);
77 @Override public CLProgramConfiguration withOptions(String... options);
78 @Override public CLProgramConfiguration reset();
82 @Override public CLProgramConfiguration clone();
83
84}
This object represents an OpenCL device.
Definition: CLDevice.java:53
Represents a OpenCL program executed on one or more CLDevices.
Definition: CLProgram.java:64
Configuration representing everything needed to build an OpenCL program.
A callback an application can register to be called when the program executable has been built (succe...
Configuration representing everything needed to build an OpenCL program (program included).
CLProgramConfiguration forDevices(CLDevice... devices)
Adds the devices as build target.
CLProgramConfiguration withDefine(String name, Object value)
Adds the definition to the build configuration.
CLProgramConfiguration resetDevices()
Resets this builder's device list.
CLProgramConfiguration resetOptions()
Resets this builder's configuration options.
CLProgramConfiguration reset()
Resets this builder's configuration like options, devices and definitions.
CLBuildConfiguration asBuildConfiguration()
Returns a new instance of of this configuration without a CLProgram, program binaries or sources asso...
CLProgramConfiguration withDefines(String... names)
Adds the definitions to the build configuration.
CLProgramConfiguration withOptions(String... options)
Adds the compiler options to the build configuration.
CLProgramConfiguration resetDefines()
Resets this builder's macro definitions.
CLProgram build()
Builds or rebuilds a program.
CLProgramConfiguration forDevice(CLDevice device)
Adds the device as build target.
CLProgramConfiguration withDefine(String name)
Adds the definition to the build configuration.
CLProgramConfiguration withOption(String option)
Adds the compiler option to the build configuration.
CLProgramConfiguration withDefines(Map< String, ? extends Object > defines)
Adds the definitions to the build configuration.
CLProgram getProgram()
Returns the program.
CLProgramConfiguration clone()
Clones this configuration.
CLProgram build(CLBuildListener listener)
Builds or rebuilds a program.