Example #1
0
		/// <summary>
		/// Creates the CL image from GL texture.  This can be a platfor specific operation.
		/// On some platforms, some of the parameters may be ignored.
		/// </summary>
		/// <returns>The CL image from GL texture.</returns>
		/// <param name="context">Context.</param>
		/// <param name="memFlags">Mem flags.</param>
		/// <param name="target">Target.</param>
		/// <param name="mipLevel">Mip level.</param>
		/// <param name="texturePointer">Texture pointer.</param>
		/// <param name="error">Error.</param>
		public static IMem CreateCLImageFromGLTexture(Context context, MemFlags memFlags, TextureTarget target, int mipLevel, IntPtr texturePointer, out ErrorCode error){
			#if UNITY_STANDALONE_OSX || UNITY_IPHONE
			//here, we use a function from apple (gcl) headers
			var ret = new Mem(gcl_gl_create_image_from_texture(target,new IntPtr(mipLevel),texturePointer));
			error = ErrorCode.Success;
			return ret;
			#endif
			#if UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_ANDROID
			//here we use the GL sharing extensions.
			return new Mem(clCreateFromGLTexture2D((context as IHandleData).Handle,memFlags,target,new IntPtr(mipLevel),texturePointer,out error));
			#endif
		}
 public static IMemoryObject CreateImage2D(ContextHandle context,
                                 MemFlags flags,
                                 ImageFormat imageFormat,
                                 IntPtr imageWidth,
                                 IntPtr imageHeight,
                                 IntPtr imageRowPitch,
                                 IntPtr hostPtr,
                                 out OpenCLErrorCode errorcodeRet)
 {
     using (var imageFormatPtr = imageFormat.Pin())
         return new MemoryObject(clCreateImage2D((context as IHandleData).Handle, flags, imageFormatPtr, imageWidth, imageHeight, imageRowPitch, hostPtr, out errorcodeRet));
 }
Example #3
0
 internal extern static unsafe IntPtr CreateBuffer(IntPtr context, MemFlags flags, IntPtr size, IntPtr host_ptr, [OutAttribute] OpenTK.Compute.CL10.ErrorCode* errcode_ret);
 public static IMem <T> CreateBuffer <T>(Context context, MemFlags flags, int length, out ErrorCode errcodeRet)
     where T : struct
 {
     return(new Mem <T>(CreateBuffer(context, flags, (IntPtr)(TypeSize <T> .SizeInt * length), null, out errcodeRet)));
 }
 public static IMem CreateBuffer(Context context, MemFlags flags, IntPtr size, out ErrorCode errcodeRet)
 {
     return(CreateBuffer(context, flags, size, null, out errcodeRet));
 }
Example #6
0
 internal extern static unsafe IntPtr CreateBuffer(IntPtr context, MemFlags flags, IntPtr size, IntPtr host_ptr, [OutAttribute] osuTK.Compute.CL10.ErrorCode *errcode_ret);
Example #7
0
 /// <summary>
 /// Convenience function. Checks if a context supports a specific image format
 /// </summary>
 /// <param name="flags"></param>
 /// <param name="type"></param>
 /// <param name="channelOrder"></param>
 /// <param name="channelType"></param>
 /// <returns>true if the image format is supported, false otherwise</returns>
 public bool SupportsImageFormat(MemFlags flags, MemObjectType type, ChannelOrder channelOrder, ChannelType channelType)
 {
     ImageFormat[] imageFormats = GetSupportedImageFormats(flags, type);
     foreach (ImageFormat imageFormat in imageFormats)
     {
         if (imageFormat.ChannelOrder == channelOrder && imageFormat.ChannelType == channelType)
             return true;
     }
     return false;
 }
Example #8
0
 public Image CreateImage2D(MemFlags flags, ImageFormat imageFormat, long imageWidth, long imageHeight, long imageRowPitch, IntPtr pHost)
 {
     return CreateImage2D(flags, imageFormat, (IntPtr)imageWidth, (IntPtr)imageHeight, (IntPtr)imageRowPitch, pHost);
 }
Example #9
0
        public Mem CreateBuffer( MemFlags flags, long size, void* pHost )
        {
            IntPtr memID;
            ErrorCode result;

            memID = (IntPtr)OpenCL.CreateBuffer( ContextID, (ulong)flags, new IntPtr(size), pHost, out result );
            if( result!=ErrorCode.SUCCESS )
                throw new OpenCLException( "CreateBuffer failed with error code "+result, result);
            return new Mem( this, memID );
        }
Example #10
0
 public Buffer CreateBuffer(MemFlags flags, int size)
 {
     return(Buffer.Create(this, flags, size));
 }
