Example #1
0
        public CVMetalTexture?TextureFromImage(CVImageBuffer imageBuffer, MTLPixelFormat format, nint width, nint height, nint planeIndex, out CVReturn errorCode)
        {
            if (imageBuffer is null)
            {
                throw new ArgumentNullException(nameof(imageBuffer));
            }

            IntPtr texture;

            errorCode = CVMetalTextureCacheCreateTextureFromImage(
                allocator:    IntPtr.Zero,
                textureCache: Handle,                 /* textureCache dict, one day we might add it */
                sourceImage:  imageBuffer.Handle,
                textureAttr:  IntPtr.Zero,
                format:       (nuint)(ulong)format,
                width:        width,
                height:       height,
                planeIndex:   planeIndex,
                textureOut:   out texture);
            if (errorCode != 0)
            {
                return(null);
            }
            return(new CVMetalTexture(texture, true));
        }
        public CVOpenGLESTexture TextureFromImage(CVImageBuffer imageBuffer, bool isTexture2d, OpenTK.Graphics.ES20.All internalFormat, int width, int height, OpenTK.Graphics.ES20.All pixelFormat, OpenTK.Graphics.ES20.DataType pixelType, int planeIndex, out CVReturn errorCode)
        {
            if (imageBuffer == null)
            {
                throw new ArgumentNullException("imageBuffer");
            }

            int    target = isTexture2d ? 0x0DE1 /* GL_TEXTURE_2D */ : 0x8D41 /* GL_RENDERBUFFER */;
            IntPtr texture;

            errorCode = CVOpenGLESTextureCacheCreateTextureFromImage(
                IntPtr.Zero,
                handle,                 /* textureCache dict, one day we might add it */
                imageBuffer.Handle,
                IntPtr.Zero,
                target,
                internalFormat, width, height, pixelFormat,
                pixelType, (IntPtr)planeIndex, out texture);
            if (errorCode != 0)
            {
                return(null);
            }
            return(new CVOpenGLESTexture(texture));
        }
 public CVOpenGLESTexture TextureFromImage(CVImageBuffer imageBuffer, bool isTexture2d, OpenTK.Graphics.ES30.All internalFormat, int width, int height, OpenTK.Graphics.ES30.All pixelFormat, OpenTK.Graphics.ES30.DataType pixelType, int planeIndex, out CVReturn errorCode)
 {
     return(TextureFromImage(imageBuffer, isTexture2d, (OpenTK.Graphics.ES20.All)internalFormat, width, height, (OpenTK.Graphics.ES20.All)pixelFormat, (OpenTK.Graphics.ES20.DataType)pixelType, planeIndex, out errorCode));
 }