Package org.lwjgl

Examples of org.lwjgl.PointerBuffer


        throwEGLError("Failed to get number of available EGL configs.");

      configs = new EGLConfig[num_config.get(num_config.position())];
    }

    final PointerBuffer configs_buffer = APIUtil.getBufferPointer(configs.length);
    if ( !neglGetConfigs(dpy.getPointer(), MemoryUtil.getAddress0(configs_buffer), configs.length, MemoryUtil.getAddress(num_config)) )
      throwEGLError("Failed to get EGL configs.");

    final int config_size = num_config.get(num_config.position());
    for ( int i = 0; i < config_size; i++ )
      configs[i] = new EGLConfig(dpy, configs_buffer.get(i));

    return configs;
  }
View Full Code Here


      config_size = num_config.get(num_config.position());
    } else
      config_size = configs.length;

    //LWJGLUtil.log("config_size = " + config_size);
    PointerBuffer configs_buffer = APIUtil.getBufferPointer(config_size);
    if ( !neglChooseConfig(dpy.getPointer(), MemoryUtil.getAddressSafe(attrib_list), MemoryUtil.getAddress0(configs_buffer), config_size, MemoryUtil.getAddress(num_config)) )
      throwEGLError("Failed to choose EGL config.");

    // Get the true number of configurations (the first neglChooseConfig call may return more than the second)
    config_size = num_config.get(num_config.position());
    if ( configs == null )
      configs = new EGLConfig[config_size];
    for ( int i = 0; i < config_size; i++ )
      configs[i] = new EGLConfig(dpy, configs_buffer.get(i));

    return configs;
  }