Example #11
0
 public static IntPtr CreateSubBuffer(IntPtr memobj, MemFlags flags, BufferRegion buffer_create_info, out ErrorCode errcode_ret)
 {
     return(OpenCLAPI.clCreateSubBuffer(memobj, (cl_mem_flags)flags, BufferCreateType.REGION, &buffer_create_info, out errcode_ret));
 }
Example #12
0
 public static IMemoryObject CreateBuffer(ContextHandle context, MemFlags flags, IntPtr size, object hostData, out OpenCLErrorCode errcodeRet)
 {
     using (var hostPtr = hostData.Pin())
         return CreateBuffer(context, flags, size, hostPtr, out errcodeRet);
 }
Example #13
0
 private static extern OpenCLErrorCode clGetSupportedImageFormats(IntPtr context,
                                                            MemFlags flags,
                                                            MemObjectType imageType,
                                                            uint numEntries,
                                                            [Out] [MarshalAs(UnmanagedType.LPArray)] ImageFormat[] imageFormats,
                                                            out uint numImageFormats);
Example #14
0
 public CLBuffer <T> CreateBuffer <T>(MemFlags memFlags, T[] data) where T : struct
 {
     return(new CLBuffer <T>(ContextId, CommandQueueId, memFlags, data));
 }
Example #15
0
 internal extern static unsafe IntPtr CreateImage3D(IntPtr context, MemFlags flags, ImageFormat *image_format, IntPtr image_width, IntPtr image_height, IntPtr image_depth, IntPtr image_row_pitch, IntPtr image_slice_pitch, IntPtr host_ptr, [OutAttribute] int *errcode_ret);
Example #16
0
 public static IntPtr CreateSubBuffer(IntPtr memobj, MemFlags flags, BufferRegion buffer_create_info, out ErrorCode errcode_ret)
 {
     return OpenCLAPI.clCreateSubBuffer(memobj, (cl_mem_flags)flags, BufferCreateType.REGION, &buffer_create_info, out errcode_ret);
 }
Example #17
0
 public Mem CreateBuffer(MemFlags flags, long size)
 {
     return CreateBuffer(flags, size, IntPtr.Zero);
 }
Example #18
0
 public Image2D CreateImage2D(MemFlags flags, ImageFormat format, int width, int height)
 {
     return(Image2D.Create(this, flags, format, width, height));
 }
Example #19
0
        public Mem CreateFromGLTexture3D(MemFlags flags, int target, int mipLevel, int texture)
        {
            IntPtr memID;
            ErrorCode result;

            memID = OpenCL.CreateFromGLTexture3D(ContextID, (ulong)flags, target, mipLevel, (uint)texture, out result);
            if (result != ErrorCode.SUCCESS)
                throw new OpenCLException("CreateFromGLTexture3D failed with error code " + result, result);
            return new Mem(this, memID);
        }
Example #20
0
 private static extern IntPtr clCreateFromGLTexture2D(IntPtr context, MemFlags memflags, TextureTarget target, IntPtr mip_level, IntPtr texture, out ErrorCode error);
Example #21
0
        public Image CreateImage3D(MemFlags flags, ImageFormat imageFormat, IntPtr imageWidth, IntPtr imageHeight, IntPtr imageDepth, IntPtr imageRowPitch, IntPtr imageSlicePitch, IntPtr pHost)
        {
            IntPtr memID;
            ErrorCode result;

            memID = (IntPtr)OpenCL.CreateImage3D(ContextID, (ulong)flags, imageFormat, imageWidth, imageHeight, imageDepth, imageRowPitch, imageSlicePitch, pHost.ToPointer(), out result);
            if (result != ErrorCode.SUCCESS)
                throw new OpenCLException("CreateImage3D failed with error code " + result, result);
            return new Image(this, memID);
        }
Example #22
0
 public static extern Error clGetSupportedImageFormats(OpenCLContext context, MemFlags flags, MemObjectType image_type, Int32 num_entries, [Out] ImageFormat[] image_formats, Int32 num_image_formats);
Example #23
0
		private static extern IntPtr clCreateFromGLTexture3D(IntPtr context, MemFlags memflags, TextureTarget target, IntPtr mip_level, IntPtr texture, out ErrorCode error);
Example #24
0
 public static OpenCLMem clCreateBuffer(OpenCLContext context, MemFlags flags, IntPtr size, [In] Byte[] bytes, out Error error)
 {
     error = default(Error);
     Console.WriteLine("Calling OpenCLMem clCreateBuffer(OpenCLContext context, MemFlags flags, IntPtr size, [In] Byte[] bytes, out Error error)");
     return default(OpenCLMem);
 }
