示例#1
0
        public void OnResize(int width, int height)
        {
            _width  = width;
            _height = height;
            GL.Viewport(0, 0, width, height);
            GL.BindBuffer(BufferTarget.PixelUnpackBuffer, _pub);
            GL.BufferData(BufferTarget.PixelUnpackBuffer, new IntPtr(width * height * sizeof(float) * 4), IntPtr.Zero, BufferUsageHint.DynamicCopy);
            if (_openCl != null)
            {
                _openCl.Dispose();
            }
            _openCl = ComputeBuffer <Vector4> .CreateFromGLBuffer <Vector4>(_queue.Context, ComputeMemoryFlags.WriteOnly, _pub);

            GL.BindTexture(TextureTarget.Texture2D, _texture);
            GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, width, height, 0, PixelFormat.Rgba, PixelType.Float, IntPtr.Zero);
            const int glLinear = 9729;

            GL.TexParameterI(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, new[] { glLinear });
            GL.TexParameterI(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, new[] { glLinear });
        }