CLProcAddressTable addressTable = new CLProcAddressTable(); public long clCreateContext(PointerBuffer properties, PointerBuffer devices, CreateContextCallback pfn_notify, Object userData, IntBuffer errcode_ret) { if(properties!=null && !properties.isDirect()) throw new RuntimeException("Argument \"properties\" was not a direct buffer"); if(pfn_notify != null) throw new RuntimeException("asynchronous execution with callback is not yet implemented, pass null through this method to block until complete."); if(userData != null) System.err.println("WARNING: userData not yet implemented... ignoring"); return this.clCreateContext0( properties!=null?properties.getBuffer():null, BufferFactory.getDirectBufferByteOffset(properties), devices!=null?devices.getBuffer():null, BufferFactory.getDirectBufferByteOffset(devices), null, null, errcode_ret, BufferFactory.getDirectBufferByteOffset(errcode_ret) ); } private native long clCreateContext0(Object cl_context_properties, int props_offset, Object devices, int devices_offset, CreateContextCallback pfn_notify, Object userData, Object errcode_ret, int err_offset); public long clCreateContextFromType(PointerBuffer properties, long device_type, CreateContextCallback pfn_notify, Object userData, IntBuffer errcode_ret) { if(properties!=null && !properties.isDirect()) throw new RuntimeException("Argument \"properties\" was not a direct buffer"); if(pfn_notify != null) throw new RuntimeException("asynchronous execution with callback is not yet implemented, pass null through this method to block until complete."); if(userData != null) System.err.println("WARNING: userData not yet implemented... ignoring"); return this.clCreateContextFromType0( properties!=null?properties.getBuffer():null, BufferFactory.getDirectBufferByteOffset(properties), device_type, pfn_notify, null, errcode_ret, BufferFactory.getDirectBufferByteOffset(errcode_ret) ); } private native long clCreateContextFromType0(Object properties, int props_offset, long device_type, CreateContextCallback pfn_notify, Object userData, Object errcode_ret, int err_offset); /** Interface to C language function:
int32_t clBuildProgram(cl_program, uint32_t, cl_device_id * , const char * , void * ); */ public int clBuildProgram(long program, int deviceCount, PointerBuffer deviceList, String options, BuildProgramCallback cb, Object userData) { if(deviceList!=null && !deviceList.isDirect()) throw new RuntimeException("Argument \"properties\" was not a direct buffer"); if(cb != null) throw new RuntimeException("asynchronous execution with callback is not yet implemented, pass null through this method to block until complete."); if(userData != null) System.err.println("WARNING: userData not yet implemented... ignoring"); return clBuildProgram0(program, deviceCount, deviceList!=null?deviceList.getBuffer():null, BufferFactory.getDirectBufferByteOffset(deviceList), options, cb, userData); } /** Entry point to C language function: int32_t clBuildProgram(cl_program, uint32_t, cl_device_id * , const char * , void * ); */ private native int clBuildProgram0(long program, int deviceCount, Object deviceList, int deviceListOffset, String options, BuildProgramCallback cb, Object userData); private final static void convert32To64(long[] values) { if(values.length%2 == 1) { values[values.length-1] = values[values.length/2]>>>32; } for (int i = values.length - 1 - values.length%2; i >= 0; i-=2) { long temp = values[i/2]; values[i-1] = temp>>>32; values[i ] = temp & 0x00000000FFFFFFFFL; } }