Example #25
0
 public void SetArgumentValue <T>(int argumentIndex, T *item, MemFlags flags, long count)
     where T : unmanaged
 {
     SetArgumentValue(argumentIndex, item, flags, sizeof(T) * count);
 }
Example #26
0
 public static OpenCLMem clCreateBuffer(OpenCLContext context, MemFlags flags, IntPtr size, IntPtr host_ptr, Error error)
 {
     Console.WriteLine("Calling OpenCLMem clCreateBuffer(OpenCLContext context, MemFlags flags, IntPtr size, IntPtr host_ptr, Error error)");
     return default(OpenCLMem);
 }
Example #27
0
 public static IMem <T> CreateBuffer <T>(Context context, MemFlags flags, T[] hostData, out ErrorCode errcodeRet)
     where T : struct
 {
     return(new Mem <T>(CreateBuffer(context, flags, (IntPtr)(TypeSize <T> .SizeInt * hostData.Length), hostData, out errcodeRet)));
 }
Example #28
0
 public static Error clGetSupportedImageFormats(OpenCLContext context, MemFlags flags, MemObjectType image_type, Int32 num_entries, [Out] ImageFormat[] image_formats, Int32 num_image_formats)
 {
     Console.WriteLine("Calling Error clGetSupportedImageFormats(OpenCLContext context, MemFlags flags, MemObjectType image_type, Int32 num_entries, [Out] ImageFormat[] image_formats, Int32 num_image_formats)");
     return default(Error);
 }
Example #29
0
 internal extern static unsafe int GetSupportedImageFormats(IntPtr context, MemFlags flags, MemObjectType image_type, uint num_entries, ImageFormat* image_formats, uint* num_image_formats);
Example #30
0
 public static extern OpenCLMem clCreateBuffer(OpenCLContext context, MemFlags flags, IntPtr size, [In] Byte[] bytes, out Error error);
Example #31
0
 internal extern static unsafe IntPtr CreateImage3D(IntPtr context, MemFlags flags, ImageFormat* image_format, IntPtr image_width, IntPtr image_height, IntPtr image_depth, IntPtr image_row_pitch, IntPtr image_slice_pitch, IntPtr host_ptr, [OutAttribute] int* errcode_ret);
Example #32
0
 public static extern OpenCLMem clCreateBuffer(OpenCLContext context, MemFlags flags, IntPtr size, IntPtr host_ptr, Error error);
Example #33
0
        public static ImageFormat[] GetSupportedImageFormats(Context context, MemFlags flags, MemObjectType imageType, out ErrorCode error)
        {
            uint imageFormatCount;
            error = GetSupportedImageFormats(context, flags, imageType, 0, null, out imageFormatCount);
            if (error != ErrorCode.Success)
                return new ImageFormat[0];

            var imageFormats = new ImageFormat[imageFormatCount];
            error = GetSupportedImageFormats(context, flags, imageType, imageFormatCount, imageFormats, out imageFormatCount);
            if (error != ErrorCode.Success)
                return new ImageFormat[0];
            
            return imageFormats;
        }
Example #34
0
 public static extern OpenCLMem clCreateImage3D(OpenCLContext context, MemFlags flags, ref ImageFormat image_format, IntPtr image_width, IntPtr image_height, IntPtr image_depth, IntPtr image_row_pitch, IntPtr image_slice_pitch, IntPtr host_ptr, Error error);
Example #35
0
 public Mem CreateBuffer(MemFlags flags, long size, IntPtr pHost)
 {
     return CreateBuffer(flags, size, pHost.ToPointer());
 }
Example #36
0
 public static OpenCLMem clCreateImage2D(OpenCLContext context, MemFlags flags, ref ImageFormat image_format, IntPtr image_width, IntPtr image_height, IntPtr image_row_pitch, IntPtr host_ptr, Error error)
 {
     Console.WriteLine("Calling OpenCLMem clCreateImage2D(OpenCLContext context, MemFlags flags, ref ImageFormat image_format, IntPtr image_width, IntPtr image_height, IntPtr image_row_pitch, IntPtr host_ptr, Error error)");
     return default(OpenCLMem);
 }
Example #37
0
        public Mem CreateFromGLRenderbuffer(MemFlags flags, IntPtr renderbuffer)
        {
            IntPtr memID;
            ErrorCode result;

            memID = OpenCL.CreateFromGLRenderbuffer(ContextID, (ulong)flags, (uint)renderbuffer, out result);
            if (result != ErrorCode.SUCCESS)
                throw new OpenCLException("CreateFromGLTexture3D failed with error code " + result, result);
            return new Mem(this, memID);
        }
