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)); }