29package com.jogamp.opencl.util;
31import com.jogamp.opencl.CLCommandQueue.Mode;
32import com.jogamp.opencl.CLDevice;
33import com.jogamp.opencl.CLPlatform;
34import com.jogamp.opencl.CLVersion;
35import java.util.Arrays;
36import com.jogamp.opengl.GL;
37import com.jogamp.opengl.GLContext;
77 for (
final CLDevice device : devices) {
78 if(glFilter.
accept(device)) {
95 final String glVendor = context.getGL().glGetString(GL.GL_VENDOR);
97 return areVendorsCompatible(glVendor,clVendor) && glFilter.
accept(item);
110 private static boolean areVendorsCompatible(
final String glVendor,
final String clVendor) {
111 return( clVendor.equals(glVendor)
112 || (glVendor.contains(
"ATI Technologies") && clVendor.contains(
"Advanced Micro Devices"))
113 || (glVendor.contains(
"NVIDIA Corporation") && clVendor.contains(
"Apple")));
121 public boolean accept(
final CLPlatform item) {
122 return item.
getExtensions().containsAll(Arrays.asList(extensions));
133 public boolean accept(
final CLPlatform item) {
135 if(queueModeFilter.
accept(device)) {
This object represents an OpenCL device.
Version of an OpenCL Implementation.
static Filter< CLDevice > queueMode(final Mode... modes)
Accepts all devices supporting the specified command queue modes.
static Filter< CLDevice > glSharing()
Accepts all devices which support OpenGL-OpenCL interoperability.
Enumeration for the command-queue settings.
Enumeration for the type of a device.
boolean accept(I item)
Returns true only if the item should be accepted.