/* MACHINE GENERATED FILE, DO NOT EDIT */ package org.lwjgl.opencl; import java.util.*; public class CLPlatformCapabilities { public final int majorVersion; public final int minorVersion; public final boolean OpenCL11; public final boolean OpenCL12; public final boolean CL_KHR_d3d10_sharing; public final boolean CL_KHR_gl_event; public final boolean CL_KHR_gl_sharing; public final boolean CL_KHR_icd; public CLPlatformCapabilities(final CLPlatform platform) { final String extensionList = platform.getInfoString(CL10.CL_PLATFORM_EXTENSIONS); final String version = platform.getInfoString(CL10.CL_PLATFORM_VERSION); if ( !version.startsWith("OpenCL ") ) throw new RuntimeException("Invalid OpenCL version string: " + version); try { final StringTokenizer tokenizer = new StringTokenizer(version.substring(7), ". "); majorVersion = Integer.parseInt(tokenizer.nextToken()); minorVersion = Integer.parseInt(tokenizer.nextToken()); OpenCL11 = 1 < majorVersion || (1 == majorVersion && 1 <= minorVersion); OpenCL12 = 1 < majorVersion || (1 == majorVersion && 2 <= minorVersion); } catch (RuntimeException e) { throw new RuntimeException("The major and/or minor OpenCL version \"" + version + "\" is malformed: " + e.getMessage()); } final Set<String> extensions = APIUtil.getExtensions(extensionList); CL_KHR_d3d10_sharing = extensions.contains("cl_khr_d3d10_sharing"); CL_KHR_gl_event = extensions.contains("cl_khr_gl_event") && CLCapabilities.CL_KHR_gl_event; CL_KHR_gl_sharing = extensions.contains("cl_khr_gl_sharing") && CLCapabilities.CL_KHR_gl_sharing; CL_KHR_icd = extensions.contains("cl_khr_icd") && CLCapabilities.CL_KHR_icd; } public int getMajorVersion() { return majorVersion; } public int getMinorVersion() { return minorVersion; } public String toString() { final StringBuilder buf = new StringBuilder(); buf.append("OpenCL ").append(majorVersion).append('.').append(minorVersion); buf.append(" - Extensions: "); if ( CL_KHR_d3d10_sharing ) buf.append("cl_khr_d3d10_sharing "); if ( CL_KHR_gl_event ) buf.append("cl_khr_gl_event "); if ( CL_KHR_gl_sharing ) buf.append("cl_khr_gl_sharing "); if ( CL_KHR_icd ) buf.append("cl_khr_icd "); return buf.toString(); } }