View Full Code Here

    // -- This fails on the emulator
    // Get EGL config used by the context
    attrib_list.put(0, EGL_CONFIG_ID).put(1, configID).put(2, EGL_NONE);

    final PointerBuffer configs_buffer = APIUtil.getBufferPointer(1);
    if ( !neglChooseConfig(dpy.getPointer(), MemoryUtil.getAddress(attrib_list), MemoryUtil.getAddress0(configs_buffer), 1, MemoryUtil.getAddress(attrib_list, 3)) )
      throwEGLError("Failed to choose EGL config.");

    return new EGLConfig(dpy, configs_buffer.get(0));

    // -- Emulator workaround
    /*
    EGLConfig config = null;

View Full Code Here

    if ( platforms == null )
      throw new RuntimeException("No OpenCL platforms found.");

    final CLPlatform platform = platforms.get(0);

    final PointerBuffer ctxProps = BufferUtils.createPointerBuffer(3);
    ctxProps.put(CL_CONTEXT_PLATFORM).put(platform.getPointer()).put(0).flip();

    // Find devices with GL sharing support
    final Filter<CLDevice> glSharingFilter = new Filter<CLDevice>() {
      public boolean accept(final CLDevice device) {
        final CLDeviceCapabilities caps = CLCapabilities.getDeviceCapabilities(device);
View Full Code Here

    return buffer;
  }

  static PointerBuffer getBufferPointer(final int size) {
    PointerBuffer buffer = bufferPointerTL.get();

    if ( buffer.capacity() < size ) {
      int sizeNew = buffer.capacity() << 1;
      while ( sizeNew < size )
        sizeNew <<= 1;

      buffer = BufferUtils.createPointerBuffer(size);
      bufferPointerTL.set(buffer);
    } else
      buffer.clear();

    return buffer;
  }
View Full Code Here

        printPlatformInfo(platform, "CL_PLATFORM_NAME", CL_PLATFORM_NAME);
        printPlatformInfo(platform, "CL_PLATFORM_VENDOR", CL_PLATFORM_VENDOR);
        printPlatformInfo(platform, "CL_PLATFORM_EXTENSIONS", CL_PLATFORM_EXTENSIONS);
        System.out.println("");

        final PointerBuffer ctxProps = BufferUtils.createPointerBuffer(3);
        ctxProps.put(CL_CONTEXT_PLATFORM).put(platform.getPointer()).put(0).flip();

        final List<CLDevice> devices = platform.getDevices(CL_DEVICE_TYPE_ALL);
        for ( CLDevice device : devices ) {
          final CLDeviceCapabilities caps = CLCapabilities.getDeviceCapabilities(device);

          System.out.println("\n\tNEW DEVICE: " + device.getPointer());
          System.out.println(caps);
          System.out.println("\t-------------------------");

          System.out.println("\tCL_DEVICE_TYPE = " + device.getInfoInt(CL_DEVICE_TYPE));
          System.out.println("\tCL_DEVICE_VENDOR_ID = " + device.getInfoInt(CL_DEVICE_VENDOR_ID));
          System.out.println("\tCL_DEVICE_MAX_COMPUTE_UNITS = " + device.getInfoInt(CL_DEVICE_MAX_COMPUTE_UNITS));
          System.out.println("\tCL_DEVICE_MAX_WORK_ITEM_DIMENSIONS = " + device.getInfoInt(CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS));
          //CL10.clGetDeviceInfo(device, CL10.CL_DEVICE_MAX_WORK_ITEM_SIZES, info, size_ret);
          //System.out.println("\tCL_DEVICE_MAX_WORK_ITEM_SIZES = " + info.getInt(0));
          System.out.println("\tCL_DEVICE_MAX_WORK_GROUP_SIZE = " + device.getInfoSize(CL_DEVICE_MAX_WORK_GROUP_SIZE));
          System.out.println("\tCL_DEVICE_MAX_CLOCK_FREQUENCY = " + device.getInfoInt(CL_DEVICE_MAX_CLOCK_FREQUENCY));
          System.out.println("\tCL_DEVICE_ADDRESS_BITS = " + device.getInfoInt(CL_DEVICE_ADDRESS_BITS));
          System.out.println("\tCL_DEVICE_AVAILABLE = " + device.getInfoBoolean(CL_DEVICE_AVAILABLE));
          System.out.println("\tCL_DEVICE_COMPILER_AVAILABLE = " + device.getInfoBoolean(CL_DEVICE_COMPILER_AVAILABLE));

          printDeviceInfo(device, "CL_DEVICE_NAME", CL_DEVICE_NAME);
          printDeviceInfo(device, "CL_DEVICE_VENDOR", CL_DEVICE_VENDOR);
          printDeviceInfo(device, "CL_DRIVER_VERSION", CL_DRIVER_VERSION);
          printDeviceInfo(device, "CL_DEVICE_PROFILE", CL_DEVICE_PROFILE);
          printDeviceInfo(device, "CL_DEVICE_VERSION", CL_DEVICE_VERSION);
          printDeviceInfo(device, "CL_DEVICE_EXTENSIONS", CL_DEVICE_EXTENSIONS);
          if ( caps.OpenCL11 )
            printDeviceInfo(device, "CL_DEVICE_OPENCL_C_VERSION", CL_DEVICE_OPENCL_C_VERSION);

          CLContext context = clCreateContext(ctxProps, device, new CLContextCallback() {
            protected void handleMessage(final String errinfo, final ByteBuffer private_info) {
              System.out.println("IN CLContextCallback :: " + errinfo);
            }
          }, null);

          CLMem buffer = clCreateBuffer(context, CL_MEM_READ_ONLY, 128, null);

          if ( caps.OpenCL11 ) {
            clSetMemObjectDestructorCallback(buffer, new CLMemObjectDestructorCallback() {
              protected void handleMessage(final long memobj) {
                System.out.println("FIRST Buffer destructed: " + memobj);
              }
            });

            clSetMemObjectDestructorCallback(buffer, new CLMemObjectDestructorCallback() {
              protected void handleMessage(final long memobj) {
                System.out.println("SECOND Buffer destructed: " + memobj);
              }
            });
          }

          if ( caps.OpenCL11 ) {
            CLMem subbuffer = buffer.createSubBuffer(CL_MEM_READ_ONLY, CL_BUFFER_CREATE_TYPE_REGION, new CLBufferRegion(0, 64), null);

            clSetMemObjectDestructorCallback(subbuffer, new CLMemObjectDestructorCallback() {
              protected void handleMessage(final long memobj) {
                System.out.println("Sub Buffer destructed: " + memobj);
              }
            });
          }

          clRetainMemObject(buffer);

          if ( LWJGLUtil.getPlatform() != LWJGLUtil.PLATFORM_MACOSX ) {
            // TODO: Native kernels crash on MacOSX, disable this until we can debug properly.
            final long exec_caps = device.getInfoLong(CL_DEVICE_EXECUTION_CAPABILITIES);
            if ( (exec_caps & CL_EXEC_NATIVE_KERNEL) == CL_EXEC_NATIVE_KERNEL ) {
              System.out.println("-TRYING TO EXEC NATIVE KERNEL-");
              final CLCommandQueue queue = clCreateCommandQueue(context, device, 0, null);

              final PointerBuffer ev = BufferUtils.createPointerBuffer(1);

              clEnqueueNativeKernel(queue, new CLNativeKernel() {
                protected void execute(final ByteBuffer[] memobjs) {
                  System.out.println("\tmemobjs.length = " + memobjs.length);
                  for ( int k = 0; k < memobjs.length; k++ ) {
                    System.out.println("\tmemobjs[" + k + "].remaining() = " + memobjs[k].remaining());
                    for ( int l = memobjs[k].position(); l < memobjs[k].limit(); l++ ) {
                      memobjs[k].put(l, (byte)l);
                    }
                  }
                  System.out.println("\tNative kernel done.");
                }
              }, new CLMem[] { buffer }, new long[] { 128 }, null, ev);

              final CLEvent e = queue.getCLEvent(ev.get(0));

              clSetEventCallback(e, CL_COMPLETE, new CLEventCallback() {
                protected void handleMessage(final CLEvent event, final int event_command_exec_status) {
                  System.out.println("\t\tEvent callback status: " + getEventStatusName(event_command_exec_status));
                }
View Full Code Here

    boolean hasBFI_INT = false;
    CLProgram program;

    this.device = device;

    PointerBuffer properties = BufferUtils.createPointerBuffer(3);
    properties.put(CL10.CL_CONTEXT_PLATFORM).put(platform.getPointer()).put(0).flip();
    int err = 0;

    int deviceCU = device.getInfoInt(CL10.CL_DEVICE_MAX_COMPUTE_UNITS);
    long deviceWorkSize;
View Full Code Here

TOP

Related Classes of org.lwjgl.PointerBuffer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.