@Override public void releaseBufferForSharingNoEvent(CommandQueue queue) { Utils.assertSharingPossible(); long q = ((LwjglCommandQueue) queue).getQueue(); int ret = CL10GL.clEnqueueReleaseGLObjects(q, buffer, null, null); Utils.checkError(ret, "clEnqueueReleaseGLObjects"); }
@Override public void releaseImageForSharingNoEvent(CommandQueue queue) { Utils.assertSharingPossible(); long q = ((LwjglCommandQueue) queue).getQueue(); int ret = CL10GL.clEnqueueReleaseGLObjects(q, image, null, null); Utils.checkError(ret, "clEnqueueReleaseGLObjects"); }
@Override public Buffer bindVertexBuffer(VertexBuffer vb, MemoryAccess access) { Utils.assertSharingPossible(); int id = vb.getId(); if (id == -1) { throw new IllegalArgumentException("vertex buffer was not yet uploaded to the GPU or is CPU only"); } long flags = Utils.getMemoryAccessFlags(access); Utils.errorBuffer.rewind(); long mem = CL10GL.clCreateFromGLBuffer(context, flags, id, Utils.errorBuffer); Utils.checkError(Utils.errorBuffer, "clCreateFromGLBuffer"); return new LwjglBuffer(mem); }
@Override protected Image bindPureRenderBuffer(FrameBuffer.RenderBuffer buffer, MemoryAccess access) { Utils.assertSharingPossible(); int renderbuffer = buffer.getId(); if (renderbuffer == -1) { throw new IllegalArgumentException("renderbuffer was not yet uploaded to the GPU"); } long memFlags = Utils.getMemoryAccessFlags(access); Utils.errorBuffer.rewind(); long mem = CL10GL.clCreateFromGLRenderbuffer(context, memFlags, renderbuffer, Utils.errorBuffer); Utils.checkError(Utils.errorBuffer, "clCreateFromGLRenderbuffer"); return new LwjglImage(mem); }
@Override public Image bindImage(com.jme3.texture.Image image, Texture.Type textureType, int miplevel, MemoryAccess access) { Utils.assertSharingPossible(); int imageID = image.getId(); if (imageID == -1) { throw new IllegalArgumentException("image was not yet uploaded to the GPU"); } long memFlags = Utils.getMemoryAccessFlags(access); int textureTarget = convertTextureType(textureType); Utils.errorBuffer.rewind(); long mem = CL12GL.clCreateFromGLTexture(context, memFlags, textureTarget, miplevel, imageID, Utils.errorBuffer); Utils.checkError(Utils.errorBuffer, "clCreateFromGLTexture"); return new LwjglImage(mem); }
@Override public Event releaseImageForSharingAsync(CommandQueue queue) { Utils.assertSharingPossible(); Utils.pointerBuffers[0].rewind(); long q = ((LwjglCommandQueue) queue).getQueue(); int ret = CL10GL.clEnqueueReleaseGLObjects(q, image, null, Utils.pointerBuffers[0]); Utils.checkError(ret, "clEnqueueReleaseGLObjects"); long event = Utils.pointerBuffers[0].get(0); return new LwjglEvent(event); } @Override
@Override public Event releaseBufferForSharingAsync(CommandQueue queue) { Utils.assertSharingPossible(); Utils.pointerBuffers[0].rewind(); long q = ((LwjglCommandQueue) queue).getQueue(); int ret = CL10GL.clEnqueueReleaseGLObjects(q, buffer, null, Utils.pointerBuffers[0]); Utils.checkError(ret, "clEnqueueReleaseGLObjects"); long event = Utils.pointerBuffers[0].get(0); return new LwjglEvent(event); } @Override
@Override public void releaseImageForSharingNoEvent(CommandQueue queue) { Utils.assertSharingPossible(); long q = ((LwjglCommandQueue) queue).getQueue(); int ret = CL10GL.clEnqueueReleaseGLObjects(q, image, null, null); Utils.checkError(ret, "clEnqueueReleaseGLObjects"); }
@Override public void releaseBufferForSharingNoEvent(CommandQueue queue) { Utils.assertSharingPossible(); long q = ((LwjglCommandQueue) queue).getQueue(); int ret = CL10GL.clEnqueueReleaseGLObjects(q, buffer, null, null); Utils.checkError(ret, "clEnqueueReleaseGLObjects"); }
@Override protected Image bindPureRenderBuffer(FrameBuffer.RenderBuffer buffer, MemoryAccess access) { Utils.assertSharingPossible(); int renderbuffer = buffer.getId(); if (renderbuffer == -1) { throw new IllegalArgumentException("renderbuffer was not yet uploaded to the GPU"); } long memFlags = Utils.getMemoryAccessFlags(access); Utils.errorBuffer.rewind(); long mem = CL10GL.clCreateFromGLRenderbuffer(context, memFlags, renderbuffer, Utils.errorBuffer); Utils.checkError(Utils.errorBuffer, "clCreateFromGLRenderbuffer"); return new LwjglImage(mem); }
@Override public Buffer bindVertexBuffer(VertexBuffer vb, MemoryAccess access) { Utils.assertSharingPossible(); int id = vb.getId(); if (id == -1) { throw new IllegalArgumentException("vertex buffer was not yet uploaded to the GPU or is CPU only"); } long flags = Utils.getMemoryAccessFlags(access); Utils.errorBuffer.rewind(); long mem = CL10GL.clCreateFromGLBuffer(context, flags, id, Utils.errorBuffer); Utils.checkError(Utils.errorBuffer, "clCreateFromGLBuffer"); return new LwjglBuffer(mem); }
@Override public Image bindImage(com.jme3.texture.Image image, Texture.Type textureType, int miplevel, MemoryAccess access) { Utils.assertSharingPossible(); int imageID = image.getId(); if (imageID == -1) { throw new IllegalArgumentException("image was not yet uploaded to the GPU"); } long memFlags = Utils.getMemoryAccessFlags(access); int textureTarget = convertTextureType(textureType); Utils.errorBuffer.rewind(); long mem = CL12GL.clCreateFromGLTexture(context, memFlags, textureTarget, miplevel, imageID, Utils.errorBuffer); Utils.checkError(Utils.errorBuffer, "clCreateFromGLTexture"); return new LwjglImage(mem); }
@Override public Event releaseBufferForSharingAsync(CommandQueue queue) { Utils.assertSharingPossible(); Utils.pointerBuffers[0].rewind(); long q = ((LwjglCommandQueue) queue).getQueue(); int ret = CL10GL.clEnqueueReleaseGLObjects(q, buffer, null, Utils.pointerBuffers[0]); Utils.checkError(ret, "clEnqueueReleaseGLObjects"); long event = Utils.pointerBuffers[0].get(0); return new LwjglEvent(event); } @Override
@Override public Event releaseImageForSharingAsync(CommandQueue queue) { Utils.assertSharingPossible(); Utils.pointerBuffers[0].rewind(); long q = ((LwjglCommandQueue) queue).getQueue(); int ret = CL10GL.clEnqueueReleaseGLObjects(q, image, null, Utils.pointerBuffers[0]); Utils.checkError(ret, "clEnqueueReleaseGLObjects"); long event = Utils.pointerBuffers[0].get(0); return new LwjglEvent(event); } @Override