diff options
author | Michael Bien <[email protected]> | 2010-02-25 19:13:15 +0100 |
---|---|---|
committer | Michael Bien <[email protected]> | 2010-02-25 19:13:15 +0100 |
commit | 0857dbb04fe9259f1076e9559b822c5032c23461 (patch) | |
tree | 5a45cd56bf861876f13d32a731a7cf0feb8c725e /src/com/mbien/opencl/CLBuildConfiguration.java | |
parent | 0b7b387ff2d829f611b385a6aebfe91ee746196a (diff) |
introduced CLBuildConfiguration and CLProgramConfiguration interfaces for CLProgramBuilder.
Diffstat (limited to 'src/com/mbien/opencl/CLBuildConfiguration.java')
-rw-r--r-- | src/com/mbien/opencl/CLBuildConfiguration.java | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/com/mbien/opencl/CLBuildConfiguration.java b/src/com/mbien/opencl/CLBuildConfiguration.java new file mode 100644 index 00000000..7b6ee1e2 --- /dev/null +++ b/src/com/mbien/opencl/CLBuildConfiguration.java @@ -0,0 +1,68 @@ +package com.mbien.opencl; + +import java.util.Map; + +/** + * Configuration representing everything needed to build an OpenCL program. + * @author Michael Bien + */ +public interface CLBuildConfiguration { + + /** + * Builds or rebuilds the program. + * @param program The program which should be build. + */ + public CLProgram build(CLProgram program); + + /** + * Adds the device as build target. + */ + public CLBuildConfiguration forDevice(CLDevice device); + + /** + * Adds the devices as build target. + */ + public CLBuildConfiguration forDevices(CLDevice... devices); + + /** + * Resets this builder's configuration like options, devices and definitions. + */ + public CLBuildConfiguration reset(); + + /** + * Adds the definition to the build configuration. + * @see public CLProgram#define(java.lang.String) + */ + public CLBuildConfiguration withDefine(String name); + + /** + * Adds the definition to the build configuration. + * @see public CLProgram#define(java.lang.String, java.lang.String) + */ + public CLBuildConfiguration withDefine(String name, Object value); + + /** + * Adds the definitions to the build configuration. + * @see public CLProgram#define(java.lang.String) + */ + public CLBuildConfiguration withDefines(String... names); + + /** + * Adds the definitions to the build configuration. + * @see public CLProgram#define(java.lang.String, java.lang.String) + */ + public CLBuildConfiguration withDefines(Map<String, String> defines); + + /** + * Adds the compiler option to the build configuration. + * @see CompilerOptions + */ + public CLBuildConfiguration withOption(String option); + + /** + * Adds the compiler options to the build configuration. + * @see CompilerOptions + */ + public CLBuildConfiguration withOptions(String... options); + +} |