public static void FillRectangle(CLBuffer trg, IBRectangle trgSize, PixelData color, IBRectangle rect) { if (fillRect == null) { fillRect = CL.GetKernel("fillRect"); } int[] _trgSize = new int[] { (int)trgSize.Width, (int)trgSize.Height }; int[] _offset = new int[] { (int)rect.OffsetX, (int)rect.OffsetY }; int[] _size = new int[] { (int)rect.Width, (int)rect.Height }; float[] _color = new float[] { color.b / 255.0f, color.g / 255.0f, color.r / 255.0f, color.a / 255.0f }; CLBuffer __trgSize = CL.GenBuffer(_trgSize); CLBuffer __offset = CL.GenBuffer(_offset); CLBuffer __size = CL.GenBuffer(_size); CLBuffer __color = CL.GenBuffer(_color); fillRect.SetArgument(0, trg.InternalPointer); fillRect.SetArgument(1, __trgSize); fillRect.SetArgument(2, __color); fillRect.SetArgument(3, __offset); fillRect.SetArgument(4, __size); CL.EnqueueRange(fillRect, new MultiDimension(1080), new MultiDimension(1)); }
public static void Test() { if (test == null) { test = CL.GetKernel("myKernelFunction"); } const int BUFFERSIZE = 10; CLBuffer buf = CL.GenBuffer(new float[BUFFERSIZE]); test.SetArgument(0, buf); CL.EnqueueRange(test, new MultiDimension(BUFFERSIZE), new MultiDimension(1)); float[] readBack = new float[BUFFERSIZE]; CL.ReadBuffer(buf, readBack); foreach (var v in readBack) { Console.WriteLine(v); } }