public static DeviceImage CreateFromTexture2D(UInt32 texture, Int32 mipLevel, DeviceBufferAccess access, Context context) { CLError error = CLError.None; CLMem mem = ManOCL.Internal.OpenCL.OpenGL.OpenCLGLDriver.clCreateFromGLTexture2D(context.CLContext, GetMemFlags(access), 3553 /* GL_TEXTURE_2D */, mipLevel, texture, ref error); OpenCLError.Validate(error); DeviceImage result = new DeviceImage(new Mem { Value = mem.Value }); return result; }
internal static CLMemFlags GetMemFlags(DeviceBufferAccess access) { if (access == DeviceBufferAccess.ReadWrite) { return CLMemFlags.ReadWrite; } else if (access == DeviceBufferAccess.Read) { return CLMemFlags.ReadOnly; } else if (access == DeviceBufferAccess.Write) { return CLMemFlags.WriteOnly; } else { throw new ArgumentException(); } }
internal static CLMemFlags GetMemFlags(DeviceBufferAccess access) { if (access == DeviceBufferAccess.ReadWrite) { return(CLMemFlags.ReadWrite); } else if (access == DeviceBufferAccess.Read) { return(CLMemFlags.ReadOnly); } else if (access == DeviceBufferAccess.Write) { return(CLMemFlags.WriteOnly); } else { throw new ArgumentException(); } }
public static DeviceGlobalMemory CreateFromStructure <T>(T data, DeviceBufferAccess access, Context context) where T : struct { return(CreateInternal(data, new SizeT(Marshal.SizeOf(data.GetType())), GetMemFlags(access) | CLMemFlags.CopyHostPtr, context, access)); }
public static DeviceGlobalMemory CreateFromStructure <T>(T data, DeviceBufferAccess access) where T : struct { return(CreateFromStructure <T>(data, access, Context.Default)); }
public static DeviceGlobalMemory CreateFromArray(Array data, DeviceBufferAccess access, Context context) { return(CreateInternal(data, new SizeT(Marshal.SizeOf(data.GetType().GetElementType()) * data.Length), GetMemFlags(access) | CLMemFlags.CopyHostPtr, context, access)); }
public static DeviceGlobalMemory CreateFromArray(Array data, DeviceBufferAccess access) { return(CreateFromArray(data, access, Context.Default)); }
public static DeviceGlobalMemory CreateFromSize(Int64 sizeInBytes, DeviceBufferAccess access, Context context) { return(CreateInternal <Array>(null, new SizeT(sizeInBytes), GetMemFlags(access), context, access)); }
public static DeviceImage CreateFromTexture2D(UInt32 texture, DeviceBufferAccess access) { return CreateFromTexture2D(texture, 0, access, Context.Default); }
public static HostMemory Create(Array data, DeviceBufferAccess access) { return(Create(Context.Default, data, access)); }
internal void InitializeInternal(CLMem openclMem, SizeT sizeInternal, Context context, DeviceBufferAccess access) { this.Access = access; this.Context = context; this.openCLMem = openclMem; this.openCLMemSize = sizeInternal; }
public static DeviceImage CreateFromTexture2D(UInt32 texture, DeviceBufferAccess access) { return(CreateFromTexture2D(texture, 0, access, Context.Default)); }
public static DeviceImage CreateFromTexture2D(UInt32 texture, Int32 mipLevel, DeviceBufferAccess access, Context context) { CLError error = CLError.None; CLMem mem = ManOCL.Internal.OpenCL.OpenGL.OpenCLGLDriver.clCreateFromGLTexture2D(context.CLContext, GetMemFlags(access), 3553 /* GL_TEXTURE_2D */, mipLevel, texture, ref error); OpenCLError.Validate(error); DeviceImage result = new DeviceImage(new Mem { Value = mem.Value }); return(result); }
public static HostMemory Create <T>(Context context, T data, DeviceBufferAccess access) where T : struct { return(CreateInternal(data, new SizeT(Marshal.SizeOf(data.GetType())), GetMemFlags(access) | CLMemFlags.AllocHostPtr | CLMemFlags.CopyHostPtr, context, access)); }
public static HostMemory Create <T>(T data, DeviceBufferAccess access) where T : struct { return(Create <T>(Context.Default, data, access)); }
public static DeviceGlobalMemory CreateFromBitmap(Bitmap bmp, Context context, DeviceBufferAccess access) { BitmapData bmpBits = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb); try { return(CreateInternalFromHostPtr(new SizeT(bmpBits.Stride * bmpBits.Height), CLMemFlags.CopyHostPtr, context, access, bmpBits.Scan0)); } finally { bmp.UnlockBits(bmpBits); } }
internal void InitializeInternal(CLMem openclMem, SizeT sizeInternal, Context context, DeviceBufferAccess access) { this.Access = access; this.Context = context; this.openCLMem = openclMem; this.openCLMemSize = sizeInternal; }
public static HostMemory Create(Context context, Int32 sizeInBytes, DeviceBufferAccess access) { return(CreateInternal <Array>(null, new SizeT(sizeInBytes), GetMemFlags(access) | CLMemFlags.AllocHostPtr, context, access)); }