Example #38
0
 internal static extern IntPtr clCreateBuffer(IntPtr context, MemFlags flags, IntPtr size, IntPtr hostPtr, [Out][MarshalAs(UnmanagedType.I4)] out ErrorCode errcodeRet);
Example #39
0
 public Image CreateImage2D(MemFlags flags, ImageFormat imageFormat, long imageWidth, long imageHeight)
 {
     return CreateImage2D(flags, imageFormat, (IntPtr)imageWidth, (IntPtr)imageHeight, IntPtr.Zero, IntPtr.Zero);
 }
Example #40
0
 internal static extern IntPtr clCreateImage3D(IntPtr context, MemFlags flags, IntPtr imageFormat, IntPtr imageWidth, IntPtr imageHeight, IntPtr imageDepth, IntPtr imageRowPitch, IntPtr imageSlicePitch, IntPtr hostPtr, out ErrorCode errcodeRet);
Example #41
0
 public Image CreateImage3D(MemFlags flags, ImageFormat imageFormat, int imageWidth, int imageHeight, int imageDepth, int imageRowPitch, int imageSlicePitch, IntPtr pHost)
 {
     return CreateImage3D(flags, imageFormat, (IntPtr)imageWidth, (IntPtr)imageHeight, (IntPtr)imageDepth, (IntPtr)imageRowPitch, (IntPtr)imageSlicePitch, pHost);
 }
Example #42
0
        /// <summary>
        ///     OpenCL 1.1
        /// </summary>
        /// <param name="buffer"></param>
        /// <param name="flags"></param>
        /// <param name="buffer_create_info"></param>
        /// <param name="errcode_ret"></param>
        /// <returns></returns>
        public Mem CreateSubBuffer(Mem buffer, MemFlags flags, BufferRegion buffer_create_info, out ErrorCode errcode_ret)
        {
            var memID = OpenCL.CreateSubBuffer(buffer.MemID, flags, buffer_create_info, out errcode_ret);

            return(new Mem(buffer.Context, memID));
        }
Example #43
0
        /// <summary>
        /// Query which ImageFormats are supported by this context
        /// </summary>
        /// <param name="flags"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public ImageFormat[] GetSupportedImageFormats(MemFlags flags, MemObjectType type)
        {
            uint numImageFormats;
            ImageFormat[] imageFormats;
            ErrorCode result;

            result = OpenCL.GetSupportedImageFormats(ContextID, (ulong)flags, (uint)type, (uint)0, null, out numImageFormats);
            if( result!=ErrorCode.SUCCESS )
                throw new OpenCLException("GetSupportedImageFormats failed with error code " + result, result);

            imageFormats = new ImageFormat[numImageFormats];

            result = OpenCL.GetSupportedImageFormats(ContextID, (ulong)flags, (uint)type, numImageFormats, imageFormats, out numImageFormats);
            if (result != ErrorCode.SUCCESS)
                throw new OpenCLException("GetSupportedImageFormats failed with error code " + result, result);

            return imageFormats;
        }
Example #44
0
 private KernelImage(int index, MemFlags flags, int width, int height, SystemGDI.PixelFormat format)
     : this(index, flags, width, height, format.ToGPU())
 {
 }
Example #45
0
 public KernelImage(int index, MemFlags flags, byte[] bytes, int width, int height, SystemGDI.PixelFormat pixelFormat)
     : this(index, flags, bytes, width, height, pixelFormat.ToGPU())
 {
 }
Example #46
0
 public static extern Mem CreateBuffer(IntPtr context,
                                       MemFlags flags,
                                       long size,
                                       IntPtr hostPtr,
                                       [Out][MarshalAs(UnmanagedType.I4)] out ErrorCode errcodeRet);
Example #47
0
 /// <summary>
 /// OpenCL 1.1
 /// </summary>
 /// <param name="buffer"></param>
 /// <param name="flags"></param>
 /// <param name="buffer_create_info"></param>
 /// <param name="errcode_ret"></param>
 /// <returns></returns>
 public Mem CreateSubBuffer(Mem buffer, MemFlags flags, BufferRegion buffer_create_info, out ErrorCode errcode_ret)
 {
     IntPtr memID = OpenCL.CreateSubBuffer(buffer.MemID, flags, buffer_create_info, out errcode_ret);
     return new Mem(buffer.Context, memID);
 }
Example #48
0
 internal extern static unsafe int GetSupportedImageFormats(IntPtr context, MemFlags flags, MemObjectType image_type, uint num_entries, ImageFormat *image_formats, uint *num_image_formats);