SkiaSharp Possible 3D APIs that may be used by Ganesh. Use the Dawn (WebGPU) 3D backend. Use the Direct3D 3D backend. Use the Metal 3D backend. (not yet supported) Use the OpenGL 3D backend. The backend is not supported on this platform. Use the Vulkan 3D backend. (not yet supported) Wrap an existing render target created by the client in the 3D API. object wrapping it. We require the client to explicitly provide information about the target, such as width, height, and pixel configuration, rather than querying the 3D API for these values. We expect these properties to be immutable even if the 3D API doesn't require this (eg: OpenGL). ]]> The backend to use. The description of the backend render target. Creates a new with the properties from the specified description. The width of the render target in pixels. The height of the render target in pixels. The Direct3D texture resource information. Creates a new Direct3D with the specified properties and texture. The width of the render target in pixels. The height of the render target in pixels. The Metal texture information. Creates a new Metal with the specified properties and texture. The width of the render target in pixels. The height of the render target in pixels. The Vulkan image information. Creates a new Vulkan with the specified properties and image. The width of the render target in pixels. The height of the render target in pixels. The number of samples per pixel. The Vulkan image information. Creates a new Vulkan with the specified properties and image. The width of the render target. The height of the render target. The number of samples per pixel. The number of bits of stencil per pixel. The OpenGL framebuffer information. Creates a new OpenGL with the specified properties and framebuffer. Gets the backend for this render target. One of the enumeration values that specifies the backend for this render target. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. Returns the framebuffer info that this object wraps. Returns the framebuffer info, if this object wraps an OpenGL framebuffer, otherwise an empty info instance. The framebuffer info, if this object wraps an OpenGL framebuffer. Returns the framebuffer info that this object wraps. if this object wraps an OpenGL framebuffer; otherwise, . Gets the height in pixels. The height in pixels. Gets a value indicating whether or not the was initialized. if the was initialized; otherwise, . Gets a rectangle with the current width and height. The rectangle with the current width and height. Gets the number of samples per pixel. The number of samples per pixel. This is used to influence decisions about applying other forms of anti-aliasing. Gets the current size of the 3D API object. The current size of the 3D API object. Gets the number of bits of stencil per-pixel. The number of bits of stencil per pixel. Gets the width in pixels. The width in pixels. Wrap an existing render target created by the client in the 3D API with an underlying GRRenderTarget object. Gets or sets the color format. One of the enumeration values that specifies the color format. The to compare with the current instance. Determines whether the specified is equal to the current instance. if the specified object is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is equal to the current instance; otherwise, . Returns the hash code for this instance. A 32-bit signed integer hash code. Gets or sets the height in pixels. The height in pixels. The first to compare. The second to compare. Determines whether two specified objects have the same value. if the value of is the same as the value of ; otherwise, . The first to compare. The second to compare. Determines whether two specified objects have different values. if the value of is different from the value of ; otherwise, . Gets or sets the pixel origin. One of the enumeration values that specifies the pixel origin. Gets a rectangle with the current width and height. The rectangle with the current width and height. Gets or sets the handle to the 3D API object. The handle to the 3D API object. When using OpenGL, it is the FBO ID. Gets or sets the number of samples per pixel. The number of samples per pixel. This is used to influence decisions about applying other forms of anti-aliasing. Gets the current size of the 3D API object. The current size of the 3D API object. Gets or sets the number of bits of stencil per pixel. The number of bits of stencil per pixel. Gets or sets the width in pixels. The width in pixels. Various flags for the method. Reset all the context state for any backend. Reset nothing. Wrap an existing texture created by the client in the 3D API. object wrapping it. We require the client to explicitly provide information about the target, such as width, height, and pixel configuration, rather than querying the 3D API for these values. We expect these properties to be immutable even if the 3D API doesn't require this (eg: OpenGL). ]]> The description of the backend texture. Creates a new with the properties from the specified description. The description of the backend texture. Creates a new with the properties from the specified description. The width of the texture in pixels. The height of the texture in pixels. The Direct3D texture resource information. Creates a new Direct3D with the specified properties and texture. The width of the texture in pixels. The height of the texture in pixels. The Vulkan image information. Creates a new Vulkan with the specified properties and image. The width of the render target. The height of the render target. if the texture is mipmapped; otherwise, . The OpenGL texture information. Creates a new OpenGL with the specified properties and texture. The width of the texture in pixels. The height of the texture in pixels. if the texture is mipmapped; otherwise, . The Metal texture information. Creates a new Metal with the specified properties and texture. Gets the backend for this texture. One of the enumeration values that specifies the backend for this texture. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. Returns the texture info that this object wraps. Returns the texture info, if this object wraps an OpenGL texture, otherwise an empty info instance. The texture info, if this object wraps an OpenGL texture. Returns the texture info that this object wraps. if this object wraps an OpenGL texture; otherwise, . Gets a value indicating whether this texture is mipmapped. if this texture is mipmapped; otherwise, . Gets the height in pixels. The height in pixels. Gets a value indicating whether or not the was initialized. if the was initialized; otherwise, . Gets a rectangle with the current width and height. The rectangle with the current width and height. Gets the current size of the 3D API object. The current size of the 3D API object. Gets the width in pixels. The width in pixels. Wrap an existing texture created by the client in the 3D API with an underlying GRTexture object. Gets or sets the color format. One of the enumeration values that specifies the color format. The to compare with the current instance. Determines whether the specified is equal to the current instance. if the specified object is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is equal to the current instance; otherwise, . Gets or sets additional options about the texture. A bitwise combination of the enumeration values that specify additional options about the texture. Returns the hash code for this instance. A 32-bit signed integer hash code. Gets or sets the height in pixels. The height in pixels. The first to compare. The second to compare. Determines whether two specified objects have the same value. if the value of is the same as the value of ; otherwise, . The first to compare. The second to compare. Determines whether two specified objects have different values. if the value of is different from the value of ; otherwise, . Gets or sets the pixel origin. One of the enumeration values that specifies the pixel origin. Gets a rectangle with the current width and height. A rectangle with origin at (0, 0) and the current width and height. Gets or sets the number of samples per pixel. The number of samples per pixel. If the render target flag is set and sample count is greater than 0, then an MSAA buffer that resolves to the texture will be created. Gets the current size of the texture. The size with the current width and height. Gets or sets the handle to the 3D API object. The handle to the 3D API object. When using OpenGL, it is the Texture ID. Gets or sets the width in pixels. The width in pixels. Additional options for a backend texture. No flags enabled. Indicates that the texture is also a render target. Represents an underlying backend 3D API context. Use true to indicate that the underlying 3D context is not yet lost and the will cleanup all allocated resources before returning. Using false will ensure that the destructors of the and any of its created resource objects will not make backend 3D API calls. Abandons all GPU resources and assumes the underlying backend 3D API context is no longer usable. After returning it will assume that the underlying context may no longer be valid. Gets the backend that this context is wrapping. The backend type. The backend to use. Creates a for a backend context using the default interface for the specified backend. Returns the new if one was created, otherwise . The backend to use. The backend interface to use. Creates a for a backend context. Returns the new if one was created, otherwise . The backend to use. The backend interface to use. Creates a for a backend context. Returns the new if one was created, otherwise . The Direct3D backend context to use. Creates a for a Direct3D context. Returns the new if one was created, otherwise . The Direct3D backend context to use. The context-creation options. Creates a for a Direct3D context. Returns the new if one was created, otherwise . Creates a for an OpenGL context. Returns the new if one was created, otherwise . The context-creation options. Creates a for an OpenGL context. Returns the new if one was created, otherwise . The OpenGL interface to use. Creates a for an OpenGL context. Returns the new if one was created, otherwise . The OpenGL interface to use. The context-creation options. Creates a for an OpenGL context. Returns the new if one was created, otherwise . The Metal backend context to use. Creates a for a Metal context. Returns the new if one was created, otherwise . The Metal backend context to use. The context-creation options. Creates a for a Metal context. Returns the new if one was created, otherwise . The Vulkan backend context to use. Creates a for a Vulkan context. Returns the new if one was created, otherwise . The Vulkan backend context to use. The context-creation options. Creates a for a Vulkan context. Returns the new if one was created, otherwise . to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Releases the native resources used by the . The memory dump object to populate with statistics. Dumps memory statistics for the context to the specified dump object. Call to ensure all drawing to the context has been issued to the underlying 3D API. to submit the work to the GPU after flushing; otherwise, . to wait for the GPU to complete the work; otherwise, . Flushes all pending drawing operations to the underlying 3D API, optionally submitting work to the GPU. The color type. Gets the maximum supported sample count for the specified color type. Returns the maximum supported sample count. 1 is returned if only non-MSAA rendering is supported for the color type. 0 is returned if rendering to this color type is not supported at all. The configuration of the render target. The display density in dots per inch. Returns the recommended sample count for a render target when using this context. Returns the recommended sample count. May return 0 if MSAA is not supported or recommended to be used by default. Returns the maximum number of bytes of video memory that can be held in the cache. The maximum number of bytes of video memory that can be held in the cache. The maximum number of resources that can be held in the cache. The maximum number of bytes of video memory that can be held in the cache. Returns the current GPU resource cache limits. The number of resources that are held in the cache. The total number of bytes of video memory held in the cache. Returns the current GPU resource cache usage. Gets a value indicating whether the context has been abandoned. if the context has been abandoned; otherwise, . Frees all GPU resources held by the context. to purge only scratch resources; otherwise, to purge all unlocked resources. Purges unlocked resources from the cache. The number of bytes to attempt to purge. to prefer purging scratch resources first; otherwise, . Purges unlocked resources from the cache until the specified number of bytes have been freed. The time period in milliseconds. Resources that have not been used within this time period will be purged. Purges resources that have not been used within the specified time period. Flags to control what is reset. Informs the context that the state was modified and should resend. The context normally assumes that no outsider is setting state within the underlying 3D API's context/device/whatever. This method shouldn't be called frequently for good performance. Flags to control what is reset. Informs the context that the state was modified and should resend. The context normally assumes that no outsider is setting state within the underlying 3D API's context/device/whatever. This method shouldn't be called frequently for good performance. Flags to control what is reset. Informs the context that the state was modified and should resend. The context normally assumes that no outsider is setting state within the underlying 3D API's context/device/whatever. This method shouldn't be called frequently for good performance. The maximum number of bytes of video memory that can be held in the cache. Specifies the GPU resource cache limit. If the current cache exceeds this limit, it will be purged (LRU) to keep the cache within this limit. The maximum number of resources that can be held in the cache. The maximum number of bytes of video memory that can be held in the cache. Specify the GPU resource cache limits. If the current cache exceeds either of these, it will be purged (LRU) to keep the cache within these limits. to wait for the GPU to complete all outstanding work; otherwise, . Submits outstanding work to the GPU. Represents the collection of options for the construction of a context. Initializes a new instance of the class. Gets or sets a value indicating whether to allow path mask textures to be cached. if path mask textures can be cached; otherwise, . This is only really useful if paths are commonly rendered at the same scale and fractional translation. Default is . Gets or sets a value indicating whether to avoid allocating stencil buffers. if stencil buffer allocation should be avoided; otherwise, . Bugs on certain drivers cause stencil buffers to leak. This flag causes Skia to avoid allocating stencil buffers and use alternate rasterization paths, avoiding the leak. Gets or sets the threshold, in bytes, above which a buffer mapping API will be used to map vertex and index buffers to CPU memory in order to update them. The threshold in bytes for buffer mapping. A value of -1 means the context should deduce the optimal value for this platform. Default is -1. Gets or sets a value indicating whether to construct mipmaps manually, via repeated downsampling draw-calls. if mipmaps should be constructed manually; otherwise, . This is used when the driver's implementation (glGenerateMipmap) contains bugs. This requires mipmap level and LOD control (for example, desktop or ES3). Default is . Gets or sets the maximum size of cache textures used for the SkiaSharp Glyph cache. The maximum size in bytes of cache textures for the glyph cache. Default is 2048 * 1024 * 4. Gets or sets the number of GPU programs that may be cached. The number of GPU programs that may be cached. Default is 256. Represents the Direct3D 12 backend context used to create a GPU-backed . Initializes a new instance of the class. Gets or sets the native pointer to the DXGI adapter (IDXGIAdapter). The native pointer to the DXGI adapter. Gets or sets the native pointer to the Direct3D 12 device (ID3D12Device). The native pointer to the Direct3D 12 device. Releases all resources used by this . to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Gets or sets a value indicating whether the context uses protected content. if the context uses protected content; otherwise, . Gets or sets the native pointer to the Direct3D 12 command queue (ID3D12CommandQueue). The native pointer to the Direct3D 12 command queue. Represents Direct3D texture resource information for GPU interoperability. Creates a new instance of . Releases all resources used by this object. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the object and optionally releases the managed resources. Gets or sets the DXGI format of the texture. The DXGI format value. Gets or sets the number of mipmap levels in the texture. The number of mipmap levels. Gets or sets a value indicating whether the texture is protected. if the texture is protected; otherwise, . Gets or sets the pointer to the underlying Direct3D resource. The native pointer to the ID3D12Resource. Gets or sets the current resource state of the texture. The D3D12_RESOURCE_STATES value. Gets or sets the number of samples per pixel for multisampling. The sample count. Gets or sets the quality pattern for multisampling. The sample quality pattern value. Various flags for the method when using a backend. Reset all the context state. Reset the blend state. Reset the fixed function state. Reset miscellaneous state. Reset the MSAA state. Reset nothing. Reset the path rendering state. Reset the pixel store state. Reset the program state. Reset the render target. Reset the stencil state. Reset the texture binding state. Reset the vertex buffer state. Reset the scissor and viewport state. Wrap an existing OpenGL texture created by the client in the 3D API with an underlying GRTexture object. The client is responsible for ensuring that the texture lives at least as long as the GRTexture object wrapping it. We require the client to explicitly provide information about the texture, such as width, height, and pixel configuration, rather than querying the 3D API for these values. We expect these to be immutable even if the 3D API doesn't require this (OpenGL). Textures that are also render targets are supported as well. Any ancillary 3D API (stencil buffer, FBO id, etc) objects necessary will be managed. Gets or sets the color format. One of the enumeration values that specifies the color format. The to compare with the current instance. Determines whether the specified is equal to the current instance. if the specified object is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is equal to the current instance; otherwise, . Gets or sets additional options about the texture. A bitwise combination of the enumeration values that specify additional options about the texture. Returns a hash code for this instance. A hash code for the current instance. Gets or sets the height in pixels. The height in pixels. The first to compare. The second to compare. Determines whether two specified instances are equal. if and are equal; otherwise, . The first to compare. The second to compare. Determines whether two specified instances are not equal. if and are not equal; otherwise, . Gets or sets the pixel origin. One of the enumeration values that specifies the pixel origin. Gets the texture bounds as a rectangle. A rectangle with origin (0, 0) and dimensions equal to and . Gets or sets the number of samples per pixel. The number of samples per pixel. Gets the texture dimensions as a size. The width and height of the texture in pixels. Gets or sets the handle to the OpenGL texture. The OpenGL texture information. Gets or sets the width in pixels. The width in pixels. Represents a handle to an existing OpenGL framebuffer. The OpenGL framebuffer ID. Creates a new with the specified parameters. The OpenGL framebuffer ID. The sized, internal format of the OpenGL framebuffer. Creates a new with the specified parameters. The to compare with the current instance. Determines whether the specified is equal to the current instance. if the specified object is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is equal to the current instance; otherwise, . Gets or sets the sized, internal format of the OpenGL framebuffer. The OpenGL internal format. Gets or sets the OpenGL framebuffer ID. The OpenGL framebuffer object identifier. Returns a hash code for this instance. A hash code for the current instance. The first to compare. The second to compare. Determines whether two specified instances are equal. if and are equal; otherwise, . The first to compare. The second to compare. Determines whether two specified instances are not equal. if and are not equal; otherwise, . Gets or sets a value indicating whether the framebuffer is protected. if the framebuffer is protected; otherwise, . The user data passed to the assembling methods of . The name of the endpoint to locate. The delegate that is used when locating the various endpoints of an OpenGL implementation. A pointer to the OpenGL function, or if not found. The name of the OpenGL function to look up. Represents a method that retrieves the address of an OpenGL function by name. A pointer to the requested OpenGL function, or if the function is not found. The is used to interface with OpenGL. A does not interact directly with the underlying backend, instead it uses an OpenGL interface. The delegate used to locate entry points. Assemble an ANGLE using the specified delegate. Returns the new , or if one could not be created. The user data to use in the delegate. The delegate used to locate entry points. Assemble an ANGLE using the specified context and delegate. Returns the new , or if one could not be created. The delegate used to locate entry points. Assemble an OpenGL ES using the specified delegate. Returns the new , or if one could not be created. The user data to use in the delegate. The delegate used to locate entry points. Assemble an OpenGL ES using the specified context and delegate. Returns the new , or if one could not be created. The delegate used to locate entry points. Assemble an OpenGL using the specified delegate. Returns the new , or if one could not be created. The user data to use in the delegate. The delegate used to locate entry points. Assemble an OpenGL using the specified context and delegate. Returns the new , or if one could not be created. The delegate used to locate entry points. Assemble an platform-specific using the specified delegate. Returns the new , or if one could not be created. The user data to use in the delegate. The delegate used to locate entry points. Assemble an platform-specific using the specified context and delegate. Returns the new , or if one could not be created. Creates a new OpenGL interface for the current platform. A new , or if no OpenGL context is available. A delegate that returns the address of an OpenGL function. Creates a new OpenGL interface using the specified function resolver. A new , or if the interface could not be created. Creates a new OpenGL interface for ANGLE. A new for ANGLE, or if ANGLE is not available. A delegate that returns the address of an OpenGL function. Creates a new OpenGL interface for ANGLE using the specified function resolver. A new for ANGLE, or if the interface could not be created. Create a using the platform-default OpenGL implementation. Returns the new , or if one could not be created. On Windows, this is typically ANGLE, on mobile it is typically OpenGL ES and on desktop it is typically OpenGL. A pointer to the Evas GL context. Creates a new OpenGL interface for Tizen Evas. A new for Evas, or if the interface could not be created. A delegate that returns the address of an OpenGL ES function. Creates a new OpenGL ES interface using the specified function resolver. A new for OpenGL ES, or if the interface could not be created. Create a using the ANGLE OpenGL implementation. Returns the new , or if one could not be created. The pointer to the Evas_GL object to use. Create a using the Evas OpenGL implementation. Returns the new , or if one could not be created. Create a using the platform OpenGL implementation. Returns the new , or if one could not be created. A delegate that returns the address of an OpenGL function. Creates a new desktop OpenGL interface using the specified function resolver. A new for desktop OpenGL, or if the interface could not be created. A delegate that returns the address of a WebGL function. Creates a new WebGL interface using the specified function resolver. A new for WebGL, or if the interface could not be created. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. The extension to check for. Checks to see if the underlying OpenGL backend has the specified extension. if the backend has the extension; otherwise, . Validates that the supports its advertised standard. if all the entry points are specified, and any required extensions exist. Represents a handle to an existing OpenGL texture. The OpenGL texture target (for example, GL_TEXTURE_2D). The OpenGL texture ID. Creates a new with the specified parameters. The OpenGL texture target. The OpenGL texture ID. The sized, internal format of the OpenGL texture. Creates a new with the specified parameters. The to compare with the current instance. Determines whether the specified is equal to the current instance. if the specified object is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is equal to the current instance; otherwise, . Gets or sets the sized, internal format of the OpenGL texture. The sized, internal format of the texture. Returns a hash code for this instance. A hash code for the current instance. Gets or sets the OpenGL texture ID. The OpenGL texture ID. The first to compare. The second to compare. Determines whether two specified instances are equal. if and are equal; otherwise, . The first to compare. The second to compare. Determines whether two specified instances are not equal. if and are not equal; otherwise, . Gets or sets a value indicating whether the texture is protected. if the texture is protected; otherwise, . Gets or sets the OpenGL texture target. The OpenGL texture target. Represents the Metal backend context used to create a GPU-backed . Initializes a new instance of the class. Gets or sets the native handle to the Metal device (MTLDevice). The native pointer to the Metal device. Releases all resources used by this . to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Gets or sets the native handle to the Metal command queue (MTLCommandQueue). The native pointer to the Metal command queue. Represents information about a Metal texture used as a backend texture in SkiaSharp. The native handle to the Metal texture (MTLTexture). Initializes a new instance of the struct with the specified texture handle. The to compare with this instance. Determines whether the specified is equal to the current instance. if the specified object is equal to the current instance; otherwise, . The object to compare with this instance. Determines whether the specified object is equal to the current instance. if the specified object is equal to the current instance; otherwise, . Returns the hash code for this instance. A 32-bit signed integer hash code. The first to compare. The second to compare. Determines whether two instances are equal. if the two instances are equal; otherwise, . The first to compare. The second to compare. Determines whether two instances are not equal. if the two instances are not equal; otherwise, . Gets or sets the native handle to the Metal texture (MTLTexture). The native pointer to the Metal texture. Various pixel configurations supported. 16-bit alpha channel. 8-bit Alpha. 8-bit alpha stored in the alpha component. 8-bit alpha stored in the red component. Single 16-bit float channel. 16-bit half-float alpha stored in the luminance component. 16-bit half-float alpha stored in the red component. Premultiplied 32-bit channel. Byte order is BGRA. 8-bit grayscale color channel. 8-bit grayscale stored in the luminance component. 8-bit grayscale stored in the red component. Two 16-bit channels (RG). Two 8-bit channels (RG). 16-bit channel. Byte order is RGB. Premultiplied, opaque 32-bit color with the format RGB, with 8 bits per color component. Opaque 32-bit color with the format RGB, with 8 bits per color component and 8 unused bits. Premultiplied 32-bit color with the format RGBA, with 10 bits per color component and 2 bits for the alpha component. 64-bit RGBA with 16 bits per channel. Premultiplied 16-bit channel. Byte order is RGBA. Premultiplied 32-bit channel. Byte order is RGBA. 32-bit channel. Byte order is RGBA. 16-bit channel. Byte order is RGBA. 64-bit half-float RGBA clamped to [0, 1]. ETC1 compressed RGB texture format. 32-bit channel. Byte order is RG. Two 16-bit half-float channels (RG). Premultiplied and sRGB. Byte order is BGRA. Premultiplied and sRGB. Byte order is RGBA. The pixel configuration is not known or not set. A context for recording GPU operations that can be replayed later. Gets the GPU backend type for this context. The GPU backend type. The color type to check. Gets the maximum supported sample count for a surface with the specified color type. The maximum sample count, or 0 if the color type is not supported. Gets a value indicating whether the context has been abandoned. if the context has been abandoned; otherwise, . Gets the maximum supported render target size. The maximum render target size in pixels. Gets the maximum supported texture size. The maximum texture size in pixels. The origin of a texture. Origin is at the bottom-left. Origin is at the top-left. Represents Vulkan memory allocation information for use with Skia's GPU backend. Gets or sets the backend memory handle for custom memory allocators. The backend memory handle. The to compare with the current instance. Determines whether the specified is equal to the current instance. if the specified object is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is equal to the current instance; otherwise, . Gets or sets the allocation flags. The allocation flags. Returns the hash code for this instance. A 32-bit signed integer hash code. Gets or sets the Vulkan device memory handle. The VkDeviceMemory handle as an unsigned 64-bit integer. Gets or sets the offset within the device memory allocation. The offset in bytes. The first to compare. The second to compare. Determines whether two instances are equal. if the two instances are equal; otherwise, . The first to compare. The second to compare. Determines whether two instances are not equal. if the two instances are not equal; otherwise, . Gets or sets the size of the memory allocation. The size in bytes. Represents the Vulkan backend context for GPU rendering. Initializes a new instance of the class. Releases all resources used by the . to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Gets or sets the Vulkan extensions. The Vulkan extensions. Gets or sets the delegate used to retrieve Vulkan procedure addresses. The delegate that returns Vulkan procedure addresses. Gets or sets the graphics queue family index. The index of the graphics queue family. Gets or sets the maximum Vulkan API version supported. The maximum Vulkan API version. Gets or sets a value indicating whether the context uses protected memory. if the context uses protected memory; otherwise, . Gets or sets the Vulkan logical device handle. A pointer to the Vulkan device. Gets or sets the Vulkan instance handle. A pointer to the Vulkan instance. Gets or sets the Vulkan physical device handle. A pointer to the Vulkan physical device. Gets or sets the Vulkan physical device features. A pointer to the VkPhysicalDeviceFeatures structure. Gets or sets the Vulkan 1.1+ physical device features. A pointer to the VkPhysicalDeviceFeatures2 structure. Gets or sets the Vulkan graphics queue handle. A pointer to the Vulkan queue. Represents a collection of Vulkan extensions for use with Skia's GPU backend. The delegate used to retrieve Vulkan procedure addresses. The Vulkan instance handle. The Vulkan physical device handle. The array of enabled Vulkan instance extension names. The array of enabled Vulkan device extension names. Creates a new instance and initializes it with the specified Vulkan objects and extensions. A new instance. Releases the native resources associated with this object. The name of the Vulkan extension to check. The minimum required version of the extension. Verifies that the specified Vulkan extension is available with at least the given version. The delegate used to retrieve Vulkan procedure addresses. The Vulkan instance handle. The Vulkan physical device handle. Initializes the extensions object with the specified Vulkan instance and physical device. The delegate used to retrieve Vulkan procedure addresses. The Vulkan instance handle. The Vulkan physical device handle. The array of enabled Vulkan instance extension names. The array of enabled Vulkan device extension names. Initializes the extensions object with the specified Vulkan objects and extensions. The name of the Vulkan function to look up. The Vulkan instance handle, or for global functions. The Vulkan device handle, or for instance-level functions. A delegate for resolving Vulkan function addresses by name. The function pointer for the requested Vulkan function, or if not found. Represents information about a Vulkan image for use with Skia's GPU backend. Gets or sets the memory allocation information for the Vulkan image. The containing memory allocation details. Gets or sets the current queue family index that owns the image. The queue family index. The to compare with the current instance. Determines whether the specified is equal to the current instance. if the specified object is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is equal to the current instance; otherwise, . Gets or sets the Vulkan format of the image. The VkFormat value as an unsigned integer. Returns the hash code for this instance. A 32-bit signed integer hash code. Gets or sets the Vulkan image handle. The VkImage handle as an unsigned 64-bit integer. Gets or sets the current layout of the Vulkan image. The VkImageLayout value as an unsigned integer. Gets or sets the tiling arrangement of the Vulkan image. The VkImageTiling value as an unsigned integer. Gets or sets the usage flags for the Vulkan image. The VkImageUsageFlags value as an unsigned integer. Gets or sets the number of mipmap levels in the Vulkan image. The number of mipmap levels. The first to compare. The second to compare. Determines whether two instances are equal. if the two instances are equal; otherwise, . The first to compare. The second to compare. Determines whether two instances are not equal. if the two instances are not equal; otherwise, . Gets or sets a value indicating whether the Vulkan image is protected. if the image is protected; otherwise, . Gets or sets the number of samples per pixel for the Vulkan image. The sample count. Gets or sets the sharing mode of the Vulkan image across queue families. The VkSharingMode value as an unsigned integer. Gets or sets the YCbCr conversion information for the Vulkan image. The containing YCbCr conversion details. Configuration information for Vulkan YCbCr color space conversion. Gets or sets the chroma filter mode used for upsampling chroma components. The VkFilter value for chroma filtering. The to compare with this instance. Determines whether the specified is equal to the current instance. if the specified object is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is equal to the current instance; otherwise, . Gets or sets the external format when using VK_ANDROID_external_memory_android_hardware_buffer. The external format value, or 0 if not using an external format. Gets or sets a value indicating whether to force explicit chroma reconstruction. Non-zero to force explicit reconstruction. Gets or sets the Vulkan format of the image. The VkFormat value. Gets or sets the format feature flags supported by this format. The VkFormatFeatureFlags value. Returns the hash code for this instance. A 32-bit signed integer hash code. The first value to compare. The second value to compare. Determines whether two specified instances are equal. if equals ; otherwise, . The first value to compare. The second value to compare. Determines whether two specified instances are not equal. if does not equal ; otherwise, . Gets or sets the X chroma offset for downsampled chroma channels. The VkChromaLocation value for the X offset. Gets or sets the YCbCr model used for color conversion. The VkSamplerYcbcrModelConversion value. Gets or sets the YCbCr range for color conversion. The VkSamplerYcbcrRange value. Gets or sets the Y chroma offset for downsampled chroma channels. The VkChromaLocation value for the Y offset. A utility class that can be used to create 3D transformations. Creates a new instance of . The canvas to apply the transformation to. Applies the current transformation to the specified canvas. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. The x-axis of the normal. The y-axis of the normal. The z-axis of the normal. Returns the dot product of the current transformation and the specified normal. Returns the dot product. The matrix to store the transformation. Stores the current transformation in the specified matrix. Gets the current transformation as a matrix. The transformation matrix. Restores the transformation to the last saved with . The degrees to rotate by. Rotates the transformation along the x-axis by the specified degrees. The radians to rotate by. Rotates the transformation along the x-axis by the specified radians. The degrees to rotate by. Rotates the transformation along the y-axis by the specified degrees. The radians to rotate by. Rotates the transformation along the y-axis by the specified radians. The degrees to rotate by. Rotates the transformation along the z-axis by the specified degrees. The radians to rotate by. Rotates the transformation along the z-axis by the specified radians. Saves the current transformation so that it can be restored later using . The amount to translate by along the x-axis. The amount to translate by along the y-axis. The amount to translate by along the z-axis. Translates the transformation. The amount to translate by. Translates the transformation along the x-axis. The amount to translate by. Translates the transformation along the y-axis. The amount to translate by. Translates the transformation along the z-axis. Represents a (a seekable, rewindable Skia stream). Creates a new instance of . The value indicating whether this object should destroy the underlying native object. Creates a new instance of . to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. Implemented by derived types to copy the current stream. Returns a pointer to the new instance. Implemented by derived types to duplicate the current stream. Returns a pointer to the new instance. After the stream has been duplicated, the new stream must set its position to the start. Implemented by derived types to fork the current stream. Returns a pointer to the new instance. After the stream has been duplicated, the new stream must set its position to the same as this stream. Implemented by derived types to return the total length of the stream. Returns the total length of the stream. Implemented by derived types to get the current position in the stream. Returns the current position in the stream. Implemented by derived types to indicate whether this stream can report its total length. Returns a value indicating whether this stream can report its total length. Implemented by derived types to indicate whether this stream can report its current position. Returns a value indicating whether this stream can report its current position. Implemented by derived types to indicate whether all the bytes in the stream have been read. Returns a value indicating whether all the bytes in the stream have been read. The relative offset. Implemented by derived types to seek to a relative offset. if seeking is supported and the seek was successful; otherwise, . If an attempt is made to move to a position outside the stream, the position must be set to the closest point within the stream (beginning or end). The buffer to read into. The number of bytes to read. Implemented by derived types to copy the specified number of bytes into the specified buffer. Returns the number of bytes actually peeked/copied. The stream's cursor must be returned to the position before this method was called. The buffer to read into. The number of bytes to read. Implemented by derived types to copy the specified number of bytes into the specified buffer. Returns the number of bytes actually read. Implemented by derived types to rewind the current stream. if the stream is known to be at the beginning after this call returns. The absolute position. Implemented by derived types to seek to an absolute position. if seeking is supported and the seek was successful; otherwise, . If an attempt is made to move to a position outside the stream, the position must be set to the closest point within the stream (beginning or end). Represents a (a writeable Skia stream). Creates a new instance of . The value indicating whether this object should destroy the underlying native object. Creates a new instance of . to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. Implemented by derived types to specify the number of bytes currently written to the stream. Returns the number of bytes currently written to the stream. Implemented by derived types to flush the bytes to the underlying stream. The buffer to copy into the underlying stream. The number of bytes to copy from the buffer. Implemented by derived types to copy the specified number of bytes from the specified buffer into the underlying stream. Returns on success, otherwise . Describes how to interpret the alpha component of a pixel. All pixels are stored as opaque. All pixels have their alpha premultiplied in their color components. This is the natural format for the rendering target pixels. The alpha type is uninitialized. All pixels have their color components stored without any regard to the alpha. e.g. this is the default configuration for PNG images. This alpha-type is ONLY supported for input images. Rendering cannot generate this on output. Convenience class used to restore the canvas state in a using statement. method restore the canvas state to the state it was when this instance was created. ## Examples ```csharp SKCanvas canvas = ...; using (new SKAutoCanvasRestore(canvas)) { // perform some transform canvas.RotateDegrees(45); // draw as usual var paint = new SKPaint (); canavs.DrawRect (10, 10, 100, 100, paint); // automatically restore to original transform } ``` ]]> The canvas whose state will be preserved. Creates a canvas restore point, invoking the method. The canvas whose state will be preserved. to invoke method at this point; otherwise, . Creates a canvas restore point. Disposes the canvas restore point, restoring the state of the canvas (matrix, clip and draw filter) to the state it was when the object was created. This operation will not do anything if you had previously manually called the method. Restores the canvas restore point, restoring the state of the canvas (matrix, clip and draw filter) to the state it was when the object was created. Convenience class used to automatically initialize and uninitialize COM on supported platforms. This is only supported on Windows, and is usually not needed. However, when creating a .NET Core app, COM may not be initialized. Currently, only and more specifically, XPS documents require COM. Initializes COM. Uninitializes COM. Gets a value indicating whether COM is initialized or not. if COM is initialized; otherwise, . Uninitializes COM. Convenience class used to automatically free the image data for a mask in a using statement. method. ## Examples ```csharp // some buffer byte[] buffer = ...; // create the mask, allocating the image var mask = SKMask.Create(buffer, bounds, rowBytes, format); using (new SKAutoMaskFreeImage(mask.Image)) { // use the mask // automatically release the image data } ``` ]]> The image to free. Create a new instance of with the specified image to free. Disposes the object, releasing the image data. The specifies a raster bitmap. A bitmap has an integer width and height, and a format (color type), and a pointer to the actual pixels. Bitmaps can be drawn into a , but they are also used to specify the target of a ' drawing operations. A exposes , which lets a caller write its pixels. To retrieve a pointer to the raw image data of the bitmap, call the method, and then call the method to get a pointer to the image data. Once you no longer need to use the raw data pointer, call the method. The raw data is laid out in the format configured at the time that the bitmap was created. (Note: As of SkiaSharp 1.60.0, calls to and are no longer required, and they no longer exist as part of the API.) Initializes a new instance of the class with zero width and height, and no pixels. Its color type is set to . This constructor does not allocate a backing store for the bitmap. The description of the desired image format. Initializes a new instance of the class with the specified image format. This constructor might throw an exception if it is not possible to create a bitmap with the specified configuration (for example, the image info requires a color table, and there is no color table). The description of the desired image format. The additional flags. Initializes a new instance of the class with the specified image format and allocation flags. This constructor might throw an exception if it is not possible to create a bitmap with the specified configuration (for example, the image info requires a color table, and there is no color table). The description of the desired image format. The color lookup table. Constructor that configures the bitmap based on an specification and a color table. Use this method to create a bitmap that will use a color lookup table. The bitmap will be an 8-bit indexed bitmap, where each value represents an index into the color table, and the color is determined by the value in the specific location in the color table array. The description of the desired image format. The number of bytes per row. Constructor that configures the bitmap based on an specification, and the specified number of bytes per row (the stride size) This constructor might throw an exception if it is not possible to create a bitmap with the specified configuration (for example, the image info requires a color table, and there is no color table). The description of the desired image format. The color lookup table. The additional flags. Constructor that configures the bitmap based on an specification and a color table. Use this method to create a bitmap that will use a color lookup table. The bitmap will be an 8-bit indexed bitmap, where each value represents an index into the color table, and the color is determined by the value in the specific location in the color table array. The desired width in pixels. The desired height in pixels. If true, sets the to , otherwise it sets it to . Creates a bitmap with the given width, height and opacity with color type set to This constructor might throw an exception if it is not possible to create a bitmap with the specified configuration (for example, the image info requires a color table, and there is no color table). The desired width in pixels. The desired height in pixels. The desired . The desired . Creates a bitmap with the given width, height, color type and alpha type. This constructor might throw an exception if it is not possible to create a bitmap with the specified configuration (for example, the image info requires a color table, and there is no color table). The width of the bitmap in pixels. The height of the bitmap in pixels. The color type for the bitmap. The alpha type for the bitmap. The colorspace for the bitmap. Initializes a new instance of the class with the specified dimensions and format. Gets the configured for the bitmap. The configured . This determines the kind of encoding used for the alpha channel, opaque, premultiplied or unpremultiplied. Gets the byte size of the pixels, based on the and . The byte size of the pixels. Note: this truncates the result to 32-bits. Gets a copy of all the pixel data as a byte array. The pixel data. Gets the number of bytes used per pixel. The number of bytes used per pixel. This is calculated from the . If the color type is , then the value will be 0. The color type to check with. if this bitmap's pixels can be converted into the requested color type, such that or could succeed. if this bitmap's pixels can be converted into the requested color type. Gets the color space of the bitmap. The color space of the bitmap, or if none is set. Gets the color table of the bitmap. The color table of the bitmap, or if none is set. Gets the color type of the bitmap. One of the enumeration values that specifies the color type of the bitmap. Copies the contents of the bitmap and returns the copy. The copy of the bitmap, or on error. The color type to use for the copy of the bitmap. Copies the contents of the bitmap with the specified color type and returns the copy. The copy of the bitmap, or on error. The bitmap to received the copied contents. Copies the contents of the bitmap into the specified bitmap. if the copy was made. The bitmap to received the copied contents. The color type to use for the copy of the bitmap. Copies the contents of the bitmap into the specified bitmap. if the copy was made. The codec to decode. Decode a bitmap using the specified codec. The decoded bitmap, or on error. The data to decode. Decode a bitmap using the specified data. The decoded bitmap, or on error. The stream to decode. Decode a bitmap using the specified stream. The decoded bitmap, or on error. The byte buffer to decode. Decode a bitmap using the specified byte buffer. The decoded bitmap, or on error. The stream to decode. Decode a bitmap using the specified stream and destination image information. The decoded bitmap, or on error. The encoded image data. Decodes a bitmap from the specified encoded data. The decoded bitmap, or on error. The filename of the bitmap to decode. Decode a bitmap for the specified filename. The decoded bitmap, or on error. The codec to decode. The destination image information. Decode a bitmap using the specified codec and destination image information. The decoded bitmap, or on error. The data to decode. The destination image information. Decode a bitmap using the specified data and destination image information. The decoded bitmap, or on error. The stream to decode. The destination image information. Decode a bitmap using the specified stream and destination image information. The decoded bitmap, or on error. The byte buffer to decode. The destination image information. Decode a bitmap using the specified byte buffer and destination image information. The decoded bitmap, or on error. The stream to decode. The destination image information. Decode a bitmap using the specified stream and destination image information. The decoded bitmap, or on error. The encoded image data. The desired image information for decoding. Decodes a bitmap from the specified encoded data into the desired format. The decoded bitmap, or on error. The filename of the bitmap to decode. The destination image information. Decode a bitmap for the specified filename and destination image information. The decoded bitmap, or on error. The data to decode. Decode the bitmap information using the specified data. The decoded bitmap information, or if there was an error. The stream to decode. Decode the bitmap information using the specified stream. The decoded bitmap information, or if there was an error. The byte buffer to decode. Decode the bitmap information using the specified byte buffer. The decoded bitmap information, or if there was an error. The stream to decode. Decode the bitmap information using the specified stream. The decoded bitmap information, or if there was an error. The encoded image data. Returns the image information without fully decoding the data. The image information, or on error. The filename of the bitmap to decode. Decode the bitmap information for the specified filename. The decoded bitmap information, or if there was an error. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. Gets a value indicating whether drawing this bitmap has any effect. if drawing this bitmap has any effect; otherwise, . The file format used to encode the image. The quality level to use for the image. Quality range from 0-100. Higher values correspond to improved visual quality, but less compression. Encodes the bitmap using the specified format and quality. The encoded data, or on error. The stream to write the encoded image to. The file format used to encode the image. The quality level to use for the image. Quality range from 0-100. Higher values correspond to improved visual quality, but less compression. Encodes the image using the specified format. Returns on success, or if there was an error. The stream to write the encoded image to. The file format used to encode the image. The quality level to use for the image. Quality range from 0-100. Higher values correspond to improved visual quality, but less compression. Encodes the bitmap to the stream using the specified format. Returns on success. The color to fill. Fill the entire bitmap with the specified color. If the bitmap's color type does not support alpha (e.g. 565) then the alpha of the color is ignored (treated as opaque). If the color type only supports alpha (e.g. A1 or A8) then the color's R, G, B components are ignored. The color to fill. The area to fill. Fill the specified area of this bitmap with the specified color. If the bitmap's color type does not support alpha (e.g. 565) then the alpha of the color is ignored (treated as opaque). If the color type only supports alpha (e.g. A1 or A8) then the color's R, G, B components are ignored. The bitmap to be filled with alpha layer. Retrieve the alpha layer of this bitmap. if the alpha layer was retrieved, false otherwise. The bitmap to be filled with alpha layer. The paint to draw with. Retrieve the alpha layer of this bitmap after applying the specified paint. if the alpha layer was retrieved, false otherwise. The bitmap to be filled with alpha layer. The top-left coordinate to position the retrieved bitmap so that it visually lines up with the original. Retrieve the alpha layer of this bitmap. if the alpha layer was retrieved, false otherwise. The bitmap to be filled with alpha layer. The paint to draw with. The top-left coordinate to position the retrieved bitmap so that it visually lines up with the original. Retrieve the alpha layer of this bitmap after applying the specified paint. if the alpha layer was retrieved, false otherwise. The bitmap that will be set to a subset of this bitmap. The rectangle of pixels in this bitmap that the destination will reference. Retrieve a subset of this bitmap. if the subset was retrieved, false otherwise. If possible, the retrieved bitmap will share the pixel memory, and just point into a subset of it. However, if the color type does not support this, a local copy will be made and associated with the destination bitmap. The image to use to create a bitmap. Creates a new bitmap from a copy of the pixel data in the specified image. Returns a new instance of , or if the bitmap could not be created. The x-coordinate of the pixel. The y-coordinate of the pixel. Returns the address of the specified pixel. Returns the address of the specified pixel. The x-coordinate of the pixel. The y-coordinate of the pixel. Returns the 16-bit value of the specified pixel. Returns the 16-bit value of the specified pixel. The x-coordinate of the pixel. The y-coordinate of the pixel. Returns the 32-bit value of the specified pixel. Returns the 32-bit value of the specified pixel. The x-coordinate of the pixel. The y-coordinate of the pixel. Returns the 8-bit value of the specified pixel. Returns the 8-bit value of the specified pixel. The x-coordinate. The y-coordinate. Gets a pointer to the pixel at the specified coordinates. A pointer to the pixel data. The x-cordinate. The y-cordinate. Returns the color corresponding to the pixel specified by the coordinates for palette-based (color table) bitmaps. Returns the color corresponding to the pixel specified by the coordinates. The x-cordinate. The y-cordinate. Returns the color for the pixel at the specified location. Alpha only color types return black with the appropriate alpha set. The value is undefined for , if the coordinates are out of bounds, if the bitmap does not have any pixels, or has not be locked with . In most cases this will require unpremultiplying the color. Returns the address of the pixels for this bitmap. Returns a pointer to the region that contains the pixel data for this bitmap. This might return if there is no pixel buffer associated with this bitmap. The length of the pixel buffer of the bitmap. Returns the address of the pixels for this bitmap. Returns a pointer to the region that contains the pixel data for this bitmap. This might return if there is no pixel buffer associated with this bitmap. Returns a span that wraps the pixel data. Returns the span. This span is only valid as long as the bitmap is valid The x-coordinate. The y-coordinate. Gets a span starting at the specified pixel coordinates. A span of pixel data starting at the specified coordinates. Gets the height of the bitmap. The height of the bitmap. Gets an instance of with all the properties of the bitmap. The with all the properties of the bitmap. The mask to install. Installs the specified mask's pixels into the bitmap. on success, or on failure. If there was an error, the bitmap will be set to empty. The caller must ensure that the specified mask pixels are valid for the lifetime of the created bitmap. The pixels to install. Installs the specified pixels into the bitmap. on success, or on failure. If there was an error, the bitmap will be set to empty. The image information describing the pixels. The pixels to install. Installs the specified pixels into the bitmap. on success, or on failure. If there was an error, the bitmap will be set to empty. The image information describing the pixels. The pixels to install. The stride of the pixels being installed. Installs the specified pixels into the bitmap. on success, or on failure. If there was an error, the bitmap will be set to empty. The image information describing the pixels. The pixels to install. The stride of the pixels being installed. The delegate to invoke when the pixels are no longer referenced. Installs the specified pixels into the bitmap. on success, or on failure. If there was an error, the bitmap will be set to empty. The image information describing the pixels. The pixels to install. The stride of the pixels being installed. The color table to use, if installing Index8 pixels. Installs the specified pixels into the bitmap. on success, or on failure. If there was an error, the bitmap will be set to empty. The image information describing the pixels. The pixels to install. The stride of the pixels being installed. The delegate to invoke when the pixels are no longer referenced. The user data to use when invoking the delegate. Installs the specified pixels into the bitmap. on success, or on failure. If there was an error, the bitmap will be set to empty. The image information describing the pixels. The pixels to install. The stride of the pixels being installed. Pixel8 is no longer supported. The delegate to invoke when the pixels are no longer referenced. The user data to use when invoking the delegate. Developers should not use this obsolete method. on success, or on failure. If there was an error, the bitmap will be set to empty. Gets a value indicating whether the bitmap has empty dimensions. if the bitmap has empty dimensions; otherwise, . In most cases, will return the desired result as it checks as well. Indicates if the bitmap contents are immutable. Returns if it is immutable, otherwise. Immutability means that the contents of its pixels will not change for the lifetime of the bitmap. Gets a value indicating whether the bitmap has any pixelref. if the bitmap has any pixelref; otherwise, . This can return true even if the dimensions of the bitmap are not empty. In most cases, will return the desired result as it checks as well. Gets a value indicating whether the bitmap should not be cached by devices. if the bitmap should not be cached by devices; otherwise, . Indicates to consumers of the bitmap that the pixel data has changed. Returns the pixels if they are available without having to lock the bitmap. Returns the pixels if they are available, otherwise . If the pixels are available without locking, then the pixmap is only valid until the bitmap changes in any way, in which case the pixmap becomes invalid. The pixmap to receive the pixel information. Returns the pixmap of the bitmap. Returns on success, or if the bitmap does not have access to pixel data. Gets all the pixels as an array of colors. The array of colors. Gets a value indicating whether or not the bitmap is valid enough to be drawn. if the bitmap is valid enough to be drawn; otherwise, . Reset the bitmap to its initial state. The result is a bitmap with zero width and height, and no pixels. Its color type is set to . If we are a (shared) owner of the pixels, that ownership is decremented. The bitmap to store the resized pixels. The resize method. Resizes the current bitmap using the specified resize method. Returns if the resize operation can be performed, otherwise . The image information of the desired bitmap. The resize method. Resizes the current bitmap using the specified resize method. Returns the resized bitmap if the resize operation could be performed, otherwise . The image information of the desired bitmap. The level of quality to use when scaling the pixels. Resizes the current bitmap using the specified quality filter. Returns the resized bitmap if the resize operation could be performed, otherwise . The destination image information. The sampling options for resizing. Resizes the bitmap to the specified size using the sampling options. The resized bitmap, or on error. The destination size. The filter quality for resizing. Resizes the bitmap to the specified size. The resized bitmap, or on error. The destination size. The sampling options for resizing. Resizes the bitmap to the specified size using the sampling options. The resized bitmap, or on error. The bitmap to store the resized pixels. The bitmap to resize. The resize method. Resizes the provided bitmap using the specified resize method. Returns if the resize operation can be performed, otherwise . The number of bytes per row. The number of bytes per row. The same as . The bitmap to receive the scaled and converted pixels. The level of quality to use when scaling the pixels. Copies this pixmap to the destination, scaling the pixels to fit the destination size and converting the pixels to match the color type and alpha type. Returns on success, or if there was an error. , or , the destination color type must match. If the color type is , destination colorspace must also match. If the alpha type is , the destination alpha type must match. If the colorspace is , the destination colorspace must also be . Filter Quality: - is fastest, typically implemented with nearest neighbor filter. - is typically implemented with bilerp filter. - is typically implemented with bilerp filter, and mipmap when size is reduced. - is slowest, typically implemented with the bicubic filter.]]> The destination bitmap. The sampling options for resizing. Scales the pixels to the destination using the sampling options. Returns on success. The pixmap to receive the scaled and converted pixels. The level of quality to use when scaling the pixels. Copies this pixmap to the destination, scaling the pixels to fit the destination size and converting the pixels to match the color type and alpha type. Returns on success, or if there was an error. , or , the destination color type must match. If the color type is , destination colorspace must also match. If the alpha type is , the destination alpha type must match. If the colorspace is , the destination colorspace must also be . Filter Quality: - is fastest, typically implemented with nearest neighbor filter. - is typically implemented with bilerp filter. - is typically implemented with bilerp filter, and mipmap when size is reduced. - is slowest, typically implemented with the bicubic filter.]]> The destination pixmap. The sampling options for resizing. Scales the pixels to the destination using the sampling options. Returns on success. The new color table. Replaces the current color table of the bitmap. Marks the bitmap as immutable. Marks this bitmap as immutable, meaning that the contents of its pixels will not change for the lifetime of the bitmap and of the underlying pixelref. This state can be set, but it cannot be cleared once it is set. This state propagates to all other bitmaps that share the same pixelref. The x-coordinate. The y-coordinate. The color to set. Sets the color of the pixel at a specified location. This method will set the color of the pixel on the bitmap to the specified performing any necessary color conversions to the format of the bitmap. The new pixel address. Replaces the current pixel address for the bitmap. The new pixel address. Index8 is no longer supported. Developers should not use this obsolete method. Creates a shader from this bitmap. The shader. The tile mode for x axis. The tile mode for y axis. Creates a tiled shader from this bitmap. The shader. The tile mode for x axis. The tile mode for y axis. The filter quality for resizing. Creates a tiled shader with the specified filtering. The shader. The tile mode for x axis. The tile mode for y axis. The local matrix to apply to the shader. Creates a tiled shader with a local transformation matrix. The shader. The tile mode for x axis. The tile mode for y axis. The sampling options for resizing. Creates a tiled shader with the specified filtering. The shader. The tile mode for x axis. The tile mode for y axis. The filter quality for resizing. The local matrix to apply to the shader. Creates a tiled shader with the specified filtering. The shader. The tile mode for x axis. The tile mode for y axis. The sampling options for resizing. The local matrix to apply to the shader. Creates a tiled shader with the specified filtering. The shader. The image information describing the pixels. Allocates the memory for the bitmap using the specified image information. if the allocation was successful; otherwise, . The image information describing the pixels. The additional flags. Allocates the memory for the bitmap using the specified image information. if the allocation was successful; otherwise, . The image information describing the pixels. The stride of the pixels being allocated. Allocates the memory for the bitmap using the specified image information. if the allocation was successful; otherwise, . Gets the width of the bitmap. The width of the bitmap. Flags to use with . Default bitmap allocation flag. Initialize the bitmap with zeroed data. The memory address of the pixels being released. The user data that was provided when installing the pixels. The delegate that is used when releasing the memory for a bitmap. Channel selector type for the method or the method. Use the box interpolated filter (Shrink: average color; Grow: pixel replication). Use the Hamming windowed Sinc filter (cosine bell variant). Use the Lanczos windowed Sinc filter. Use the Mitchell cubic filter. Use the box triangle or bilinear filter. Represents a custom blending function that combines source and destination colors. The coefficient for source * destination. The coefficient for source. The coefficient for destination. The constant offset added to the result. If , clamps the result to valid premultiplied color values. Creates a blender that applies the arithmetic formula: k1 * src * dst + k2 * src + k3 * dst + k4. A new blender that applies the arithmetic combination. The blend mode to use. Creates a blender that applies the specified blend mode. A new blender that applies the blend mode. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Predefined blend modes. No regions are enabled. [Porter Duff Compositing Operators] (https://drafts.fxtf.org/compositing-1/examples/PD_clr.svg) Creates a color with the hue and saturation of the source color and the luminosity of the backdrop color. [Non-Separable Blend Modes] Darkens the backdrop color to reflect the source color. [Separable Blend Modes] Brightens the backdrop color to reflect the source color. [Separable Blend Modes] Selects the darker of the backdrop and source colors. [Separable Blend Modes] Subtracts the darker of the two constituent colors from the lighter color. [Separable Blend Modes] Only the destination will be present. [Porter Duff Compositing Operators] (https://drafts.fxtf.org/compositing-1/examples/PD_dst.svg) Destination which overlaps the source replaces the source. [Porter Duff Compositing Operators] (https://drafts.fxtf.org/compositing-1/examples/PD_dst-atop.svg) Destination which overlaps the source, replaces the source. [Porter Duff Compositing Operators] (https://drafts.fxtf.org/compositing-1/examples/PD_dst-in.svg) Destination is placed, where it falls outside of the source. [Porter Duff Compositing Operators] (https://drafts.fxtf.org/compositing-1/examples/PD_dst-out.svg) Destination is placed over the source. [Porter Duff Compositing Operators] (https://drafts.fxtf.org/compositing-1/examples/PD_dst-over.svg) Produces an effect similar to that of the Difference mode but lower in contrast. [Separable Blend Modes] Multiplies or screens the colors, depending on the source color value. [Separable Blend Modes] Creates a color with the hue of the source color and the saturation and luminosity of the backdrop color. [Non-Separable Blend Modes] Selects the lighter of the backdrop and source colors. [Separable Blend Modes] Creates a color with the luminosity of the source color and the hue and saturation of the backdrop color. [Non-Separable Blend Modes] Multiplies all components (= alpha and color). [Separable Blend Modes] The source color is multiplied by the destination color and replaces the destination [Separable Blend Modes] Multiplies or screens the colors, depending on the backdrop color value. [Separable Blend Modes] Display the sum of the source image and destination image. [Porter Duff Compositing Operators] Creates a color with the saturation of the source color and the hue and luminosity of the backdrop color. [Non-Separable Blend Modes] Multiplies the complements of the backdrop and source color values, then complements the result. [Separable Blend Modes] Darkens or lightens the colors, depending on the source color value. [Separable Blend Modes] Only the source will be present. [Porter Duff Compositing Operators] (https://drafts.fxtf.org/compositing-1/examples/PD_src.svg) Source which overlaps the destination, replaces the destination. [Porter Duff Compositing Operators] (https://drafts.fxtf.org/compositing-1/examples/PD_src-atop.svg) The source that overlaps the destination, replaces the destination. [Porter Duff Compositing Operators] (https://drafts.fxtf.org/compositing-1/examples/PD_src-in.svg) Source is placed, where it falls outside of the destination. [Porter Duff Compositing Operators] (https://drafts.fxtf.org/compositing-1/examples/PD_src-out.svg) Source is placed over the destination. [Porter Duff Compositing Operators] (https://drafts.fxtf.org/compositing-1/examples/PD_src-over.svg) The non-overlapping regions of source and destination are combined. [Porter Duff Compositing Operators] (https://drafts.fxtf.org/compositing-1/examples/PD_xor.svg) Flags to use with . Apply all the flags. Use a smother, higher quality blur algorithm. The blur layer's radius is not affected by transforms. Do not apply any of the flags. Blur types for the method and its overloads. Fuzzy inside; nothing outside. Fuzzy inside and outside. Nothing inside; fuzzy outside. Solid inside; fuzzy outside. Encapsulates all of the state about drawing into a device (bitmap or surface). property of a surface. ### Construction SkiaSharp has multiple backends which receive drawing commands, including: * Raster Surface * GPU Surface * PDF Document * XPS Document _(experimental)_ * SVG Canvas _(experimental)_ * Picture * Null Canvas _(for testing)_ #### Constructing a Raster Surface The raster backend draws to a block of memory. This memory can be managed by SkiaSharp or by the client. The recommended way of creating a canvas for the Raster and Ganesh backends is to use a , which is an object that manages the memory into which the canvas commands are drawn. ```csharp // define the surface properties var info = new SKImageInfo(256, 256); // construct a new surface var surface = SKSurface.Create(info); // get the canvas from the surface var canvas = surface.Canvas; // draw on the canvas ... ``` Alternatively, we could have specified the memory for the surface explicitly, instead of asking SkiaSharp to manage it. ```csharp // define the surface properties var info = new SKImageInfo(256, 256); // allocate memory var memory = Marshal.AllocCoTaskMem(info.BytesSize); // construct a surface around the existing memory var surface = SKSurface.Create(info, memory, info.RowBytes); // get the canvas from the surface var canvas = surface.Canvas; // draw on the canvas ... ``` #### Constructing a GPU Surface GPU surfaces must have a object which manages the GPU context, and related caches for textures and fonts. objects are matched one to one with OpenGL contexts or Vulkan devices. That is, all instances that will be rendered to using the same OpenGL context or Vulkan device should share a . SkiaSharp does not create an OpenGL context or a Vulkan device for you. In OpenGL mode it also assumes that the correct OpenGL context has been made current to the current thread when SkiaSharp calls are made. ```csharp // an OpenGL context must be created and set as current // define the surface properties var info = new SKImageInfo(256, 256); // create the surface var context = GRContext.CreateGl(); var surface = SKSurface.Create(context, false, info); // get the canvas from the surface var canvas = surface.Canvas; // draw on the canvas ... ``` #### Constructing a PDF Document The PDF backend uses instead of , since a document must include multiple pages. ```csharp // create the document var stream = SKFileWStream.OpenStream("document.pdf"); var document = SKDocument.CreatePdf(stream); // get the canvas from the page var canvas = document.BeginPage(256, 256); // draw on the canvas ... // end the page and document document.EndPage(); document.Close(); ``` #### Constructing a XPS Document _(experimental)_ The XPS backend uses instead of , since a document must include multiple pages. ```csharp // create the document var stream = SKFileWStream.OpenStream("document.xps"); var document = SKDocument.CreateXps(stream); // get the canvas from the page var canvas = document.BeginPage(256, 256); // draw on the canvas ... // end the page and document document.EndPage(); document.Close(); ``` #### Constructing a SVG Canvas _(experimental)_ The SVG backend uses . ```csharp // create the canvas var stream = SKFileWStream.OpenStream("image.svg"); var writer = new SKXmlStreamWriter(stream); var canvas = SKSvgCanvas.Create(SKRect.Create(256, 256), writer); // draw on the canvas ... ``` #### Constructing a Picture The XPS backend uses instead of . ```csharp // create the picture recorder var recorder = new SKPictureRecorder(); // get the canvas from the page var canvas = recorder.BeginRecording(SKRect.Create(256, 256)); // draw on the canvas ... // finish recording var picture = recorder.EndRecording(); ``` #### Constructing a Null Canvas _(for testing)_ The null canvas is a canvas that ignores all drawing commands and does nothing. ```csharp // create the dummy canvas var canvas = new SKNoDrawCanvas(256, 256); // draw on the canvas ... ``` ### Transformations The canvas supports a number of 2D transformations. Unlike other 2D graphic systems like CoreGraphics or Cairo, SKCanvas extends the transformations to include perspectives. You can use the , , , , to perform some of the most common 2D transformations. For more control you can use the to set an arbitrary transformation using the and the to concatenate an transformation to the current matrix in use. The can be used to reset the state of the matrix. ### Drawing The drawing operations can take a parameter to affect their drawing. You use objects to cache the style and color information to draw geometries, texts and bitmaps. ### Clipping and State It is possible to save the current transformations by calling the method which preserves the current transformation matrix, you can then alter the matrix and restore the previous state by using the or methods. Additionally, it is possible to push a new state with which will make an offscreen copy of a region, and once the drawing is completed, calling the method which copies the offscreen bitmap into this canvas. ## Examples ```csharp var info = new SKImageInfo(640, 480); using (var surface = SKSurface.Create(info)) { SKCanvas canvas = surface.Canvas; canvas.Clear(SKColors.White); // set up drawing tools var paint = new SKPaint { IsAntialias = true, Color = new SKColor(0x2c, 0x3e, 0x50), StrokeCap = SKStrokeCap.Round }; // create the Xamagon path var path = new SKPath(); path.MoveTo(71.4311121f, 56f); path.CubicTo(68.6763107f, 56.0058575f, 65.9796704f, 57.5737917f, 64.5928855f, 59.965729f); path.LineTo(43.0238921f, 97.5342563f); path.CubicTo(41.6587026f, 99.9325978f, 41.6587026f, 103.067402f, 43.0238921f, 105.465744f); path.LineTo(64.5928855f, 143.034271f); path.CubicTo(65.9798162f, 145.426228f, 68.6763107f, 146.994582f, 71.4311121f, 147f); path.LineTo(114.568946f, 147f); path.CubicTo(117.323748f, 146.994143f, 120.020241f, 145.426228f, 121.407172f, 143.034271f); path.LineTo(142.976161f, 105.465744f); path.CubicTo(144.34135f, 103.067402f, 144.341209f, 99.9325978f, 142.976161f, 97.5342563f); path.LineTo(121.407172f, 59.965729f); path.CubicTo(120.020241f, 57.5737917f, 117.323748f, 56.0054182f, 114.568946f, 56f); path.LineTo(71.4311121f, 56f); path.Close(); // draw the Xamagon path canvas.DrawPath(path, paint); } ``` ]]> The bitmap for the canvas to draw into. Creates a canvas with the specified bitmap to draw into. The structure of the bitmap is copied into the canvas. Replaces all the pixels in the canvas' current clip with the color. The color to use to replace the pixels in the current clipping region. Replaces all the pixels in the canvas' current clip with the specified color. The color to fill the canvas with. Fills the entire canvas with the specified color. The path to combine with the current clip. The clip operator to apply to the current clip. to antialias the clip; otherwise, . Modify the current clip with the specified path. The rectangle to combine with the current clip. The clip operator to apply to the current clip. to antialias the clip; otherwise, . Modify the current clip with the specified rectangle. The region to combine with the current clip. The region operator to apply to the current clip. Modify the current clip with the specified region. The rounded rectangle to combine with the current clip. The clip operator to apply to the current clip. to antialias the clip; otherwise, . Modify the current clip with the specified rounded rectangle. Transformation matrix to pre-concatenate. Pre-concatenates the provided transformation matrix with the current transformation matrix. The 4x4 matrix to concatenate with the current matrix. Pre-concatenates the current matrix with the specified 4x4 matrix. Gets the GPU recording context associated with this canvas. The GPU recording context, or if not GPU-accelerated. Gets the bounds of the current clip (in device coordinates). The bounds of the current clip in device coordinates. Makes the canvas contents undefined. , return undefined results. Calling this method does not change clip or matrix and may do nothing, depending on the implementation of the underlying . allows optimized performance on subsequent draws by removing cached data associated with the underlying . It is not necessary to call once done with ; any cached data is deleted when the owning is deleted. ]]> to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. The bounds of the annotation. The name of the annotation. The blob of data to attach to the annotation. Send an key/value pair "annotation" to the canvas. The bounding rectangle of the oval containing the arc. The starting angle (in degrees) where the arc begins. The sweep angle (in degrees) measured clockwise. Whether to include the center of the oval in the drawing. The paint used to draw the arc. Draws an arc on the canvas. The image atlas containing the sprites. The source rectangles within the atlas for each sprite. The rotation-scale transforms for each sprite. The paint used to draw the sprites, or . Draws a set of sprites from an atlas image with transforms. The image atlas containing the sprites. The source rectangles within the atlas for each sprite. The rotation-scale transforms for each sprite. The sampling options for image filtering. The paint used to draw the sprites, or . Draws a set of sprites from an atlas image with transforms and sampling options. The image atlas containing the sprites. The source rectangles within the atlas for each sprite. The rotation-scale transforms for each sprite. The colors to blend with each sprite, or . The blend mode used when colors are specified. The paint used to draw the sprites, or . Draws a set of sprites from an atlas image with color blending. The image atlas containing the sprites. The source rectangles within the atlas for each sprite. The rotation-scale transforms for each sprite. The colors to blend with each sprite, or . The blend mode used when colors are specified. The rectangle to cull sprites that fall outside. The paint used to draw the sprites, or . Draws a set of sprites from an atlas image with culling support. The image atlas containing the sprites. The source rectangles within the atlas for each sprite. The rotation-scale transforms for each sprite. The colors to blend with each sprite, or . The blend mode used when colors are specified. The sampling options for image filtering. The paint used to draw the sprites, or . Draws a set of sprites from an atlas image with sampling and color blending. The image atlas containing the sprites. The source rectangles within the atlas for each sprite. The rotation-scale transforms for each sprite. The colors to blend with each sprite, or . The blend mode used when colors are specified. The sampling options for image filtering. The rectangle to cull sprites that fall outside. The paint used to draw the sprites, or . Draws a set of sprites from an atlas image with all options. The bitmap to draw. The destination coordinates for the bitmap. The paint to use when drawing the bitmap. Draws a bitmap on the canvas. The bitmap to draw. The region to draw the bitmap into. The paint to use when drawing the bitmap. Draws a bitmap on the canvas. The bitmap to draw. The source region to copy. The region to draw the bitmap into. The paint to use when drawing the bitmap. Draws a bitmap on the canvas. The bitmap to draw. The destination x-coordinate for the bitmap. The destination y-coordinate for the bitmap. The paint to use when drawing the bitmap. Draws a bitmap on the canvas. The bitmap to draw. The lattice that describes the areas of the bitmap to stretch or shrink. The region to draw the bitmap into. The paint to use when drawing the bitmap. Draws the bitmap, stretched or shrunk differentially to fit into the destination rectangle. The bitmap to draw. The lattice divider specifying how to divide the bitmap. The destination rectangle to draw into. The filter mode for scaling. The paint used when drawing the bitmap, or . Draws a bitmap using lattice (nine-patch) scaling with the specified filter mode. The bitmap to draw. The x-coordinates that divide the bitmap vertically, describing the areas to stretch or shrink. The y-coordinates that divide the bitmap horizontally, describing the areas to stretch or shrink. The region to draw the bitmap into. The paint to use when drawing the bitmap. Draws the bitmap, stretched or shrunk differentially to fit into the destination rectangle. The bitmap to draw. The x-coordinates that divide the bitmap vertically. The y-coordinates that divide the bitmap horizontally. The destination rectangle to draw into. The filter mode for scaling. The paint used when drawing the bitmap, or . Draws a bitmap using lattice scaling with explicit divisions and filter mode. The bitmap to draw. The center region within the bitmap to logically divide the bitmap into 9 sections (3x3). The region to draw the bitmap into. The paint to use when drawing the bitmap. Draws the bitmap, stretched or shrunk differentially to fit into the destination rectangle. The bitmap to draw. The center rectangle that remains unscaled. The destination rectangle to draw into. The filter mode for scaling. The paint used when drawing the bitmap, or . Draws a bitmap using nine-patch scaling with the specified filter mode. The center coordinates. The radius for the circle. The paint to use when drawing the circle. Draws a circle on the canvas. The center x-coordinate. The center y-coordinate. The radius for the circle. The paint to use when drawing the circle. Draws a circle on the canvas. The color to use to paint the clipping region. The blend mode for the color. Fills the current clipping area with the specified color using the specified color and blend mode. The color to fill the canvas with. The blend mode to use when filling. Fills the entire canvas with the specified color using the blend mode. The drawable to draw. The matrix to apply while painting. Draws a drawable on the canvas. The drawable to draw. The destination coordinates for the drawable. Draws a drawable on the canvas. The drawable to draw. The destination x-coordinate for the drawable. The destination y-coordinate for the drawable. Draws a drawable on the canvas. The image to draw. The destination coordinates for the image. The paint to use when drawing the image, or . Draws an image on the canvas. The image to draw. The region to draw the image into. The paint to use when drawing the image, or . Draws an image on the canvas. The image to draw. The point at which to draw the image. The sampling options for image filtering. The paint used when drawing the image, or . Draws an image at the specified point with sampling options. The image to draw. The source region to copy. The region to draw the image into. The paint to use when drawing the image, or . Draws an image on the canvas. The image to draw. The destination rectangle to draw the image into. The sampling options for image filtering. The paint used when drawing the image, or . Draws an image scaled to fit the destination rectangle with sampling options. The image to draw. The destination x-coordinate for the image. The destination y-coordinate for the image. The paint to use when drawing the image, or . Draws an image on the canvas. The image to draw. The source rectangle within the image. The destination rectangle to draw the image into. The sampling options for image filtering. The paint used when drawing the image, or . Draws a portion of an image scaled to fit the destination rectangle with sampling options. The image to draw. The x-coordinate of the left edge of the image. The y-coordinate of the top edge of the image. The sampling options for image filtering. The paint used when drawing the image, or . Draws an image at the specified coordinates with sampling options. The image to draw. The lattice that describes the areas of the image to stretch or shrink. The region to draw the image into. The paint to use when drawing the image, or . Draws the image, stretched or shrunk differentially to fit into the destination rectangle. The image to draw. The lattice divider specifying how to divide the image. The destination rectangle to draw into. The filter mode for scaling. The paint used when drawing the image, or . Draws an image using lattice (nine-patch) scaling with the specified filter mode. The image to draw. The x-coordinates that divide the image vertically, describing the areas to stretch or shrink. The Y-coordinates that divide the image horizontally, describing the areas to stretch or shrink. The region to draw the image into. The paint to use when drawing the image, or . Draws the image, stretched or shrunk differentially to fit into the destination rectangle. The image to draw. The x-coordinates that divide the image vertically. The y-coordinates that divide the image horizontally. The destination rectangle to draw into. The filter mode for scaling. The paint used when drawing the image, or . Draws an image using lattice scaling with explicit divisions and filter mode. The image to draw. The center region within the image to logically divide the image into 9 sections (3x3). The region to draw the image into. The paint to use when drawing the image, or . Draws the image, stretched or shrunk differentially to fit into the destination rectangle. The image to draw. The center rectangle that remains unscaled. The destination rectangle to draw into. The filter mode for scaling. The paint used when drawing the image, or . Draws an image using nine-patch scaling with the specified filter mode. The first point coordinates. The second point coordinates. The paint to use when drawing the line. Draws a line on the canvas. The first point x-coordinate. The first point y-coordinate. The second point x-coordinate. The second point y-coordinate. The paint to use when drawing the line. Draws a line on the canvas. The bounds of the annotation. The data that specifies the name of the link's destination. Annotates the canvas by making the specified rectangle link to a named destination (see ). The bounds of the annotation. The name of the link's destination. Annotates the canvas by making the specified rectangle link to a named destination (see ). Returns the actual data object that was attached to the canvas. If the backend of this canvas does not support annotations, this call is safely ignored. The location of the destination. The data that specifies the name of the destination. Annotates the canvas by associating a name with the specified point (see ). The location of the destination. The name of the destination. Annotates the canvas by associating a name with the specified point (see ). Returns the actual data object that was attached to the canvas. If the backend of this canvas does not support annotations, this call is safely ignored. The bounding box for the oval. The paint to use when drawing the oval. Draws an oval on the canvas. The center coordinates. The radius for the oval. The paint to use when drawing the oval. Draws an oval on the canvas. The center x-coordinate. The center y-coordinate. The vertical radius for the oval. The horizontal radius for the oval. The paint to use when drawing the oval. Draws an oval on the canvas. The paint used to fill the current clipping path. Fills the current clipping path with the specified paint. The 12 cubic control points defining the patch boundaries. The 4 corner colors for bilinear interpolation, or . The 4 texture coordinates for the corners, or . The paint used to draw the patch. Draws a Coons patch on the canvas. The 12 cubic control points defining the patch boundaries. The 4 corner colors for bilinear interpolation, or . The 4 texture coordinates for the corners, or . The blend mode used when colors are specified. The paint used to draw the patch. Draws a Coons patch on the canvas with the specified blend mode. The path to draw. The paint to use when drawing the path. Draws a path in the canvas. The picture to draw. The paint to use when drawing the picture, or . Draws a picture on the canvas. The picture to draw. The matrix to apply while painting. The paint to use when drawing the picture, or . Draws a picture on the canvas. , followed by with the specified `matrix`, and then . If paint is non-null, the picture is drawn into a temporary buffer, and then the paint's alpha, color filter, image filter, blend mode are applied to that buffer as it is drawn to the canvas. ]]> The picture to draw. The destination coordinates for the picture. The paint to use when drawing the picture, or . Draws a picture on the canvas. The picture to draw. The destination x-coordinate for the picture. The destination y-coordinate for the picture. The paint to use when drawing the picture, or . Draws a picture on the canvas. The coordinates for the point to draw. The color to use. Draws a point in the canvas with the specified color. The coordinates for the point to draw. The paint to use when drawing the point. Draws a point in the canvas with the specified color. The x-coordinate for the point to draw. The y-coordinate for the point to draw. The color to use. Draws a point in the canvas with the specified color. The x-coordinate for the point to draw. The y-coordinate for the point to draw. The paint to use when drawing the point. Draws a point in the canvas with the specified color. Determines how the points array will be interpreted: as points, as coordinates to draw lines, or as coordinates of a polygon. The array of points to draw. The paint to use when drawing the points. Draws an array of points, lines or a polygon in the canvas, one at a time. , each point is drawn centered at its coordinate, and its size is specified by the paint's stroke-width. It draws as a square, unless the paint's is , in which the points are drawn as circles. For , each pair of points is drawn as a line segment, respecting the paint's settings for cap, join and width. For , the entire array is drawn as a series of connected line segments. Note that, while similar, the line and polygon modes draw slightly differently than the equivalent path built with a series of move to, line to calls, in that the path will draw all of its contours at once, with no interactions if contours intersect each other (think ). ]]> The text to draw. The positions for each glyph in the string. The paint to use when drawing the text. Draws glyphs of the text at specified locations on the canvas. The text to draw. The positions for each glyph in the string. The paint to use when drawing the text. Draws glyphs of the text at specified locations on the canvas. The pointer to a region holding UTF-8 encoded text to draw. The number of bytes to read from the The positions for each glyph in the The paint to use when drawing the text. Draws text from a UTF-8 buffer at specified locations on the canvas. The rectangle to draw. The paint to use when drawing the rectangle. Draws a rectangle in the canvas. The x-coordinate. The y-coordinate. The rectangle width. The rectangle height. The paint to use when drawing the rectangle. Draws a rectangle in the canvas. The region to be drawn. The paint to use when drawing the region. Draws the outline of the specified region using the specified paint. The rounded rectangle to draw. The paint to use when drawing the rectangle. Draws a rounded rectangle in the canvas. The paint to use when drawing the rounded rectangle. The rectangle to draw. The radius of the oval used to round the corners. The paint to use when drawing the rectangle. Draws a rounded rectangle in the canvas. The paint to use when drawing the rectangle. The rectangle to draw. The x-radius of the oval used to round the corners. The y-radius of the oval used to round the corners. The paint to use when drawing the rectangle. Draws a rounded rectangle in the canvas. The x-coordinate of the rectangle. The y-coordinate of the rectangle. The rectangle width. The rectangle height. The x-radius of the oval used to round the corners. The y-radius of the oval used to round the corners. The paint to use when drawing the rectangle. Draws a rounded rectangle in the canvas. The outer rounded rectangle. The inner rounded rectangle to subtract. The paint used to draw the region. Draws the region between two rounded rectangles. The surface to draw. The destination coordinates for the surface. The paint to use when drawing the surface, or . Draws a surface on the canvas. The surface to draw. The destination x-coordinate for the surface. The destination y-coordinate for the surface. The paint to use when drawing the surface, or . Draws a surface on the canvas. The text to draw. The coordinates of the origin of the text being drawn. The paint to use when drawing the text. Draws text on the canvas at the specified coordinates. The text to draw. The coordinates of the origin of the text being drawn. The paint to use when drawing the text. Draws text on the canvas at the specified coordinates. The text blob to draw. The x-coordinate of the origin of the text being drawn. The y-coordinate of the origin of the text being drawn. The paint to use when drawing the text. Draws a text blob on the canvas at the specified coordinates. The text to draw. The x-coordinate of the origin of the text being drawn. The y-coordinate of the origin of the text being drawn. The paint to use when drawing the text. Draws text on the canvas at the specified coordinates. The pointer to a region holding UTF-8 encoded text to draw. The number of bytes to read from the The coordinates of the origin of the text being drawn. The paint to use when drawing the text. Draws text encoded in a UTF-8 buffer on the canvas at the specified coordinates. The text to draw. The point at which to draw the text. The font used to render the text. The paint used to draw the text. Draws text at the specified point using the specified font. The text to draw. The x-coordinate of the origin of the text being drawn. The y-coordinate of the origin of the text being drawn. The paint to use when drawing the text. Draws text on the canvas at the specified coordinates. The pointer to a region holding UTF-8 encoded text to draw. The number of bytes to read from the The x-coordinate of the origin of the text being drawn. The y-coordinate of the origin of the text being drawn. The paint to use when drawing the text. Draws text encoded in a UTF-8 buffer on the canvas at the specified coordinates. The text to draw. The point at which to draw the text. The text alignment relative to the point. The font used to render the text. The paint used to draw the text. Draws text at the specified point with alignment. The text to draw. The x-coordinate of the origin of the text. The y-coordinate of the origin of the text. The font used to render the text. The paint used to draw the text. Draws text at the specified coordinates. The text to draw. The x-coordinate of the text origin. The y-coordinate of the text origin. The text alignment relative to the coordinates. The font used to render the text. The paint used to draw the text. Draws text at the specified coordinates with alignment. The text to draw. The path the text should follow for its baseline. The offset to the path to add to the text's starting position. The paint to use when drawing the text. Draws text on the canvas following a path. The text to draw. The path the text should follow for its baseline. The offset to the path to add to the text's starting position. The paint to use when drawing the text. Draws text on the canvas following a path. The text to draw. The path the text should follow for its baseline. The distance along the path to add to the text's starting position. The distance above (-) or below (+) the path to position the text. The paint to use when drawing the text. Draws text on the canvas following a path. The pointer to a region holding UTF-8 encoded text to draw. The number of bytes to read from the The path the text should follow for its baseline. The offset to the path to add to the text's starting position. The paint to use when drawing the text. Draws text on the canvas following a path. The text to draw. The path along which to draw the text. The offset from the path origin. The font used to render the text. The paint used to draw the text. Draws text along a path using the specified font. The text to draw. The path along which to draw the text. The offset from the path origin. Whether to warp the glyphs to follow the path curvature. The paint used to draw the text. Draws text along a path with optional glyph warping. The text to draw. The path the text should follow for its baseline. The distance along the path to add to the text's starting position. The distance above (-) or below (+) the path to position the text. The paint to use when drawing the text. Draws text on the canvas following a path. The pointer to a region holding UTF-8 encoded text to draw. The number of bytes to read from the The path the text should follow for its baseline. The distance along the path to add to the text's starting position. The distance above (-) or below (+) the path to position the text. The paint to use when drawing the text. Draws text encoded in a UTF-8 buffer on the canvas following a path. The text to draw. The path along which to draw the text. The offset from the path origin. The text alignment along the path. The font used to render the text. The paint used to draw the text. Draws text along a path with alignment using the specified font. The text to draw. The path along which to draw the text. The offset from the path origin. Whether to warp the glyphs to follow the path curvature. The font used to render the text. The paint used to draw the text. Draws text along a path with optional glyph warping using the specified font. The text to draw. The path along which to draw the text. The horizontal offset along the path. The vertical offset from the path. The font used to render the text. The paint used to draw the text. Draws text along a path with horizontal and vertical offsets. The text to draw. The path along which to draw the text. The offset from the path origin. Whether to warp the glyphs to follow the path curvature. The text alignment along the path. The font used to render the text. The paint used to draw the text. Draws text along a path with alignment and optional glyph warping. The text to draw. The path along which to draw the text. The horizontal offset along the path. The vertical offset from the path. The text alignment along the path. The font used to render the text. The paint used to draw the text. Draws text along a path with offsets and alignment. The bounds of the annotation. The data that specifies the URL. Annotates the canvas by associating the specified URL with the specified rectangle (in local coordinates). The bounds of the annotation. The URL. Annotates the canvas by associating the specified URL with the specified rectangle (in local coordinates). Returns the actual data object that was attached to the canvas. If the backend of this canvas does not support annotations, this call is safely ignored. The mesh to draw. The blend mode to use to combine the colors with the texture, before being drawn using the paint. Used if both texture coordinates and colors are present. The shader/texture. Draws a set of vertices. If both textures and vertex-colors are , it strokes hairlines with the paint's color. This behavior is a useful debugging mode to visualize the mesh. How to interpret the array of vertices. The array of vertices for the mesh. The color for each vertex, to be interpolated across the triangle. May be . The shader/texture. Draws an array of vertices, interpreted as triangles (based on mode). How to interpret the array of vertices. The array of vertices for the mesh. The coordinates in texture space (not UV space) for each vertex. May be . The color for each vertex, to be interpolated across the triangle. May be . The shader/texture. Draws an array of vertices, interpreted as triangles (based on mode). If both textures and vertex-colors are , it strokes hairlines with the paint's color. This behavior is a useful debugging mode to visualize the mesh. How to interpret the array of vertices. The array of vertices for the mesh. The coordinates in texture space (not UV space) for each vertex. May be . The color for each vertex, to be interpolated across the triangle. May be . The array of indices to reference into the vertex (texture coordinates, colors) array. The shader/texture. Draws an array of vertices, interpreted as triangles (based on mode). If both textures and vertex-colors are , it strokes hairlines with the paint's color. This behavior is a useful debugging mode to visualize the mesh. How to interpret the array of vertices. The array of vertices for the mesh. The coordinates in texture space (not UV space) for each vertex. May be . The color for each vertex, to be interpolated across the triangle. May be . The blend mode to use to combine the colors with the texture, before being drawn using the paint. Used if both texture coordinates and colors are present. The array of indices to reference into the vertex (texture coordinates, colors) array. The shader/texture. Draws an array of vertices, interpreted as triangles (based on mode). If both textures and vertex-colors are , it strokes hairlines with the paint's color. This behavior is a useful debugging mode to visualize the mesh. Triggers the immediate execution of all pending draw operations. For the GPU backend this will resolve all rendering to the GPU surface backing the surface that owns this canvas. The resulting clip bounds. Returns the bounds of the current clip (in device coordinates). if the clip bounds are non-empty; otherwise, . The resulting clip bounds. Returns the bounds of the current clip (in local coordinates). if the clip bounds are non-empty; otherwise, . This can be useful in that it tells you that drawing outside of these bounds will be clipped out. Gets a value indicating whether the current clip is empty. if the clip is empty; otherwise, . Gets a value indicating whether the current clip is a rectangle. if the clip is a rectangle; otherwise, . Gets the bounds of the current clip (in local coordinates). The bounds of the current clip in local coordinates. The path to compare with the current clip. Checks to see if the specified path, after being transformed by the current matrix, would lie completely outside of the current clip. if the path (transformed by the canvas' matrix) does not intersect with the canvas' clip. Call this to check if an area you intend to draw into is clipped out (and therefore you can skip making the draw calls). The rectangle to compare with the current clip. Checks to see if the specified rectangle, after being transformed by the current matrix, would lie completely outside of the current clip. if the rectangle (transformed by the canvas' matrix) does not intersect with the canvas' clip. Call this to check if an area you intend to draw into is clipped out (and therefore you can skip making the draw calls). Sets the current matrix to identity. Restore the canvas state. This call balances a previous call to , and is used to remove all modifications to the matrix, clip and draw filter state since the last save call. It is an error to restore more times than was previously saved. The number of levels to restore from, or -1 to restore all the way back to the initial value. Efficiently restores the state to a specific level. Efficient way to pop any calls to that happened after the save count reached . It is an error for to be greater than . To pop all the way back to the initial matrix/clip context set count to -1. The number of degrees to rotate. Pre-concatenates the current matrix with the specified rotation. The number of degrees to rotate. The x-coordinate of the point to rotate about. The y-coordinate of the point to rotate about. Pre-concatenates the current matrix with the specified rotation, around the specified point. The number of radians to rotate. Pre-concatenates the current matrix with the specified rotation. The number of radians to rotate. The x-coordinate of the point to rotate about. The y-coordinate of the point to rotate about. Pre-concatenates the current matrix with the specified rotation, around the specified point. Saves the canvas state. The value to pass to to balance this save. This call saves the current matrix, clip, and draw filter, and pushes a copy onto a private stack. Subsequent calls to translate, scale, rotate, skew, concatenate or clipping path or drawing filter all operate on this copy. When the balancing call to is made, the previous matrix, clipping, and drawing filters are restored. Gets the number of matrix/clip states on the canvas' private stack. The number of saved states on the stack. This will equal the number of calls minus calls + 1. The save count on a new canvas is 1. Saves the current matrix and clip, and allocates an offscreen buffer for subsequent drawing. The depth of the saved stack, which can be used with . The save layer parameters. Saves the current matrix and clip, and allocates an offscreen buffer using the specified parameters. The depth of the saved stack. This is copied, and is applied to the offscreen when is called. Saves the canvas state and allocates an offscreen bitmap. The value to pass to to balance this save. This behaves the same as but in addition it allocates an offscreen bitmap. All drawing calls are directed there, and only when the balancing call to is made is that offscreen transfered to the canvas (or the previous layer). This clipping rectangle hint to limit the size of the offscreen bitmap. This is copied, and is applied to the offscreen when is called. Saves the canvas state and allocates an offscreen bitmap. The value to pass to to balance this save. but in addition it allocates an offscreen bitmap. All drawing calls are directed there, and only when the balancing call to is made is that offscreen transfered to the canvas (or the previous layer). The limit rectangle, is used as a hint to limit the size of the offscreen bitmap, and thus drawing may be clipped to it, though that clipping is not guaranteed to happen. If exact clipping is desired, use . ]]> The amount to scale. Pre-concatenates the current matrix with the specified scale. The amount to scale. Pre-concatenates the current matrix with the specified scale. The amount to scale in the x-direction. The amount to scale in the y-direction. Pre-concatenates the current matrix with the specified scale. The amount to scale in the x-direction. The amount to scale in the y-direction. The x-coordinate for the scaling center. The y-coordinate for the scaling center. Pre-concatenates the current matrix with the specified scale, at the specific offset. The matrix to set as the current transformation matrix. Replaces the current matrix with a copy of the specified matrix. The matrix that will be copied into the current matrix. Replaces the current matrix with a copy of the specified matrix. The 4x4 matrix to set as the current transformation matrix. Replaces the current matrix with a copy of the specified 4x4 matrix. The amount to skew. Pre-concatenates the current matrix with the specified skew. The amount to skew in the x-direction. The amount to skew in the y-direction. Pre-concatenates the current matrix with the specified skew. Gets the surface associated with this canvas. The that owns this canvas, or if none. Gets the current matrix on the canvas. The current transformation matrix. This does not account for the translate in any of the devices. Gets the current 4x4 transformation matrix on the canvas. The current 4x4 matrix. The distance to translate. Pre-concatenates the current matrix with the specified translation. The distance to translate in the x-direction. The distance to translate in the y-direction. Pre-concatenates the current matrix with the specified translation. Contains the configuration for saving a layer on an . Gets or sets the image filter to apply to the existing canvas content beneath the layer. The backdrop filter, or for no filter. Gets or sets the bounds to use for the layer. The layer bounds, or to use the full canvas bounds. Gets or sets the flags that control layer behavior. The layer flags. Gets or sets the paint to use when compositing the layer into the canvas. The paint, or for default compositing. Specifies the options for saving a layer on an . Allocates the layer in 16-bit floating-point color format for higher precision. Initializes the layer with a copy of the previous layer content. No special flags; use default layer behavior. Preserves LCD text rendering quality within the layer. The logical operations that can be performed when combining two regions. Subtract the op region from the first region. Intersect the two regions. An abstraction layer directly on top of an image codec. The data to use when creating the codec. Creates a codec from the specified data. Returns the new instance of the codec, or if there was an error. The stream to use when creating the codec. Creates a codec from the specified stream. Returns the new instance of the codec, or if there was an error. If is returned, the stream is deleted immediately. Otherwise, the codec takes ownership of it, and will delete it when done with it. The stream to use when creating the codec. Creates a codec from the specified stream. Returns the new instance of the codec, or if there was an error. If is returned, the stream is deleted immediately. Otherwise, the codec takes ownership of it, and will delete it when done with it. The path to an encoded image on the file system. Creates a codec from the specified file. Returns the new instance of the codec, or if there was an error. The stream to use when creating the codec. The result of the creation operation. Creates a codec from the specified stream. Returns the new instance of the codec, or if there was an error. If is returned, the stream is deleted immediately. Otherwise, the codec takes ownership of it, and will delete it when done with it. The stream to use when creating the codec. The result of the creation operation. Creates a codec from the specified stream. Returns the new instance of the codec, or if there was an error. If is returned, the stream is deleted immediately. Otherwise, the codec takes ownership of it, and will delete it when done with it. The path to an encoded image on the file system. The result of the creation operation. Creates a codec from the specified file. Returns the new instance of the codec, or if there was an error. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. Gets the image encoding from the codec. One of the enumeration values that specifies the image encoding format. Gets the image origin from the codec. One of the enumeration values that specifies the image origin. Gets the number of frames in the encoded image. The number of frames in the encoded image. May require reading through the stream to determine info about the frames. As such, future decoding calls may require a rewind. For single-frame images, this will be zero. Gets information about the frames in the encoded image. An array of frame information for all frames in the encoded image. May require reading through the stream to determine info about the frames. As such, future decoding calls may require a rewind. For single-frame images, this will be an empty array. The index of the frame to retrieve. The information about the frame. Gets information about a specific frame in the encoded image. if the frame was successfully read; otherwise, . May require reading through the stream to determine info about the frames. As such, future decoding calls may require a rewind. The scanline that is located in the encoded data. Returns the output y-coordinate of the row that corresponds to an input y-coordinate. Returns the output y-coordinate of the row. This will equal , except in the case of strangely encoded image types (bottom-up BMPs, interlaced GIFs). The memory block with the decoded bitmap. Decode the bitmap into the specified memory block. Returns on success, or another value explaining the type of failure. The description of the desired output format expected by the caller. The memory block to hold the decoded bitmap, with a length of at least . Decode the bitmap into the specified memory block. Returns on success, or another value explaining the type of failure. , can either be , or a new instance with a different configuration - which the codec may choose to ignore. If the specified size is different from the size from , then the codec will attempt to scale the resulting bitmap. If the codec cannot perform this scale, this method will return . ]]> The description of the desired output format expected by the caller. The memory block with the decoded bitmap. Decode the bitmap into the specified memory block. Returns on success, or another value explaining the type of failure. , can either be , or a new instance with a different configuration - which the codec may choose to ignore. If the specified size is different from the size from , then the codec will attempt to scale the resulting bitmap. If the codec cannot perform this scale, this method will return . ]]> The description of the desired output format expected by the caller. The memory block to hold the decoded bitmap, with a total size of at least . Decode the bitmap into the specified memory block. Returns on success, or another value explaining the type of failure. , can either be , or a new instance with a different configuration - which the codec may choose to ignore. If the specified size is different from the size from , then the codec will attempt to scale the resulting bitmap. If the codec cannot perform this scale, this method will return . ]]> The description of the desired output format expected by the caller. The memory block to hold the decoded bitmap, with a total size of at least . The bitmap decoding options. Decode the bitmap into the specified memory block. Returns on success, or another value explaining the type of failure. , can either be , or a new instance with a different configuration - which the codec may choose to ignore. If the specified size is different from the size from , then the codec will attempt to scale the resulting bitmap. If the codec cannot perform this scale, this method will return . ]]> The description of the desired output format expected by the caller. The memory block to hold the decoded bitmap, with a total size of at least . The color table to hold the color entries. The logical number of color table entries. Developers should not use this obsolete method. Returns on success, or another value explaining the type of failure. , can either be , or a new instance with a different configuration - which the codec may choose to ignore. If the specified size is different from the size from , then the codec will attempt to scale the resulting bitmap. If the codec cannot perform this scale, this method will return . ]]> The description of the desired output format expected by the caller. The memory block to hold the decoded bitmap, with a total size of at least . The number of bytes in a row, typically . The bitmap decoding options. Decode the bitmap into the specified memory block. Returns on success, or another value explaining the type of failure. , can either be , or a new instance with a different configuration - which the codec may choose to ignore. If the specified size is different from the size from , then the codec will attempt to scale the resulting bitmap. If the codec cannot perform this scale, this method will return . ]]> The description of the desired output format expected by the caller. The memory block to hold the decoded bitmap, with a total size of at least . The pointer to the color table to hold the color entries, with a length of at least (256). The logical number of color table entries. Decode the bitmap into the specified memory block. Returns on success, or another value explaining the type of failure. , can either be , or a new instance with a different configuration - which the codec may choose to ignore. If the specified size is different from the size from , then the codec will attempt to scale the resulting bitmap. If the codec cannot perform this scale, this method will return . ]]> The description of the desired output format expected by the caller. The memory block to hold the decoded bitmap, with a total size of at least . The bitmap decoding options. The color table to hold the color entries. The logical number of color table entries. Decode the bitmap into the specified memory block. Returns on success, or another value explaining the type of failure. , can either be , or a new instance with a different configuration - which the codec may choose to ignore. If the specified size is different from the size from , then the codec will attempt to scale the resulting bitmap. If the codec cannot perform this scale, this method will return . ]]> The description of the desired output format expected by the caller. The memory block to hold the decoded bitmap, with a total size of at least . The bitmap decoding options. The pointer to the color table to hold the color entries, with a length of at least (256). The logical number of color table entries. Decode the bitmap into the specified memory block. Returns on success, or another value explaining the type of failure. , can either be , or a new instance with a different configuration - which the codec may choose to ignore. If the specified size is different from the size from , then the codec will attempt to scale the resulting bitmap. If the codec cannot perform this scale, this method will return . ]]> The description of the desired output format expected by the caller. The memory block to hold the decoded bitmap, with a total size of at least . The number of bytes in a row, typically . The bitmap decoding options. The color table to hold the color entries. The logical number of color table entries. Decode the bitmap into the specified memory block. Returns on success, or another value explaining the type of failure. , can either be , or a new instance with a different configuration - which the codec may choose to ignore. If the specified size is different from the size from , then the codec will attempt to scale the resulting bitmap. If the codec cannot perform this scale, this method will return . ]]> The description of the desired output format expected by the caller. The memory block to hold the decoded bitmap, with a total size of at least . The number of bytes in a row, typically . The bitmap decoding options. The pointer to the color table to hold the color entries, with a length of at least (256). The logical number of color table entries. Decode the bitmap into the specified memory block. Returns on success, or another value explaining the type of failure. , can either be , or a new instance with a different configuration - which the codec may choose to ignore. If the specified size is different from the size from , then the codec will attempt to scale the resulting bitmap. If the codec cannot perform this scale, this method will return . ]]> The desired scale factor. Returns a size that approximately supports the desired scale factor. Returns a supported size. The codec may not be able to scale efficiently to the exact scale factor requested, so return a size that approximates that scale. Upscaling is not supported, so the original size will be returned. The memory location to store the scanlines. The number of lines to write. The number of bytes per row. Writes the next set of scanlines into the destination. Returns the number of lines successfully decoded. If number of lines successfully decoded is less than , this will fill the remaining lines with a default value. The desired subset of the original bounds, which may be modified to a subset which is supported. Modifies the specified subset to one that can decoded from this codec. if this codec supports decoding the desired subset; otherwise, . The final subset can be used with . Start or continue the incremental decode. Returns if all lines requested in have been completely decoded. otherwise. Unlike , this does not do any filling. This is left up to the caller, since they may be skipping lines or continuing the decode later. The total number of lines initialized. Only meaningful if this method returns . Start or continue the incremental decode. Returns if all lines requested in have been completely decoded. otherwise. Unlike , this does not do any filling. This is left up to the caller, since they may be skipping lines or continuing the decode later. Gets the image information from the codec. The image information. Gets the minimum number of bytes that must be buffered in stream input. The minimum number of bytes that must be buffered. Gets the y-coordinate of the next row to be returned by the scanline decoder. The y-coordinate of the next row to be returned. Gets the image origin from the codec. One of the enumeration values that specifies the image origin. Gets the image data from the codec using the current . The image data as a byte array. Gets the number of times to repeat, if this image is animated. The number of times to repeat the animation. For infinite repetition of frames, this will be -1. May require reading the stream to find the repetition count. As such, future decoding calls may require a rewind. For single-frame images, this will be 0. Gets the order in which scanlines will be returned by the scanline decoder. One of the enumeration values that specifies the scanline order. The number of scanlines to skip. Skip the specified number of scanlines. Returns if the scanlines were successfully skipped, otherwise on failure (incomplete input, the number of lines is less than zero, read all the lines). The image information of the destination. If the dimensions do not match those of , this implies a scale. The memory to write to. Needs to be large enough to hold the subset, if present, or the full image. The stride of the memory to write to. Prepare for an incremental decode with the specified options. Returns on success, or another value explaining the type of failure. The image information of the destination. If the dimensions do not match those of , this implies a scale. The memory to write to. Needs to be large enough to hold the subset, if present, or the full image. The stride of the memory to write to. The decoding options, including if memory is zero initialized and whether to decode a subset. Prepare for an incremental decode with the specified options. Returns on success, or another value explaining the type of failure. The image information of the destination. If the dimensions do not match those of , this implies a scale. The memory to write to. Needs to be large enough to hold the subset, if present, or the full image. The stride of the memory to write to. The decoding options, including if memory is zero initialized and whether to decode a subset. The color table to use. The size of the color table. Prepare for an incremental decode with the specified options. Returns on success, or another value explaining the type of failure. The image information of the destination. If the dimensions do not match those of , this implies a scale. The memory to write to. Needs to be large enough to hold the subset, if present, or the full image. The stride of the memory to write to. The decoding options, including if memory is zero initialized and whether to decode a subset. The pointer to the color table to use. The size of the color table. Prepare for an incremental decode with the specified options. Returns on success, or another value explaining the type of failure. The image information of the destination. If the dimensions do not match those of , this implies a scale. Prepare for a scanline decode. Returns on success, or another value explaining the type of failure. Not all codecs support this. The image information of the destination. If the dimensions do not match those of , this implies a scale. The decoding options, including if memory is zero initialized and whether to decode a subset. Prepare for a scanline decode with the specified options. Returns on success, or another value explaining the type of failure. Not all codecs support this. The image information of the destination. If the dimensions do not match those of , this implies a scale. The decoding options, including if memory is zero initialized and whether to decode a subset. The color table to use. The size of the color table. Prepare for a scanline decode with the specified options. Returns on success, or another value explaining the type of failure. Not all codecs support this. The image information of the destination. If the dimensions do not match those of , this implies a scale. The decoding options, including if memory is zero initialized and whether to decode a subset. The pointer to the color table to use. The size of the color table. Prepare for a scanline decode with the specified options. Returns on success, or another value explaining the type of failure. Not all codecs support this. Specifies how a frame should be blended with a previous frame in an animated image. The source frame replaces the destination, ignoring any previous content. The source frame is blended over the destination using alpha compositing. Represents how the next frame in the image is based on the current frame. The next frame should be drawn on top of this one. The area inside this frame's rectangle should be cleared to the background color before drawing the next frame. The next frame should be drawn on top of the previous frame - i.e. disregarding this one. Information about individual frames in a multi-framed image. Gets or sets a value indicating the frame's alpha value. The alpha type for this frame. Gets or sets the blend mode for this frame. The blend mode that specifies how the frame should be blended with the previous frame. Gets or sets the method indicating how the current frame should be modified before decoding the next one. The disposal method for this frame. Gets or sets the number of milliseconds to show this frame. The duration in milliseconds. The to compare with the current instance. Determines whether the specified is equal to the current instance. if the specified object is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is equal to the current instance; otherwise, . Gets or sets the rectangle within the image that this frame occupies. The bounding rectangle for this frame within the image. Gets or sets a value indicating whether the end marker for this frame is contained in the stream. if the frame has been fully received; otherwise, . Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Gets or sets a value indicating whether this frame has alpha within its bounds. if this frame contains transparency within its bounds; otherwise, . The first to compare. The second to compare. Determines whether two specified objects have the same value. if the value of is the same as the value of ; otherwise, . The first to compare. The second to compare. Determines whether two specified objects have different values. if the value of is different from the value of ; otherwise, . Gets or sets the frame that this frame needs to be blended with, or -1. The index of the required frame, or -1 if no frame is required. Additional options to pass to or one of the overloads that accepts a . The subset rectangle. Create a new instance of with the specified subset rectangle. The zero-initialization. Create a new instance of with the specified zero-initialization. The frame to decode. Create a new instance of with the specified frame index. Only meaningful for multi-frame images. The zero-initialization. The subset rectangle. Create a new instance of with the specified subset rectangle and zero-initialization. The frame to decode. The previous frame to decode. Create a new instance of . Only meaningful for multi-frame images. Gets the default options. The default value is not zero-initialized and without a subset rectangle. The to compare with the current instance. Determines whether the specified is equal to the current instance. if the specified object is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is equal to the current instance; otherwise, . Gets or sets the frame to decode. The zero-based index of the frame to decode. Only meaningful for multi-frame images. Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Gets a value indicating whether the options has a subset rectangle. if the options has a subset rectangle; otherwise, . The first to compare. The second to compare. Determines whether two specified objects have the same value. if the value of is the same as the value of ; otherwise, . The first to compare. The second to compare. Determines whether two specified objects have different values. if the value of is different from the value of ; otherwise, . Gets or sets a value indicating whether the decode should do a linear premultiply or a legacy premultiply. The premultiply behavior. Gets or sets a value indicating which frame, if any, the destination bitmap already contains. The index of the prior frame, or -1 to indicate no prior frame. needs to be blended with a prior frame (as reported by `SKCodec.FrameInfo[FrameIndex].RequiredFrame`), the client can set this to any non- frame in the range [RequiredFrame, FrameIndex) to indicate that that frame is already in the destination. is ignored in this case. If set to -1, the codec will decode any necessary required frame(s) first. ]]> Gets or sets the subset rectangle. The subset rectangle, or if no subset is specified. Gets or sets the zero-initialization. The zero-initialization setting. The various origins of a bitmap. Reflected across x-axis. Rotated 180°. Rotated 90° counter-clockwise. Reflected across x-axis, Rotated 90° counter-clockwise. Reflected across x-axis, Rotated 90° clockwise. Rotated 90° clockwise. Default. Reflected across y-axis. Used to describe the result of a call to or one of the overloads that accepts a . Result is the union of possible results from subclasses. Fulfilling this request requires rewinding the input, which is not supported for this input. There was an error in the imput data. If returned from an incremental decode, decoding cannot continue, even with more data. The input is incomplete. A partial image was generated. An internal memory occurred, such as an out-of-memory error. The codec cannot convert to match the request, ignoring dimensions. The input did not contain a valid image. The parameters (besides info) are invalid. e.g. null pixels, row bytes too small, etc. The generator cannot scale to requested size. The general return value for success. This method is not supported by this codec. The orders in which scanlines can be returned. These values are obtained through the property. Indicates that the scanline decoder reliably outputs rows, but they will be returned in reverse order. The property can be used to determine the actual y-coordinate of the next output row. Indicates that the image can be decoded reliably using the scanline decoder, and that rows will be output in the logical order. 32-bit ARGB unpremultiplied color value. The color components are always in a known order. The integer value of the unpremultiplied color. Creates a color from the specified integer. The red component. The green component. The blue component. Creates a color from the specified red, green and blue components. The red component. The green component. The blue component. The alpha component. Creates a color from the specified red, green, blue and alpha components. Gets the alpha component of the color. The alpha component of the color. Gets the blue component of the color. The blue component of the color. Gets an "empty" color, with zero for all the components. The color to compare with the current color. Determines whether the specified object is equal to the current object. Returns if the specified object is equal to the current object; otherwise, . The object to compare with the current object. Determines whether the specified object is equal to the current object. Returns if the specified object is equal to the current object; otherwise, . The hue value. The saturation value. The lightness/luminosity value. The alpha value. Creates a color from the specified hue, saturation, lightness/luminosity and alpha values. The new instance. The hue value. The saturation value. The value/brightness value. The alpha value. Creates a color from the specified hue, saturation, value/brightness and alpha values. The new instance. Serves as the default hash function. Returns a hash code for the current object. Gets the green component of the color. The green component of the color. Gets the hue value. The hue value. The first color to compare. The second color to compare. Indicates whether two objects are equal. Returns if is equal to , otherwise . The color to convert. Converts a to a UInt32. The UInt32 value for the color. The UInt32 representation of a color. Converts a UInt32 to a . The new instance. The first color to compare. The second color to compare. Indicates whether two objects are different. Returns if is not equal to , otherwise . The hexadecimal string representation of a color. Converts the hexadecimal string representation of a color to its equivalent. The new instance. This method can parse a string in the forms with or without a preceding '#' character: AARRGGB, RRGGBB, ARGB, RGB. Gets the red component of the color. The red component of the color. The hue value. The saturation value. The lightness/luminosity value. Converts the current color into its hue, saturation and lightness/luminosity values. The alpha value is separate from the HSL calculation and will always be the same as . The hue value. The saturation value. The value/brightness value. Converts the current color into its hue, saturation and value/brightness values. The alpha value is separate from the HSV/HSB calculation and will always be the same as . Returns the color as a string in the format: #AARRGGBB. The string representation of the color. The hexadecimal string representation of a color. The new instance. Converts the hexadecimal string representation of a color to its equivalent. if the conversion was successful; otherwise, . This method can parse a string in the forms with or without a preceding '#' character: AARRGGB, RRGGBB, ARGB, RGB. The new alpha component. Returns a new color based on this current instance, but with the new alpha channel value. A new color with the specified alpha value. The new blue component. Returns a new color based on this current instance, but with the new blue channel value. A new color with the specified blue value. The new green component. Returns a new color based on this current instance, but with the new green channel value. A new color with the specified green value. The new red component. Returns a new color based on this current instance, but with the new red channel value. A new color with the specified red value. Identifies a specific color channel in an RGBA color. The alpha (transparency) channel. The blue channel. The green channel. The red channel. 16-bit, floating-point, ARGB unpremultiplied color value. The color components are always in a known order. The red component. The green component. The blue component. Creates a color from the specified red, green and blue components. The red component. The green component. The blue component. The alpha component. Creates a color from the specified red, green, blue and alpha components. Gets the alpha component of the color. The alpha component of the color. Gets the blue component of the color. The blue component of the color. Clamp the color components in the range [0..1]. Returns the clamped color. Gets an "empty" color, with zero for all the components. The color to compare with the current color. Determines whether the specified object is equal to the current object. Returns if the specified object is equal to the current object; otherwise, . The object to compare with the current object. Determines whether the specified object is equal to the current object. Returns if the specified object is equal to the current object; otherwise, . The hue value. The saturation value. The lightness/luminosity value. The alpha value. Creates a color from the specified hue, saturation, lightness/luminosity and alpha values. The new instance. The hue value. The saturation value. The value/brightness value. The alpha value. Creates a color from the specified hue, saturation, value/brightness and alpha values. The new instance. Serves as the default hash function. Returns a hash code for the current object. Gets the green component of the color. The green component of the color. Gets the hue value. The hue value. The first color to compare. The second color to compare. Indicates whether two objects are equal. Returns if is equal to , otherwise . The color to convert. Converts a to a . The . As a result of converting a floating-point color to an integer color, some data loss will occur. The . Converts a to a . The new instance. The first color to compare. The second color to compare. Indicates whether two objects are different. Returns if is not equal to , otherwise . Gets the red component of the color. The red component of the color. The hue value. The saturation value. The lightness/luminosity value. Converts the current color into its hue, saturation and lightness/luminosity values. The alpha value is separate from the HSL calculation and will always be the same as . The hue value. The saturation value. The value/brightness value. Converts the current color into its hue, saturation and value/brightness values. The alpha value is separate from the HSV/HSB calculation and will always be the same as . Returns the color as a string in the format: #AARRGGBB. The string representation of the color. As a result of converting a floating-point color to an integer color, some data loss will occur. The new alpha component. Returns a new color based on this current instance, but with the new alpha channel value. A new color with the specified alpha value. The new blue component. Returns a new color based on this current instance, but with the new blue channel value. A new color with the specified blue value. The new green component. Returns a new color based on this current instance, but with the new green channel value. A new color with the specified green value. The new red component. Returns a new color based on this current instance, but with the new red channel value. A new color with the specified red value. Color filters for use with the property of a . The size of the color matrix. The source color used with the specified mode. The blend mode mode that is applied to each color. Creates a new color filter that uses the specified color and mode. Returns the new , or if the mode will have no effect. If the is , this function will return (since that mode will have no effect on the result). A span of elements representing the 4x5 color matrix. Creates a new color filter that transforms a color by a 4x5 (row-major) matrix. Returns the new . An array of elements. Creates a new color filter that transforms a color by a 4x5 (row-major) matrix. Returns the new . The matrix is in row-major order and the translation column is specified in unnormalized, 0...255, space. The outer (second) filter to apply. The inner (first) filter to apply. Creates a new composition color filter, whose effect is to first apply the inner filter and then apply the outer filter to the result of the inner. Returns the new . The high contrast configuration settings. Creates a new high contrast color filter which provides transformations to improve contrast for users with low vision. Returns the new . Applies the following transformations in this order: conversion to grayscale, color inversion, increasing the resulting contrast. to convert the color to grayscale; otherwise, . The style of brightness or lightness inversion to apply, or none. The amount to adjust the contrast by, in the range -1.0 through 1.0. Creates a new high contrast color filter which provides transformations to improve contrast for users with low vision. Returns the new . Applies the following transformations in this order: conversion to grayscale, color inversion, increasing the resulting contrast. A span of elements representing the 4x5 HSLA color matrix. Creates a new color filter that transforms a color by a 4x5 (row-major) matrix in HSLA color space. Returns the new . The interpolation weight between 0.0 and 1.0, where 0.0 returns the result of and 1.0 returns the result of . The first color filter to interpolate. The second color filter to interpolate. Creates a new color filter that linearly interpolates between the results of two other color filters. Returns the new . The color to multiply the source color by. The alpha component is ignored. The color to add to the source color. The alpha component is ignored. Creates a new lighting color filter that multiplies the RGB channels by one color, and then adds a second color, pinning the result for each component to [0..255]. Returns the new . Creates a new color filter that converts linear RGB colors to sRGB gamma-encoded colors. Returns the new . Creates a new luminance-to-alpha color filter. Returns the new . Creates a new color filter that converts sRGB gamma-encoded colors to linear RGB colors. Returns the new . The table of values for each color component, with a length of . Creates a new table color filter. Returns the new . The table of values for each color component, with a length of . Creates a new table color filter. Returns the new . The table of values for the alpha component, with a length of . The table of values for the red component, with a length of . The table of values for the green component, with a length of . The table of values for the blue component, with a length of . Creates a new table color filter. Returns the new . The table of values for the alpha component, with a length of . The table of values for the red component, with a length of . The table of values for the green component, with a length of . The table of values for the blue component, with a length of . Creates a new table color filter with separate tables for each color component. Returns the new . to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. The size of a color table for a color component. Definitions for some common color names. Gets the predefined color of alice blue, or #FFF0F8FF. Gets the predefined color of antique white, or #FFFAEBD7. Gets the predefined color of aqua, or #FF00FFFF. Gets the predefined color of aquamarine, or #FF7FFFD4. Gets the predefined color of azure, or #FFF0FFFF. Gets the predefined color of beige, or #FFF5F5DC. Gets the predefined color of bisque, or #FFFFE4C4. Gets the predefined color of black, or #FF000000. Gets the predefined color of blanched almond, or #FFFFEBCD. Gets the predefined color of blue, or #FF0000FF. Gets the predefined color of blue violet, or #FF8A2BE2. Gets the predefined color of brown, or #FFA52A2A. Gets the predefined color of burly wood, or #FFDEB887. Gets the predefined color of cadet blue, or #FF5F9EA0. Gets the predefined color of chartreuse, or #FF7FFF00. Gets the predefined color of chocolate, or #FFD2691E. Gets the predefined color of coral, or #FFFF7F50. Gets the predefined color of cornflower blue, or #FF6495ED. Gets the predefined color of cornsilk, or #FFFFF8DC. Gets the predefined color of crimson, or #FFDC143C. Gets the predefined color of cyan, or #FF00FFFF. Gets the predefined color of dark blue, or #FF00008B. Gets the predefined color of dark cyan, or #FF008B8B. Gets the predefined color of dark goldenrod, or #FFB8860B. Gets the predefined color of dark gray, or #FFA9A9A9. Gets the predefined color of dark green, or #FF006400. Gets the predefined color of dark khaki, or #FFBDB76B. Gets the predefined color of dark magenta, or #FF8B008B. Gets the predefined color of dark olive green, or #FF556B2F. Gets the predefined color of dark orange, or #FFFF8C00. Gets the predefined color of dark orchid, or #FF9932CC. Gets the predefined color of dark red, or #FF8B0000. Gets the predefined color of dark salmon, or #FFE9967A. Gets the predefined color of dark sea green, or #FF8FBC8B. Gets the predefined color of dark slate blue, or #FF483D8B. Gets the predefined color of dark slate gray, or #FF2F4F4F. Gets the predefined color of dark turquoise, or #FF00CED1. Gets the predefined color of dark violet, or #FF9400D3. Gets the predefined color of deep pink, or #FFFF1493. Gets the predefined color of deep sky blue, or #FF00BFFF. Gets the predefined color of dim gray, or #FF696969. Gets the predefined color of dodger blue, or #FF1E90FF. Gets the predefined empty color (black transparent), or #00000000. The empty color value. Gets the predefined color of firebrick, or #FFB22222. Gets the predefined color of floral white, or #FFFFFAF0. Gets the predefined color of forest green, or #FF228B22. Gets the predefined color of fuchsia, or #FFFF00FF. Gets the predefined color of gainsboro, or #FFDCDCDC. Gets the predefined color of ghost white, or #FFF8F8FF. Gets the predefined color of gold, or #FFFFD700. Gets the predefined color of goldenrod, or #FFDAA520. Gets the predefined color of gray, or #FF808080. Gets the predefined color of green, or #FF008000. Gets the predefined color of green yellow, or #FFADFF2F. Gets the predefined color of honeydew, or #FFF0FFF0. Gets the predefined color of hot pink, or #FFFF69B4. Gets the predefined color of indian red, or #FFCD5C5C. Gets the predefined color of indigo, or #FF4B0082. Gets the predefined color of ivory, or #FFFFFFF0. Gets the predefined color of khaki, or #FFF0E68C. Gets the predefined color of lavender, or #FFE6E6FA. Gets the predefined color of lavender blush, or #FFFFF0F5. Gets the predefined color of lawn green, or #FF7CFC00. Gets the predefined color of lemon chiffon, or #FFFFFACD. Gets the predefined color of light blue, or #FFADD8E6. Gets the predefined color of light coral, or #FFF08080. Gets the predefined color of light cyan, or #FFE0FFFF. Gets the predefined color of light goldenrod yellow, or #FFFAFAD2. Gets the predefined color of light gray, or #FFD3D3D3. Gets the predefined color of light green, or #FF90EE90. Gets the predefined color of light pink, or #FFFFB6C1. Gets the predefined color of light salmon, or #FFFFA07A. Gets the predefined color of light sea green, or #FF20B2AA. Gets the predefined color of light sky blue, or #FF87CEFA. Gets the predefined color of light slate gray, or #FF778899. Gets the predefined color of light steel blue, or #FFB0C4DE. Gets the predefined color of light yellow, or #FFFFFFE0. Gets the predefined color of lime, or #FF00FF00. Gets the predefined color of lime green, or #FF32CD32. Gets the predefined color of linen, or #FFFAF0E6. Gets the predefined color of magenta, or #FFFF00FF. Gets the predefined color of maroon, or #FF800000. Gets the predefined color of medium aquamarine, or #FF66CDAA. Gets the predefined color of medium blue, or #FF0000CD. Gets the predefined color of medium orchid, or #FFBA55D3. Gets the predefined color of medium purple, or #FF9370DB. Gets the predefined color of medium sea green, or #FF3CB371. Gets the predefined color of medium slate blue, or #FF7B68EE. Gets the predefined color of medium spring green, or #FF00FA9A. Gets the predefined color of medium turquoise, or #FF48D1CC. Gets the predefined color of medium violet red, or #FFC71585. Gets the predefined color of midnight blue, or #FF191970. Gets the predefined color of mint cream, or #FFF5FFFA. Gets the predefined color of misty rose, or #FFFFE4E1. Gets the predefined color of moccasin, or #FFFFE4B5. Gets the predefined color of navajo white, or #FFFFDEAD. Gets the predefined color of navy, or #FF000080. Gets the predefined color of old lace, or #FFFDF5E6. Gets the predefined color of olive, or #FF808000. Gets the predefined color of olive drab, or #FF6B8E23. Gets the predefined color of orange, or #FFFFA500. Gets the predefined color of orange red, or #FFFF4500. Gets the predefined color of orchid, or #FFDA70D6. Gets the predefined color of pale goldenrod, or #FFEEE8AA. Gets the predefined color of pale green, or #FF98FB98. Gets the predefined color of pale turquoise, or #FFAFEEEE. Gets the predefined color of pale violet red, or #FFDB7093. Gets the predefined color of papaya whip, or #FFFFEFD5. Gets the predefined color of peach puff, or #FFFFDAB9. Gets the predefined color of peru, or #FFCD853F. Gets the predefined color of pink, or #FFFFC0CB. Gets the predefined color of plum, or #FFDDA0DD. Gets the predefined color of powder blue, or #FFB0E0E6. Gets the predefined color of purple, or #FF800080. Gets the predefined color of red, or #FFFF0000. Gets the predefined color of rosy brown, or #FFBC8F8F. Gets the predefined color of royal blue, or #FF4169E1. Gets the predefined color of saddle brown, or #FF8B4513. Gets the predefined color of salmon, or #FFFA8072. Gets the predefined color of sandy brown, or #FFF4A460. Gets the predefined color of sea green, or #FF2E8B57. Gets the predefined color of sea shell, or #FFFFF5EE. Gets the predefined color of sienna, or #FFA0522D. Gets the predefined color of silver, or #FFC0C0C0. Gets the predefined color of sky blue, or #FF87CEEB. Gets the predefined color of slate blue, or #FF6A5ACD. Gets the predefined color of slate gray, or #FF708090. Gets the predefined color of snow, or #FFFFFAFA. Gets the predefined color of spring green, or #FF00FF7F. Gets the predefined color of steel blue, or #FF4682B4. Gets the predefined color of tan, or #FFD2B48C. Gets the predefined color of teal, or #FF008080. Gets the predefined color of thistle, or #FFD8BFD8. Gets the predefined color of tomato, or #FFFF6347. Gets the predefined color of white transparent, or #00FFFFFF. Gets the predefined color of turquoise, or #FF40E0D0. Gets the predefined color of violet, or #FFEE82EE. Gets the predefined color of wheat, or #FFF5DEB3. Gets the predefined color of white, or #FFFFFFFF. Gets the predefined color of white smoke, or #FFF5F5F5. Gets the predefined color of yellow, or #FFFFFF00. Gets the predefined color of yellow green, or #FF9ACD32. Represents a color space. The ICC color profile. Creates a new instance of from an ICC profile. A new , or if the profile is invalid. The ICC profile data. Creates a new instance of from an ICC profile. A new , or if the data is invalid. The ICC profile data. Creates a new instance of from an ICC profile. Returns the new instance of . The ICC profile data. Creates a new instance of from an ICC profile. A new , or if the data is invalid. The ICC profile data. The size of the data. Creates a new instance of from an ICC profile. Returns the new instance of . The ICC profile data. The size of the data. Creates a new instance of from an ICC profile. Returns the new instance of . The gamma transfer function. The color gamut. Creates a new instance of from a transfer function and a color gamut. Returns the new instance of . The gamma transfer function. The matrix transformation to XYZ D50. Creates a new instance of from a transfer function and a color gamut. Returns the new instance of . The coefficients for a common transfer function equation. The color gamut. Creates a new instance of from a transfer function and a color gamut. Returns the new instance of . The transfer function for the color space. The transformation matrix to XYZ D50. Creates a new instance of from a transfer function and transformation matrix. A new , or if the parameters are invalid. The coefficients for a common transfer function equation. The matrix transformation to XYZ D50. Creates a new instance of from a transfer function and a color gamut. Returns the new instance of . The gamma. The color gamut. Creates a new instance of from a named gamma and a color gamut. Returns the new instance of . The gamma. The matrix transformation to XYZ D50. Creates a new instance of from a named gamma and a color gamut. Returns the new instance of . The gamma transfer function. The color gamut. The optional flags. Creates a new instance of from a transfer function and a color gamut. Returns the new instance of . The gamma transfer function. The matrix transformation to XYZ D50. The optional flags. Creates a new instance of from a transfer function and a color gamut. Returns the new instance of . The coefficients for a common transfer function equation. The color gamut. The optional flags. Creates a new instance of from a transfer function and a color gamut. Returns the new instance of . The coefficients for a common transfer function equation. The matrix transformation to XYZ D50. The optional flags. Creates a new instance of from a transfer function and a color gamut. Returns the new instance of . Creates a new instance of that represents the sRGB color space. Returns the new instance of . Creates a new instance of with the sRGB primaries, but a linear (1.0) gamma. Returns the new instance of . to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. The first color space. The second color space. Compare two color spaces to determine if they are equivalent. Returns if both color spaces are equivalent, otherwise . Describes color space gamut as a transformation from XYZ D50. Returns the matrix if the color gamut can be described as a matrix, otherwise . Gets a value indicating whether or not the color space gamma is near enough to be approximated as sRGB. if the gamma is close to sRGB; otherwise, . Gets a value indicating whether or not the color space gamma is linear. if the gamma is linear; otherwise, . Returns the transfer function for this color space. The , or if the transfer function cannot be represented numerically. The values of the coefficients to the standard equation. Returns the values of the coefficients to the standard equation. Returns if transfer function can be represented as coefficients to the standard equation, otherwise . Gets a value indicating whether the transfer function can be represented as coefficients to the standard equation. if the transfer function is numerical; otherwise, . Gets a value indicating whether or not the color space is sRGB. if the color space is sRGB; otherwise, . Gets the gamma of the color space. The named gamma of the color space. Returns the XYZ D50 transformation matrix for this color space. The , or if the transformation cannot be computed. When this method returns, contains the XYZ D50 transformation matrix. Attempts to get the XYZ D50 transformation matrix for this color space. if the transformation matrix was retrieved successfully; otherwise, . Creates a new color space with the same gamut as this one, but with a linear gamma. A new with linear gamma. Converts this color space to an ICC profile. A new representing this color space. Creates a new color space with the same gamut as this one, but with sRGB gamma. A new with sRGB gamma. Describes color space gamut as a transformation to XYZ D50. Returns the matrix if the color gamut can be described as a matrix, otherwise . The matrix that describes the color space. Converts the color space to a XYZ D50 matrix that describes the color space. Returns if the color gamut can be described as a matrix, otherwise . Gets the color space type. The color space type. Various flags that are used when creating a . Default construction. Blending is non-linear. Various gamut values for use with a . Adobe RGB. DCI-P3 D65. Rec. 2020 (ITU-R Recommendation BT.2020). sRGB. Represents an ICC color profile used to describe the color characteristics of a device or color space. Initializes a new instance of the class. Gets a pointer to the raw ICC profile data buffer. A pointer to the raw ICC profile data. The ICC profile data. Creates a new from the specified data. A new , or if the data is empty or invalid. The ICC profile data as a byte array. Creates a new from the specified byte array. A new , or if the data is empty or invalid. The ICC profile data as a span of bytes. Creates a new from the specified span of bytes. A new , or if the data is empty or invalid. A pointer to the ICC profile data. The length of the data in bytes. Creates a new from the specified pointer and length. A new , or if the data is invalid or length is less than or equal to zero. Releases the unmanaged resources associated with the ICC profile. Gets the size of the ICC profile data in bytes. The size of the ICC profile data in bytes. Converts this ICC profile to an XYZ D50 color space matrix. The matrix, or if the conversion fails. When this method returns, contains the XYZ D50 color space matrix. Attempts to convert this ICC profile to an XYZ D50 color space matrix. if the conversion was successful; otherwise, . Describes a color gamut with primaries and a white point. The values of the primaries and white point. Initializes a new instance of the structure with the specified values. There must be exactly 8 values in the array with the form [RX, RY, GX, GY, BX, BY, WX, WY]. The red X-coordinate. The red Y-coordinate. The green X-coordinate. The green Y-coordinate. The blue X-coordinate. The blue Y-coordinate. The white X-coordinate. The white Y-coordinate. Initializes a new instance of the structure with the specified coordinates. Gets or sets the blue X-coordinate. The blue primary X-coordinate. Gets or sets the blue Y-coordinate. The blue primary Y-coordinate. Represents an empty with all values set to zero. The to compare with the current instance. Determines whether the specified is equal to the current instance. if the specified object is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is equal to the current instance; otherwise, . Returns the hash code for this instance. A 32-bit signed integer hash code. Gets or sets the green X-coordinate. The green primary X-coordinate. Gets or sets the green Y-coordinate. The green primary Y-coordinate. The first to compare. The second to compare. Determines whether two instances are equal. if and are equal; otherwise, . The first to compare. The second to compare. Determines whether two instances are not equal. if and are not equal; otherwise, . Gets or sets the red X-coordinate. The red primary X-coordinate. Gets or sets the red Y-coordinate. The red primary Y-coordinate. Converts the primaries and white point to an matrix. The XYZ D50 matrix, or if the conversion is not possible. When this method returns, contains the XYZ D50 matrix if the conversion succeeded. Attempts to convert the primaries and white point to an matrix. if the conversion succeeded; otherwise, . Converts primaries and a white point to a XYZ D50 matrix, the preferred color gamut representation of . The XYZ D50 matrix, or if the conversion is not possible. The XYZ D50 matrix. Converts primaries and a white point to a XYZ D50 matrix, the preferred color gamut representation of . if the conversion succeeded; otherwise, . Gets the values of the primaries and white point as an array with the form [RX, RY, GX, GY, BX, BY, WX, WY]. An array containing the primaries and white point values. Gets or sets the white X-coordinate. The white point X-coordinate. Gets or sets the white Y-coordinate. The white point Y-coordinate. Represents gamma transfer functions. The transfer function is linear. The transfer function is the canonical sRGB curve, which has a short linear segment followed by a 2.4f exponential. Represents the coefficients for a common transfer function equation. The coefficients are specified as a transformation from a curved space to linear. LinearVal = C*InputVal + F; (for 0.0f <= InputVal < D) LinearVal = (A*InputVal + B)^G + E; (for D <= InputVal <= 1.0f) Function is undefined if InputVal is not in [ 0.0f, 1.0f ]. Resulting LinearVals must be in [ 0.0f, 1.0f ]. Function must be positive and increasing. The values of the coefficients. Creates a new instance of . There must be exactly 7 values in the array with the form [G, A, B, C, D, E, F]. The G coefficient. The A coefficient. The B coefficient. The C coefficient. The D coefficient. The E coefficient. The F coefficient. Creates a new instance of . Gets or sets the A coefficient. The A coefficient value. Gets or sets the B coefficient. The B coefficient value. Gets or sets the C coefficient. The C coefficient value. Gets or sets the D coefficient. The D coefficient value. Gets or sets the E coefficient. The E coefficient value. Represents an empty with all coefficients set to zero. The to compare with the current instance. Determines whether the specified is equal to the current instance. if the specified is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is a and is equal to the current instance; otherwise, . Gets or sets the F coefficient. The F coefficient value. Gets or sets the G coefficient. The G coefficient value. Returns a hash code for this instance. A hash code for the current . Gets the transfer function for the HLG (Hybrid Log-Gamma) color space. The HLG transfer function coefficients. Inverts coefficients for a common transfer function equation. Returns the mathematically inverted parametric transfer function equation. Gets the transfer function for the linear color space. The linear transfer function coefficients. The first to compare. The second to compare. Determines whether two instances are equal. if the two instances are equal; otherwise, . The first to compare. The second to compare. Determines whether two instances are not equal. if the two instances are not equal; otherwise, . Gets the transfer function for the PQ (Perceptual Quantizer) color space used in HDR content. The PQ transfer function coefficients. Gets the transfer function for the Rec. 2020 color space. The Rec. 2020 transfer function coefficients. Gets the transfer function for the sRGB color space. The sRGB transfer function coefficients. The input to transform. Transform a single input by this transfer function. Returns the transformed input. For negative inputs, returns `-Transform(Math.Abs(x))`. Gets the transfer function for a simple 2.2 gamma curve. The 2.2 gamma transfer function coefficients. Gets the coefficients as an array with the form [G, A, B, C, D, E, F]. An array of 7 float values containing the transfer function coefficients. The various types of color spaces. The CMYK color space. The gray color space. The RGB color space. Represents a 3x3 matrix used for color space transformation between RGB and XYZ coordinates. The value to set for all diagonal elements of the matrix. Initializes a new instance of the struct with the specified value on the diagonal. An array of 9 float values representing the matrix in row-major order. Initializes a new instance of the struct from an array of 9 values. The value at row 0, column 0. The value at row 0, column 1. The value at row 0, column 2. The value at row 1, column 0. The value at row 1, column 1. The value at row 1, column 2. The value at row 2, column 0. The value at row 2, column 1. The value at row 2, column 2. Initializes a new instance of the struct with the specified values. Gets the transformation matrix for the Adobe RGB color space. The Adobe RGB color space transformation matrix. The first matrix. The second matrix. Concatenates two matrices by multiplying them together. The result of multiplying the two matrices. Gets the transformation matrix for the DCI-P3 color space. The DCI-P3 color space transformation matrix. Gets the transformation matrix for the Display P3 color space. The Display P3 color space transformation matrix. Represents an empty matrix with all values set to zero. The matrix to compare with this instance. Determines whether this matrix is equal to another matrix. if the matrices are equal; otherwise, . The object to compare with this instance. Determines whether this matrix is equal to another object. if the object is an and is equal to this instance; otherwise, . Returns the hash code for this instance. A 32-bit signed integer hash code. Represents the identity matrix. Computes the inverse of this matrix. The inverse of this matrix, or an empty matrix if the matrix is not invertible. The row index (0-2). The column index (0-2). Gets the value at the specified row and column. The matrix value at the specified position. The first matrix to compare. The second matrix to compare. Determines whether two matrices are equal. if the matrices are equal; otherwise, . The first matrix to compare. The second matrix to compare. Determines whether two matrices are not equal. if the matrices are not equal; otherwise, . Gets the transformation matrix for the Rec. 2020 color space. The Rec. 2020 color space transformation matrix. Gets the transformation matrix for the sRGB color space. The sRGB color space transformation matrix. Gets or sets the matrix values as an array of 9 floats in row-major order. The matrix values as a float array. Gets the transformation matrix for the XYZ-D50 color space. The XYZ-D50 color space transformation matrix. Holds a premultiplied color table for indexed 8-bit bitmaps. This class is used to represent a color lookup table for indexed bitmap images. The table can contain up to (256) colors (8 bits). The colors are stored are premultiplied 32-bit colors. Initializes a new instance of the class with 256 empty elements. The unpremultiplied colors to initialize with. Creates a color table with the provided unpremultiplied colors, up to (256) colors can be provided. The colors will be automatically premultiplied. The premultiplied colors to initialize with. Creates a color table with the provided premultiplied colors, up to (256) colors can be provided. The number of empty colors to initialize with. Creates a color table with the specified number of elements, with empty colors. The unpremultiplied colors to initialize with. The number of colors to initialize with. Creates a color table with the provided unpremultiplied colors, but only consumes the first count elements from the colors array. The premultiplied colors to initialize with. The number of colors to initialize with. Creates a color table with the provided premultiplied colors, but only consumes the first count elements from the colors array. Gets a copy of the premultiplied colors in the color table. An array of premultiplied colors. Gets the number of colors in the lookup table. The number of colors. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. The index of the color to get. Returns the unpremultiplied color at the specified index. Returns the unpremultiplied color. This is equivalent to premultiplying the value from . The index of the color to retrieve. Gets the premultiplied color at the specified index. The premultiplied color at the specified index. Gets the maximum number of colors in the color lookup table. Returns an unmanaged pointer to the color lookup table. A pointer to the color table data. Gets a copy of the unpremultiplied colors in the color table. An array of unpremultiplied colors. The is equivalent to premultiplying the value of . Describes how to interpret the components of a pixel. Represents a 16-bit alpha-only color. Represents a 8-bit alpha-only color. Represents a 16-bit half-precision floating-point alpha-only color. Represents a 16-bit color with the format ARGB. Represents an opaque 32-bit color with the format BGR, with 10 bits per color component. Represents an extended-range 32-bit color with the format BGR, with 10 bits per color component. Represents a 32-bit color with the format BGRA, with 10 bits per color component and 2 bits for alpha. Represents a 32-bit color with the format BGRA. Represents an opaque 8-bit grayscale color. Represents a single-channel 8-bit unsigned normalized red color. Represents a 32-bit color with 16 bits each for red and green channels. Represents a 16-bit color with 8 bits each for red and green channels. Represents an opaque 32-bit color with the format RGB, with 10 bits per color component. Represents an opaque 16-bit color with the format RGB, with the red and blue components being 5 bits and the green component being 6 bits. Represents an opaque 32-bit color with the format RGB, with 8 bits per color component. Represents a 32-bit color with the format RGBA, with 10 bits per color component and 2 bits for the alpha component. Represents a 64-bit color with 10 bits each for RGBA plus 6 bits of padding. Represents a 64-bit color with 16 bits per RGBA component. Represents a 32-bit color with the format RGBA. Represents a floating-point based color with the format RGBA. Represents a half-precision floating-point color with clamped RGBA values in the range 0.0 to 1.0. Represents a 128-bit single-precision floating-point color with the format RGBA. Represents a 32-bit half-precision floating-point color with red and green channels. Represents a 32-bit sRGB color with the format RGBA. Unknown encoding. Flags used by the method. Consume all edges of the rectangle. Only use the height component of the rectangle. Only use the left component of the rectangle. None of the edges have been specified. Only use the top component of the rectangle. Only use the width component of the rectangle. Represents a cubic resampler with configurable B and C parameters for high-quality image scaling. The B parameter of the cubic resampler. The C parameter of the cubic resampler. Initializes a new instance of the struct with the specified B and C parameters. Gets the B parameter of the cubic resampler. The B parameter value. Gets the C parameter of the cubic resampler. The C parameter value. Gets a Catmull-Rom cubic resampler with B=0 and C=0.5. The to compare with this instance. Determines whether the specified is equal to the current instance. if the specified object is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is equal to the current instance; otherwise, . Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Gets a Mitchell-Netravali cubic resampler with B=1/3 and C=1/3. The first to compare. The second to compare. Determines whether two instances are equal. if the two instances are equal; otherwise, . The first to compare. The second to compare. Determines whether two instances are not equal. if the two instances are not equal; otherwise, . The holds an immutable data buffer. Not only is the data immutable, but the actual pointer that is returned by the property is guaranteed to always be the same for the life of this instance. The method can be used to return a that wraps this and allows for .NET APIs to scan the contents of the as a stream. Returns a span that wraps the underlying data. Returns the data as a span. This span is only valid as long as the data is valid. Wraps the as a . Returns the new . to dispose the data object when the stream is disposed; otherwise, . Wraps the as a . Returns the new . The stream to read. Returns a new instance with a copy of the data from the stream. Returns the new instance. The size of the data buffer to create. Returns a new instance with uninitialized data. Returns the new instance. The size of the data buffer to create. Returns a new instance with uninitialized data. Returns the new instance. The stream to read. Returns a new instance with a copy of the data from the stream. Returns the new instance. The file to open. Returns a new instance with the data from the file. Returns the new instance. The size of the data buffer to create. Returns a new instance with uninitialized data. Returns the new instance. The stream to read. The amount of data to read. Returns a new instance with a copy of the data from the stream. Returns the new instance. The stream to read. The amount of data to read. Returns a new instance with a copy of the data from the stream. Returns the new instance. The stream to read. The amount of data to read. Returns a new instance with a copy of the data from the stream. Returns the new instance. The pointer to a buffer. The length of the buffer. Returns a new instance with reference to the specified data. Returns the new instance with reference to the specified data. The caller is responsible for ensuring the data buffer lives as long as the instance. The stream to read. The amount of data to read. Returns a new instance with a copy of the data from the stream. Returns the new instance. The stream to read. The amount of data to read. Returns a new instance with a copy of the data from the stream. Returns the new instance. The stream to read. The amount of data to read. Returns a new instance with a copy of the data from the stream. Returns the new instance. The pointer to a buffer. The length of the buffer. The delegate to invoke when the instance is ready to be discarded. Returns a new instance with reference to the specified data. Returns the new instance with reference to the specified data. The caller is responsible for ensuring the data buffer lives as long as the instance. The pointer to a buffer. The length of the buffer. The delegate to invoke when the instance is ready to be discarded. The user state to pass to the delegate when it is invoked. Returns a new instance with reference to the specified data. Returns the new instance with reference to the specified data. The caller is responsible for ensuring the data buffer lives as long as the instance. The array of bytes that will be copied. Returns a new instance with a copy of the provided byte array. Returns the new instance with a copy of the data. The span of bytes that will be copied. Returns a new instance with a copy of the provided byte span. Returns the new instance with a copy of the data. The array of bytes that will be copied. The size of the buffer to create. Returns a new instance with a copy of the provided byte array. Returns the new instance with a copy of the data. The pointer to a buffer. The length of the buffer. Returns a new instance with a copy of the provided byte buffer. Returns the new instance with a copy of the data. The pointer to a buffer. The length of the buffer. Returns a new instance with a copy of the provided byte buffer. Returns the new instance with a copy of the data. The pointer to a buffer. The length of the buffer. Returns a new instance with a copy of the provided byte buffer. Returns the new instance with a copy of the data. Gets a pointer to the data wrapped by this . A pointer to the data. Specify true to release both managed and unmanaged resources, false to release only unmanaged resources. Releases the resources associated with the data. If this was created with one of the methods, then the operating system's "free" method will be called on the data. Gets a reference to the empty data instance. The empty data instance. Gets a value indicating whether or not the data is empty. if the data is empty; otherwise, . The stream to save the data into. Saves the buffer into the provided stream. Gets the size of this data object in bytes. The size in bytes. Gets a writable span that wraps the underlying data. A span over the data buffer. This span is only valid as long as the data is valid. The offset of the data. The length for the new . Creates a new that points to a slice in this . A new data object representing the slice, or if the slice is invalid. Copies the data object into a byte array. Returns the byte array of the data. The pointer to the byte buffer. The user state passed to . The delegate that is used when a instance is about to be released. Channel selector type for the method. The alpha channel. The blue channel. The green channel. The red channel. The channel is not known. A high-level API for creating a document-based canvas. to get the canvas, and then complete the page with a call to . Finally, call to complete the document. ]]> Stops producing the document immediately. The width of the page. The height of the page. Begins a new page for the document, returning the canvas that will draw into the page. Returns a canvas for the new page. The document owns this canvas, and it will go out of scope when or is called, or the document is deleted. The width of the page. The height of the page. The area for the page contents. Begins a new page for the document, returning the canvas that will draw into the page. Returns a canvas for the new page. The document owns this canvas, and it will go out of scope when or is called, or the document is deleted. Closes the current file or stream holding the document's contents. The stream to write to. Create a PDF-backed document, writing the results into a stream. Returns the new PDF-backed document. The stream to write to. Create a PDF-backed document, writing the results into a stream. Returns the new PDF-backed document. The path of the file to write to. Create a PDF-backed document, writing the results into a file. Returns the new PDF-backed document. The stream to write to. The document metadata to include. Create a PDF-backed document, writing the results into a stream. Returns the new PDF-backed document. The stream to write to. The DPI (pixels-per-inch) at which features without native PDF support will be rasterized. Create a PDF-backed document, writing the results into a stream. Returns the new PDF-backed document. PDF pages are sized in point units. 1 pt == 1/72 inch == 127/360 mm. The stream to write to. The document metadata to include. Create a PDF-backed document with the specified metadata, writing the results into a stream. Returns the new PDF-backed document. The stream to write to. The DPI (pixels-per-inch) at which features without native PDF support will be rasterized. Create a PDF-backed document, writing the results into a stream. Returns the new PDF-backed document. PDF pages are sized in point units. 1 pt == 1/72 inch == 127/360 mm. The path of the file to write to. The document metadata to include. Create a PDF-backed document with the specified metadata, writing the results into a file. Returns the new PDF-backed document. The path of the file to write to. The DPI (pixels-per-inch) at which features without native PDF support will be rasterized. Create a PDF-backed document, writing the results into a file. Returns the new PDF-backed document. PDF pages are sized in point units. 1 pt == 1/72 inch == 127/360 mm. The stream to write to. The document metadata to include. The DPI (pixels-per-inch) at which features without native PDF support will be rasterized. Create a PDF-backed document with the specified metadata, writing the results into a stream. Returns the new PDF-backed document. PDF pages are sized in point units. 1 pt == 1/72 inch == 127/360 mm. The stream to write to. Create a XPS-backed document, writing the results into a stream. Returns the new XPS-backed document. The stream to write to. Create a XPS-backed document, writing the results into a stream. Returns the new XPS-backed document. The path of the file to write to. Create a XPS-backed document, writing the results into a file. Returns the new XPS-backed document. The stream to write to. The DPI (pixels-per-inch) at which features without native XPS support will be rasterized. Create a XPS-backed document, writing the results into a stream. Returns the new XPS-backed document. XPS pages are sized in point units. 1 pt == 1/72 inch == 127/360 mm. The stream to write to. The DPI (pixels-per-inch) at which features without native XPS support will be rasterized. Create a XPS-backed document, writing the results into a stream. Returns the new XPS-backed document. XPS pages are sized in point units. 1 pt == 1/72 inch == 127/360 mm. The path of the file to write to. The DPI (pixels-per-inch) at which features without native XPS support will be rasterized. Create a XPS-backed document, writing the results into a file. Returns the new XPS-backed document. XPS pages are sized in point units. 1 pt == 1/72 inch == 127/360 mm. Gets the default DPI for raster graphics. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Completes the drawing for the current page created by . Optional metadata to be passed into the PDF factory function. The encoding quality. Creates a new instance of with the specified encoding quality. The encoding quality is between 0 and 100. A quality of 101 indicates lossless encoding. The DPI (pixels-per-inch) at which features without native PDF support will be rasterized. Creates a new instance of with the specified raster DPI. PDF pages are sized in point units. 1 pt == 1/72 inch == 127/360 mm. The DPI (pixels-per-inch) at which features without native PDF support will be rasterized. The encoding quality. Creates a new instance of with the specified raster DPI and encoding quality. PDF pages are sized in point units. 1 pt == 1/72 inch == 127/360 mm. The encoding quality is between 0 and 100. A quality of 101 indicates lossless encoding. The name of the person who created the document. The name of the author, or if not set. The date and time the document was created. The creation date, or if not set. The name of the product that created the original document, if the document was converted to PDF from another format. The name of the creator product, or if not set. Gets a new instance of with the values set to the defaults. Gets the default encoding quality (101% or lossless). Gets the default DPI (72.0 DPI). Gets or sets the encoding quality. The encoding quality, between 0 and 100, or 101 for lossless encoding. The to compare with the current instance. Determines whether the specified is equal to the current instance. if the specified object is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is equal to the current instance; otherwise, . Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Comma-separated keywords associated with the document. The comma-separated keywords, or if not set. The date and time the document was most recently modified. The modification date, or if not set. The first to compare. The second to compare. Determines whether two specified objects have the same value. if the value of is the same as the value of ; otherwise, . The first to compare. The second to compare. Determines whether two specified objects have different values. if the value of is different from the value of ; otherwise, . Gets or sets a value indicating whether to make the document PDF/A-2b conformant. if the document should be PDF/A-2b conformant; otherwise, . The product that is converting this document to PDF. The name of the producer product, or if not set. Leave empty to get the default, correct value. Gets or sets the DPI (pixels-per-inch) at which features without native PDF support will be rasterized. The raster DPI value. The subject of the document. The subject, or if not set. The document's title. The title, or if not set. Represents the base class for objects that draw into . Creates a new instance of . The value indicating whether this object should destroy the underlying native object. Creates a new instance of . Gets the approximate number of bytes used by this drawable. The approximate memory usage in bytes. Gets the conservative bounds of what the drawable will draw. The bounding rectangle of the drawable. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. The canvas to draw on. The matrix to use when drawing. Draw the current drawable onto the specified canvas. The canvas to draw on. The amount to translate along the x-coordinate. The amount to translate along the y-coordinate. Draw the current drawable onto the specified canvas. Gets the unique value for this instance. The unique generation identifier. It is presumed that if two calls return the same value, then drawing this will result in the same image as well. Invalidate the drawing generation ID, indicating that the drawing has changed. This is typically used by the object itself in response to its internal state changing. The canvas to draw on. Implemented by derived types to draw the drawable to the canvas. If the generation ID is the same, then the resulting image must be the same. Implemented by derived types to return the approximate memory usage. The approximate number of bytes used by this drawable. Implemented by derived types to return the conservative bounds of what the drawable will draw. Returns the bounds. Implemented by derived types to create an immutable snapshot of the drawing. Returns the new snapshot. Create an immutable snapshot of the drawing. Returns the snapshot. The various types of shadow modes for use with the method. Draw both the shadow and the foreground. Draw the shadow only. A writeable, dynamically-sized, memory-based stream. Create a new instance of with an empty buffer. The stream to copy the data to. Copies the data from the current stream to the specified stream. if the copy was successful; otherwise, . The memory location to copy the data to. Copies the data from the current stream to a memory location. The stream to copy the data to. Copies the data from the current stream to the specified .NET stream. if the copy was successful; otherwise, . The byte span to copy the data to. Copies the data from the current stream to a byte span. The span must be at least as large as the number of bytes written to the stream. Returns a copy of the data written so far. A copy of the data. The caller is responsible for releasing the memory. Returns a instance of the data in the current stream, and then resets the current stream. Returns the instance. After calling this method, this stream is reset to its empty state. Returns a read-only stream with the current data, and then resets the current stream. The stream with the data. After calling this method, this stream is reset to its empty state. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. The various formats used by a . The ASTC image format. The AVIF (AV1 Image File Format) image format. The BMP image format. The Adobe DNG image format. The GIF image format. The HEIF or High Efficiency Image File format. The ICO image format. The JPEG image format. The JPEG XL image format. The KTX image format. The PKM image format. The PNG image format. The WBMP image format. The WEBP image format. Represents various origin values returned by . Reflected across x-axis. Rotated 180°. This is equivalent to . Rotated 90° counter-clockwise. Reflected across x-axis. Rotated 90° counter-clockwise. Reflected across x-axis. Rotated 90° clockwise. Rotated 90° clockwise. Default. Reflected across y-axis. Text encoding definition. UTF-16 encoding. UTF-32 encoding. UTF-8 encoding. A seekable stream backed by a file on the file system. The existing file to open for reading. Creates a new that wraps the file with the specified path. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. The path to check. Determines whether the specified path is supported by a . Returns if the path is supported, otherwise . Gets a value indicating whether the file could be opened. if the file was opened successfully; otherwise, . The path to the file to open. Opens a read-only stream to the specified file. Returns a stream that contains the file contents. A writeable stream backed by a file on the file system. The new or existing file to open for writing. Creates a new that wraps the file with the specified path. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. The path to check. Determines whether the specified path is supported by a . Returns if the path is supported, otherwise . Gets a value indicating whether the file could be opened. if the file was opened successfully; otherwise, . The path to the file to open. Opens a write-only stream to the specified file. Returns a stream that contains the file contents. Specifies the filtering algorithm for scaling and transforming images. Bilinear interpolation that samples the four nearest pixels and blends them. Nearest-neighbor sampling that uses the color of the single closest pixel. Filter quality settings. High quality. Low quality. Medium quality. Unspecified. Represents a font used for drawing and measuring text. Creates a new with the default typeface and size. The to use, or for the default typeface. The font size in points. The default is 12. The horizontal scale factor. The default is 1. The horizontal skew factor for oblique/italic effect. The default is 0. Creates a new with the specified typeface and settings. Gets or sets a value indicating whether glyphs snap to pixel boundaries on the baseline. if glyphs snap to pixels; otherwise, . The text to measure. The maximum width constraint. An optional for additional text effects. Measures text, stopping when the maximum width is exceeded. The number of characters that fit within the maximum width. The text to measure. The maximum width constraint. An optional for additional text effects. Measures text, stopping when the maximum width is exceeded. The number of characters that fit within the maximum width. The text to measure. The of the text. The maximum width constraint. An optional for additional text effects. Measures text, stopping when the maximum width is exceeded. The number of characters that fit within the maximum width. The text to measure. The maximum width constraint. When this method returns, contains the actual measured width of the text. An optional for additional text effects. Measures text, stopping when the maximum width is exceeded. The number of characters that fit within the maximum width. The text to measure. The maximum width constraint. When this method returns, contains the actual measured width of the text. An optional for additional text effects. Measures text, stopping when the maximum width is exceeded. The number of characters that fit within the maximum width. A pointer to the text buffer. The number of bytes in the text buffer. The of the text. The maximum width constraint. An optional for additional text effects. Measures text, stopping when the maximum width is exceeded. The number of characters that fit within the maximum width. The text to measure. The of the text. The maximum width constraint. When this method returns, contains the actual measured width of the text. An optional for additional text effects. Measures text, stopping when the maximum width is exceeded. The number of characters that fit within the maximum width. A pointer to the text buffer. The number of bytes in the text buffer. The of the text. The maximum width constraint. When this method returns, contains the actual measured width of the text. An optional for additional text effects. Measures text, stopping when the maximum width is exceeded. The number of characters that fit within the maximum width. The Unicode codepoint to check. Determines whether the font contains a glyph for the specified codepoint. if the font contains a glyph for the codepoint; otherwise, . The text to check. Determines whether the font contains glyphs for all characters in the text. if the font contains glyphs for all characters; otherwise, . The Unicode codepoints to check. Determines whether the font contains glyphs for all specified codepoints. if the font contains glyphs for all codepoints; otherwise, . The text to check. Determines whether the font contains glyphs for all characters in the string. if the font contains glyphs for all characters; otherwise, . The text to check. The of the text. Determines whether the font contains glyphs for all characters in the text. if the font contains glyphs for all characters; otherwise, . A pointer to the text buffer. The number of bytes in the text buffer. The of the text. Determines whether the font contains glyphs for all characters in the text. if the font contains glyphs for all characters; otherwise, . The text to count. Counts the number of glyphs needed to represent the text. The number of glyphs. The text to count. Counts the number of glyphs needed to represent the text. The number of glyphs. The text to count. The of the text. Counts the number of glyphs needed to represent the text. The number of glyphs. A pointer to the text buffer. The number of bytes in the text buffer. The of the text. Counts the number of glyphs needed to represent the text. The number of glyphs. Releases the native resources associated with this font. Gets or sets the font edging mode, which controls anti-aliasing. The mode. Gets or sets a value indicating whether to use embedded bitmap strikes in the font. to use embedded bitmaps; otherwise, . Gets or sets a value indicating whether to algorithmically embolden (thicken) the glyphs. to embolden glyphs; otherwise, . Gets or sets a value indicating whether to force auto-hinting instead of using the font's native hints. to force auto-hinting; otherwise, . When this method returns, contains the for this font. Gets the font metrics for this font. The recommended line spacing. The Unicode codepoint. Gets the glyph ID for a Unicode codepoint. The glyph ID, or 0 if the codepoint is not in the font. The text to process. The starting horizontal offset. Gets the horizontal offsets for the glyphs. An array of horizontal offsets for each glyph. The array of glyph IDs. The starting horizontal offset. Gets the horizontal offsets for the glyphs. An array of horizontal offsets for each glyph. The text to process. The starting horizontal offset. Gets the horizontal offsets for the glyphs. An array of horizontal offsets for each glyph. The text to process. The of the text. The starting horizontal offset. Gets the horizontal offsets for the glyphs. An array of horizontal offsets for each glyph. The text to process. The span to receive the horizontal offsets. The starting horizontal offset. Gets the horizontal offsets for the glyphs. The array of glyph IDs. The span to receive the horizontal offsets. The starting horizontal offset. Gets the horizontal offsets for the glyphs. The text to process. The span to receive the horizontal offsets. The starting horizontal offset. Gets the horizontal offsets for the glyphs. A pointer to the text buffer. The number of bytes in the text buffer. The of the text. The starting horizontal offset. Gets the horizontal offsets for the glyphs. An array of horizontal offsets for each glyph. The text to process. The of the text. The span to receive the horizontal offsets. The starting horizontal offset. Gets the horizontal offsets for the glyphs. A pointer to the text buffer. The number of bytes in the text buffer. The of the text. The span to receive the horizontal offsets. The starting horizontal offset. Gets the horizontal offsets for the glyphs. The glyph ID. Gets the outline path for a glyph. The representing the glyph outline, or if the glyph has no outline. The array of glyph IDs. A delegate called for each glyph path. Gets the outline paths for multiple glyphs by invoking a delegate for each. The text to process. The starting position offset. Gets the x,y positions for the glyphs. An array of positions for each glyph. The array of glyph IDs. The starting position offset. Gets the x,y positions for the glyphs. An array of positions for each glyph. The text to process. The starting position offset. Gets the x,y positions for the glyphs. An array of positions for each glyph. The text to process. The of the text. The starting position offset. Gets the x,y positions for the glyphs. An array of positions for each glyph. The text to process. The span to receive the glyph positions. The starting position offset. Gets the x,y positions for the glyphs. The array of glyph IDs. The span to receive the glyph positions. The starting position offset. Gets the x,y positions for the glyphs. The text to process. The span to receive the glyph positions. The starting position offset. Gets the x,y positions for the glyphs. A pointer to the text buffer. The number of bytes in the text buffer. The of the text. The starting position offset. Gets the x,y positions for the glyphs. An array of positions for each glyph. The text to process. The of the text. The span to receive the glyph positions. The starting position offset. Gets the x,y positions for the glyphs. A pointer to the text buffer. The number of bytes in the text buffer. The of the text. The span to receive the glyph positions. The starting position offset. Gets the x,y positions for the glyphs. The text to convert. Converts text to glyph IDs. An array of glyph IDs. The Unicode codepoints to convert. Converts text to glyph IDs. An array of glyph IDs. The text to convert. Converts text to glyph IDs. An array of glyph IDs. The text to convert. The of the text. Converts text to glyph IDs. An array of glyph IDs. The text to convert. The span to receive the glyph IDs. Converts text to glyph IDs. The Unicode codepoints to convert. The span to receive the glyph IDs. Converts text to glyph IDs. The text to convert. The span to receive the glyph IDs. Converts text to glyph IDs. A pointer to the text buffer. The number of bytes in the text buffer. The of the text. Converts text to glyph IDs. An array of glyph IDs. The text to convert. The of the text. The span to receive the glyph IDs. Converts text to glyph IDs. A pointer to the text buffer. The number of bytes in the text buffer. The of the text. The span to receive the glyph IDs. Converts text to glyph IDs. The text to process. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. The array of glyph IDs. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. The text to process. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. The text to process. The of the text. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. The text to process. When this method returns, contains the bounding rectangles for each glyph. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. The array of glyph IDs. When this method returns, contains the bounding rectangles for each glyph. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. The text to process. When this method returns, contains the bounding rectangles for each glyph. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. A pointer to the text buffer. The number of bytes in the text buffer. The of the text. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. The text to process. The of the text. When this method returns, contains the bounding rectangles for each glyph. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. The text to process. The span to receive the advance widths. The span to receive the bounding rectangles. An optional for additional text effects. Gets the advance widths for the glyphs. The array of glyph IDs. The span to receive the advance widths. The span to receive the bounding rectangles. An optional for additional text effects. Gets the advance widths for the glyphs. The text to process. The span to receive the advance widths. The span to receive the bounding rectangles. An optional for additional text effects. Gets the advance widths for the glyphs. A pointer to the text buffer. The number of bytes in the text buffer. The of the text. When this method returns, contains the bounding rectangles for each glyph. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. The text to process. The of the text. The span to receive the advance widths. The span to receive the bounding rectangles. An optional for additional text effects. Gets the advance widths for the glyphs. A pointer to the text buffer. The number of bytes in the text buffer. The of the text. The span to receive the advance widths. The span to receive the bounding rectangles. An optional for additional text effects. Gets the advance widths for the glyphs. The text to convert to a path. The starting position for the text. Gets the path for the text. The representing the text outline. The text to convert to a path. The positions for each glyph. Gets the path for the text. The representing the text outline. The text to convert to a path. The starting position for the text. Gets the path for the text. The representing the text outline. The text to convert to a path. The positions for each glyph. Gets the path for the text. The representing the text outline. The text to convert to a path. The of the text. The starting position for the text. Gets the path for the text. The representing the text outline. The text to convert to a path. The of the text. The positions for each glyph. Gets the path for the text. The representing the text outline. A pointer to the text buffer. The number of bytes in the text buffer. The of the text. The starting position for the text. Gets the path for the text. The representing the text outline. A pointer to the text buffer. The number of bytes in the text buffer. The of the text. The positions for each glyph. Gets the path for the text. The representing the text outline. The text to convert to a path. The along which to lay out the text. The text alignment relative to the path. The starting position for the text. Gets the path for text laid out along another path. The representing the text outline along the path. The array of glyph IDs. The along which to lay out the text. The text alignment relative to the path. The starting position for the text. Gets the path for text laid out along another path. The representing the text outline along the path. The text to convert to a path. The along which to lay out the text. The text alignment relative to the path. The starting position for the text. Gets the path for text laid out along another path. The representing the text outline along the path. The text to convert to a path. The of the text. The along which to lay out the text. The text alignment relative to the path. The starting position for the text. Gets the path for text laid out along another path. The representing the text outline along the path. The array of glyph IDs. The advance widths for each glyph. The positions for each glyph. The along which to lay out the text. The text alignment relative to the path. Gets the path for text laid out along another path. The representing the text outline along the path. A pointer to the text buffer. The number of bytes in the text buffer. The of the text. The along which to lay out the text. The text alignment relative to the path. The starting position for the text. Gets the path for text laid out along another path. The representing the text outline along the path. Gets or sets the font hinting level. The level. Gets or sets a value indicating whether metrics should ignore hinting for improved precision. to use linear metrics; otherwise, . The text to process. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. The array of glyph IDs. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. The text to process. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. The text to process. The of the text. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. The text to process. When this method returns, contains the bounding rectangles for each glyph. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. The array of glyph IDs. When this method returns, contains the bounding rectangles for each glyph. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. The text to process. When this method returns, contains the bounding rectangles for each glyph. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. A pointer to the text buffer. The number of bytes in the text buffer. The of the text. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. The text to process. The of the text. When this method returns, contains the bounding rectangles for each glyph. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. A pointer to the text buffer. The number of bytes in the text buffer. The of the text. When this method returns, contains the bounding rectangles for each glyph. An optional for additional text effects. Gets the advance widths for the glyphs. An array of advance widths for each glyph. Gets the font metrics for this font. The for this font. Gets or sets the horizontal scale factor applied to the font. The horizontal scale factor. The default is 1. Gets or sets the font size in points. The font size in points. The default is 12. Gets or sets the horizontal skew factor for an oblique or italic effect. The horizontal skew factor. The default is 0. Gets the recommended line spacing for this font. The line spacing. Gets or sets a value indicating whether subpixel glyph positioning is enabled. if subpixel positioning is enabled; otherwise, . Gets or sets the typeface used by this font. The , or for the default typeface. Specifies the type of edge smoothing to use when rendering glyphs. No edge smoothing; glyphs are rendered with hard, aliased edges. Grayscale antialiasing for smooth edges using alpha blending. Subpixel antialiasing that uses LCD pixel geometry for improved clarity on LCD displays. Specifies the level of hinting to be performed when rendering glyphs. Use the full amount of hinting for maximum adjustment of glyph outlines to the pixel grid. Do not apply any hinting to glyph outlines. Use a normal amount of hinting to improve glyph rendering at small sizes. Use slight hinting to improve contrast without changing glyph shapes. Manages a collection of fonts. Creates a new, default font manager. Returns the new font manager. The data to read the typeface from. The TTC index. Creates a new from the specified . Returns the new , or if the data is not recognized. The stream to read the typeface from. The TTC index. Creates a new from the specified stream. Returns the new , or if the stream is not recognized. The stream to read the typeface from. The TTC index. Creates a new from the specified stream. Returns the new , or if the stream is not recognized. The path to the typeface. The TTC index. Creates a new from the specified file path. Returns the new , or if the file does not exist or the contents are not recognized. Gets the default font manager. The default font manager. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Gets all the font family names loaded by this font manager. The collection of font family names. Gets the number of font families available. The number of font families. The index of the font family name to retrieve. Returns the font family name for the specified index. Returns the font family name. Returns all the font family names loaded by this font manager. Returns an array of all the font family names loaded by this font manager. The index of the font style set to retrieve. Returns the font style set for the specified index. Returns the font style set. The index must be in the range of [0, ). The family name to use when searching. Use the system fallback to find the typeface styles for the given family. Returns a with all the font styles supported by the specified family. Never returns and will return an empty set if the family is not found. The character to find a typeface for. Use the system fallback to find a typeface for the given character. Returns the that contains the given character, or if none was found. The character to find a typeface for. Use the system fallback to find a typeface for the given character. Returns the that contains the given character, or if none was found. The family name to use when searching. The character to find a typeface for. Use the system fallback to find a typeface for the given character. Returns the that contains the given character, or if none was found. The family name to use when searching. The character to find a typeface for. Use the system fallback to find a typeface for the given character. Returns the that contains the given character, or if none was found. The family name to use when searching. The ISO 639, 15924, and 3166-1 code to use when searching, such as "ja" and "zh". The character to find a typeface for. Use the system fallback to find a typeface for the given character. Returns the that contains the given character, or if none was found. if no family can be found for the character in the system fallback.]]> The family name to try and use. The ISO 639, 15924, and 3166-1 code to use when searching, such as "ja" and "zh". The character to find a typeface for. Use the system fallback to find a typeface for the given character. Returns the that contains the given character, or if none was found. if no family can be found for the character in the system fallback.]]> The family name to use when searching. The font style to use when searching. The ISO 639, 15924, and 3166-1 code to use when searching, such as "ja" and "zh". The character to find a typeface for. Use the system fallback to find a typeface for the given character. Returns the that contains the given character, or if none was found. if no family can be found for the character in the system fallback.]]> The family name to use when searching. The font weight to use when searching. The font width to use when searching. The font slant to use when searching. The ISO 639, 15924, and 3166-1 code to use when searching, such as "ja" and "zh". The character to find a typeface for. Use the system fallback to find a typeface for the given character. Returns the that contains the given character, or if none was found. if no family can be found for the character in the system fallback.]]> The family name to use when searching. The font weight to use when searching. The font width to use when searching. The font slant to use when searching. The ISO 639, 15924, and 3166-1 code to use when searching, such as "ja" and "zh". The character to find a typeface for. Use the system fallback to find a typeface for the given character. Returns the that contains the given character, or if none was found. if no family can be found for the character in the system fallback.]]> The family name to use when searching. The font weight to use when searching. The font width to use when searching. The font slant to use when searching. The ISO 639, 15924, and 3166-1 code to use when searching, such as "ja" and "zh". The character to find a typeface for. Use the system fallback to find a typeface for the given character. Returns the that contains the given character, or if none was found. if no family can be found for the character in the system fallback.]]> The name of the font family to match, or for the default family. Matches a typeface from the specified family using the default font style. The matched typeface, or if no match was found. The family name to use when searching. The font style to use when searching. Find the closest matching typeface to the specified family name and style. Returns the that contains the given family name and style, or the default font if no matching font was found. Will never return , as it will return the default font if no matching font is found. The typeface to use when searching. The font style to use when searching. Find the closest matching typeface to the specified typeface and style. Returns the that contains the given typeface and style, or the default font if no matching font was found. Will never return , as it will return the default font if no matching font is found. Structure to represent measurements for a font. Gets the recommended distance above the baseline. The recommended distance above the baseline. Will be <= 0. Gets the average character width. The average character width. Will be >= 0. Gets the greatest distance below the baseline for any glyph. The greatest distance below the baseline for any glyph. Will be >= 0. Gets the cap height. The cap height. Will be > 0, or 0 if cannot be determined. Gets the recommended distance below the baseline. The recommended distance below the baseline. Will be >= 0. The to compare with this instance. Determines whether the specified is equal to the current instance. if the specified object is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is equal to the current instance; otherwise, . Returns the hash code for this instance. A 32-bit signed integer hash code. Gets the recommended distance to add between lines of text. The recommended distance to add between lines of text. Will be >= 0. Gets the max character width. The max character width. Will be >= 0. The first value to compare. The second value to compare. Determines whether two specified instances are equal. if equals ; otherwise, . The first value to compare. The second value to compare. Determines whether two specified instances are not equal. if does not equal ; otherwise, . Gets the position of the bottom of the strikeout stroke relative to the baseline. The position of the bottom of the strikeout stroke relative to the baseline, or if the font does not have this metric. This value is typically negative when valid. Gets the thickness of the strikeout. The thickness of the strikeout, or if the font does not have this metric. Gets the greatest distance above the baseline for any glyph. The greatest distance above the baseline for any glyph. Will be <= 0. Gets the position of the top of the underline stroke relative to the baseline. The position of the top of the underline stroke relative to the baseline, or if the font does not have this metric. Negative - underline should be drawn above baseline. Positive - underline should be drawn below baseline. Zero - underline should be drawn on baseline.underline position, or 0 if cannot be determined. null - does not have an UnderlinePosition. Gets the thickness of the underline. The thickness of the underline, or if the font does not have this metric. 0 - if the thickness can not be determined null - if the thickness is not set. Gets the height of an 'x' in px. The height of an 'x' in px. 0 if no 'x' in face. Gets the maximum bounding box x value for all glyphs. The maximum bounding box x value for all glyphs. Gets the minimum bounding box x value for all glyphs. The minimum bounding box x value for all glyphs. Represents a particular style (bold, italic, condensed) of a typeface. Creates a new with a normal weight, a normal width and upright. The weight (light or bold). The width (condensed or expanded). The slant (italic). Creates a new with the specified weight, width and slant. The weight (light or bold). The width (condensed or expanded). The slant (italic). Creates a new with the specified weight, width and slant. Gets a new upright font style that is bold. A new upright bold font style. Gets a new italic font style that is bold. A new bold italic font style. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. Gets a new italic font style. A new italic font style. Gets a new normal (upright and not bold) font style. A new normal font style. Gets the slant of this style. The slant of this style. Gets the weight of this style. The weight of this style. The weight could potentially be one of the values of . Gets the width of this style. The width of this style. The weight could potentially be one of the values of . Represents the set of styles for a particular font family. Creates a new, empty . Gets the number of font styles in the set. The number of font styles. The font style to match. Creates a new with a style that is the closest match to the specified font style. Returns the new . The index of the font style to match. Creates a new with the style that is the closest match to the style at the specified index. Returns the new . to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Returns an enumerator that iterates through the font styles. Returns an enumerator. The index of the font style. Returns the name of the font style. Returns the name of the font style. The index of the font style. Gets the font style at the specified index. The font style at the specified index. Returns an enumerator that iterates through the font styles. Returns an enumerator. Various font slants for use with . The italic font slant, in which the slanted characters appear as they were designed. The oblique font slant, in which the characters are artificially slanted. The upright/normal font slant. Various predefined font weights for use with . Font weights can range from anywhere between 100 to 1000 (inclusive). A thick font weight of 900. A thick font weight of 700. This is the default for a bold font. A thick font weight of 1000. A thick font weight of 800. A thin font weight of 200. The font has no thickness at all. A thin font weight of 300. A thicker font weight of 500. A typical font weight of 400. This is the default font weight. A thick font weight of 600. A thin font weight of 100. Various predefined font widths for use with . A condensed font width of 3. An expanded font width of 7. A condensed font width of 2. An expanded font width of 8. A normal font width of 5. This is the default font width. A condensed font width of 4. An expanded font width of 6. A condensed font width of 1. An expanded font width of 9. A read-only stream that buffers the specified first chunk of bytes. This is useful for decoding images using streams that are not seekable, since needs to read the first few bytes to determine the codec to use. The stream to buffer. The number of bytes to buffer. Creates a new instance of that wraps the specified stream. The stream to buffer. The number of bytes to buffer. Creates a new instance of that wraps the specified stream. The stream to buffer. The number of bytes to buffer. to dispose the underlying stream when this stream is disposed; otherwise, . Creates a new instance of that wraps the specified stream. The stream to buffer. The number of bytes to buffer. to dispose the underlying stream when this stream is disposed; otherwise, . Creates a new instance of that wraps the specified stream. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any managed objects. Implemented by derived types to copy the current stream. Returns a pointer to the new instance. Implemented by derived types to return the total length of the stream. Returns the total length of the stream. Implemented by derived types to get the current position in the stream. Returns the current position in the stream. Implemented by derived types to indicate whether this stream can report its total length. Returns a value indicating whether this stream can report its total length. Implemented by derived types to indicate whether this stream can report its current position. Returns a value indicating whether this stream can report its current position. Implemented by derived types to indicate whether all the bytes in the stream have been read. Returns a value indicating whether all the bytes in the stream have been read. The relative offset. Implemented by derived types to seek to a relative offset. Returns if seeking is supported and the seek was successful, otherwise . If an attempt is made to move to a position outside the stream, the position must be set to the closest point within the stream (beginning or end). The buffer to read into. The number of bytes to read. Implemented by derived types to copy the specified number of bytes into the specified buffer. Returns the number of bytes actually peeked/copied. The stream's cursor must be returned to the position before this method was called. The buffer to read into. The number of bytes to read. Implemented by derived types to copy the specified number of bytes into the specified buffer. Returns the number of bytes actually read. Implemented by derived types to rewind the current stream. Returns if the stream is known to be at the beginning after this call returns. The absolute position. Implemented by derived types to seek to an absolute position. Returns if seeking is supported and the seek was successful, otherwise . If an attempt is made to move to a position outside the stream, the position must be set to the closest point within the stream (beginning or end). A read-only stream that buffers the specified first chunk of bytes. This is useful for decoding images using streams that are not seekable, since needs to read the first few bytes to determine the codec to use. The stream to buffer. Creates a new instance of that wraps the specified stream. The stream to buffer. to dispose the underlying stream when this stream is disposed; otherwise, . Creates a new instance of that wraps the specified stream. The stream to buffer. The number of bytes to buffer. Creates a new instance of that wraps the specified stream. The stream to buffer. The number of bytes to buffer. to dispose the underlying stream when this stream is disposed; otherwise, . Creates a new instance of that wraps the specified stream. Gets a value indicating whether the current stream supports reading. if the stream supports reading; otherwise, . Gets a value indicating whether the current stream supports seeking. if the stream supports seeking; otherwise, . Gets a value indicating whether the current stream supports writing. if the stream supports writing; otherwise, . The default number of bytes to buffer (4096 bytes). to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Clears all buffers for this stream and causes any buffered data to be written to the underlying device. Gets the stream length in bytes. The length of the stream in bytes. Gets the position within the current stream. The current position within the stream. The buffer to which bytes are to be copied. The byte offset in the buffer at which to begin reading bytes. The number of bytes to be read. Copies bytes from the current buffered stream to an array. Returns the total number of bytes read into the buffer array. The byte offset relative to the specified origin. The reference point from which to obtain the new position. Sets the position within the current buffered stream. Returns the new position within the current buffered stream. An integer indicating the desired length of the current buffered stream in bytes. Sets the length of the buffered stream. The byte array from which to copy count bytes to the current buffered stream. The offset in the buffer at which to begin copying bytes to the current buffered stream. The number of bytes to be written to the current buffered stream. Copies bytes to the buffered stream and advances the current position within the buffered stream by the number of bytes written. The path of the glyph, or if the glyph has no path. The transformation matrix to position the glyph. Represents a callback method that receives the path and transformation matrix for each glyph when enumerating glyph paths. Provides global settings and cache management for Skia graphics operations. The memory dump object to receive the statistics. Dumps memory statistics to the specified trace memory dump object. Gets the maximum number of entries allowed in the font cache. The maximum number of font cache entries. Gets the number of entries currently in the font cache. The number of font cache entries currently in use. Gets the maximum number of bytes allowed for the font cache. The maximum number of bytes for the font cache. Gets the maximum point size for which distance field fonts are used. The maximum point size limit for font cache. Gets the number of bytes currently used by the font cache. The number of bytes used by the font cache. Gets the maximum number of bytes that can be allocated for a single resource cache entry. The maximum number of bytes for a single resource cache allocation. Gets the maximum number of bytes allowed for the resource cache. The maximum number of bytes for the resource cache. Gets the number of bytes currently used by the resource cache. The number of bytes used by the resource cache. Initializes the Skia graphics system. Purges all cached data, including both the font cache and resource cache. Purges all cached font data. Purges all cached resource data. The new maximum number of font cache entries. Sets the maximum number of entries allowed in the font cache. The previous maximum number of font cache entries. The new maximum number of bytes for the font cache. Sets the maximum number of bytes allowed for the font cache. The previous maximum number of bytes for the font cache. The new maximum point size limit. Sets the maximum point size for which distance field fonts are used. The previous maximum point size limit. The new maximum number of bytes for a single resource cache allocation. Sets the maximum number of bytes that can be allocated for a single resource cache entry. The previous maximum number of bytes for a single resource cache allocation. The new maximum number of bytes for the resource cache. Sets the maximum number of bytes allowed for the resource cache. The previous maximum number of bytes for the resource cache. High contrast configuration settings for use with . to convert the color to grayscale; otherwise, . The style of brightness or lightness inversion to apply, or none. The amount to adjust the contrast by, in the range -1.0 through 1.0. Creates a new instance of . Gets or sets the amount to adjust the contrast by, in the range -1.0 through 1.0. The contrast adjustment value. Gets a new instance with the values set to the defaults. The to compare with this instance. Determines whether the specified is equal to this instance. if the specified object is equal to this instance; otherwise, . The object to compare with this instance. Determines whether the specified object is equal to this instance. if the specified object is equal to this instance; otherwise, . Returns a hash code for this instance. A hash code for this instance. Gets or sets a value indicating whether the color will be converted to grayscale. if the color will be converted to grayscale; otherwise, . Gets or sets a value indicating whether to invert brightness, lightness, or neither. One of the enumeration values that specifies the invert style. Gets a value indicating if the configuration is valid. if the configuration is valid; otherwise, . The first to compare. The second to compare. Determines whether two instances are equal. if the two instances are equal; otherwise, . The first to compare. The second to compare. Determines whether two instances are not equal. if the two instances are not equal; otherwise, . Various invert styles for high contrast calculations. Invert the brightness. Invert the lightness. Do not invert. A run buffer for horizontally-positioned text where glyphs share a common Y coordinate. Gets the span of horizontal X positions for each glyph. A span containing the horizontal positions. Gets the span of horizontal X positions for each glyph. A span containing the horizontal positions. The horizontal X positions to set for each glyph. Sets the horizontal X positions for each glyph in the run. A buffer for horizontally-positioned text runs with cluster and text data. Gets the span of horizontal X positions for each glyph. A span containing the horizontal positions. The horizontal X positions to set for each glyph. Sets the horizontal X positions for each glyph in the run. Convenience methods for . The color type to validate against. The alpha type to validate. Returns a valid alpha type for the specified color type. A valid alpha type that is compatible with the color type. The color type to query. Gets the bit shift value per pixel for the specified color type. The number of bits to shift to calculate byte offsets for pixels. The color type to query. Gets the number of bytes per pixel for the specified color type. The number of bytes required to store one pixel. The pixel geometry to test. Determines whether the pixel geometry is BGR. if the pixel geometry is BGR; otherwise, . The pixel geometry to test. Determines whether the pixel geometry is horizontal. if the pixel geometry is horizontal; otherwise, . The pixel geometry to test. Determines whether the pixel geometry is RGB. if the pixel geometry is RGB; otherwise, . The pixel geometry to test. Determines whether the pixel geometry is vertical. if the pixel geometry is vertical; otherwise, . The channel selector type to convert. Converts a displacement map channel selector type to a color channel. The corresponding value. The render target gamma to convert. Converts a render target gamma to a color space transfer function. The corresponding value. The named gamma to convert. Converts a named gamma to a color space transfer function. The corresponding value. The color space gamut to convert. Converts a color space gamut to an XYZ transformation matrix. The corresponding matrix. The 4x4 matrix to convert. Converts a 4x4 matrix to an XYZ color space transformation matrix. The corresponding matrix. The to convert. Converts a to an equivalent , if possible. Returns the equivalent , or if there is none. The to convert. Converts a to an equivalent . Returns the equivalent . The to convert. Converts a to the equivalent OpenGL sized format, if possible. Returns the equivalent OpenGL sized format, or 0 if there is none. The to convert. Converts a to the equivalent OpenGL sized format, if possible. Returns the equivalent OpenGL sized format, or 0 if there is none. The to convert. Converts a to an equivalent , if possible. Returns the equivalent , or if there is none. The filter quality to convert. Converts a filter quality to sampling options. The corresponding value. The matrix convolution tile mode to convert. Converts a matrix convolution tile mode to a shader tile mode. The corresponding value. The encoding to convert. Converts an encoding to a text encoding. The corresponding value. Provides version information for SkiaSharp and its native library. to throw an exception if the native library is incompatible; otherwise, . Checks whether the native library version is compatible with the managed assembly. if the native library is compatible; otherwise, . Gets the version of the native Skia library. The version of the native library. Gets the minimum required version of the native Skia library. The minimum required version of the native library. An abstraction for drawing a rectangle of pixels. An image is an abstraction of pixels, though the particular type of image could be actually storing its data on the GPU, or as drawing commands (picture or PDF or otherwise), ready to be played back into another canvas. The content of an image is always immutable, though the actual storage may change, if for example that image can be recreated via encoded data or other means. An image always has a non-zero dimensions. If there is a request to create a new image, either directly or via a surface, and either of the requested dimensions are zero, then will be returned. Gets the configured for the bitmap. One of the enumeration values that specifies the alpha type. The filter to apply to the current image. The active portion of this image. Constrains the device-space extent of the image to the given rectangle. The active portion of the resulting image. The amount to translate the resulting image relative to the source when it is drawn. Applies a given image filter to this image, and return the filtered result. Returns the resulting image after the filter is applied, or if the image could not be created or would be transparent black (#00000000). The filter to apply to the current image. The active portion of this image. Constrains the device-space extent of the image to the given rectangle. The active portion of the resulting image. The amount to translate the resulting image relative to the source when it is drawn. Applies a given image filter to this image, and return the filtered result. Returns the resulting image after the filter is applied, or if the image could not be created or would be transparent black (#00000000). The GPU context. The image filter to apply. The subset of the image to process. The clipping bounds. Returns the subset of the resulting image. Returns the offset of the resulting image. Applies an image filter to this image. Returns the filtered image, or if the filter could not be applied. The GPU context. The image filter to apply. The subset of the image to process. The clipping bounds. Returns the subset of the resulting image. Returns the offset of the resulting image. Applies an image filter to this image. Returns the filtered image, or if the filter could not be applied. Gets the image color space. The color space, or if the image has no color space. Gets the image color type. One of the enumeration values that specifies the color type. The image information to use. Creates a new raster-based using the specified information. Returns the new instance. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Encodes the image using the format. Returns the wrapping the encoded image. Use the overload that takes a if you want to encode in a different format. The serializer to use to encode the image. Encodes the image using the specified serializer. Returns the wrapping the encoded image. The file format used to encode the image. The quality level to use for the image. This is in the range from 0-100. Encodes the image using the specified format. Returns the wrapping the encoded image. The quality is a suggestion, and not all formats (for example, PNG) respect or support it. Gets the encoded image pixels as a , if the image was created from supported encoded stream format. The encoded image data, or if the image was not created from an encoded stream. Returns if the image mage contents are not encoded. The graphics context. The description of the existing texture. Creates a new image from the specified texture descriptor. Returns the new image, or if the specified descriptor is unsupported. SkiaSharp will delete or recycle the texture when the image is released. The graphics context. The description of the existing OpenGL texture. Creates a new image from the specified OpenGL texture descriptor. Returns the new image, or if the specified descriptor is unsupported. SkiaSharp will delete or recycle the OpenGL texture when the image is released. The graphics context. The description of the existing backend texture. The color type to use for the image. Creates a new image from the specified texture. Returns the new image, or if the specified texture is unsupported. SkiaSharp will delete or recycle the texture when the image is released. The graphics context. The description of the existing texture. The alpha type of the texture. Creates a new image from the specified texture descriptor. Returns the new image, or if the specified descriptor is unsupported. SkiaSharp will delete or recycle the texture when the image is released. The graphics context. The description of the existing OpenGL texture. The alpha type of the texture. Creates a new image from the specified OpenGL texture descriptor. Returns the new image, or if the specified descriptor is unsupported. SkiaSharp will delete or recycle the texture when the image is released. The GPU context. The backend texture. The color type of the image. Creates an image from the specified texture, taking ownership of the texture. Returns a new image, or if the texture is invalid. SkiaSharp will delete or recycle the texture when the image is released. The graphics context. The description of the existing backend texture. The origin of the texture. The color type to use for the image. Creates a new image from the specified texture. Returns the new image, or if the specified texture is unsupported. SkiaSharp will delete or recycle the texture when the image is released. The GPU context. The backend texture. The origin of the texture. The color type of the image. Creates an image from the specified texture, taking ownership of the texture. Returns a new image, or if the texture is invalid. SkiaSharp will delete or recycle the texture when the image is released. The graphics context. The description of the existing backend texture. The origin of the texture. The color type to use for the image. The transparency mode to use for the image. Creates a new image from the specified texture. Returns the new image, or if the specified texture is unsupported. SkiaSharp will delete or recycle the texture when the image is released. The GPU context. The backend texture. The origin of the texture. The color type of the image. The alpha type of the image. Creates an image from the specified texture, taking ownership of the texture. Returns a new image, or if the texture is invalid. SkiaSharp will delete or recycle the texture when the image is released. The graphics context. The description of the existing backend texture. The origin of the texture. The color type to use for the image. The transparency mode to use for the image. The colorspace to use for the image. Creates a new image from the specified texture. Returns the new image, or if the specified texture is unsupported. SkiaSharp will delete or recycle the texture when the image is released. The GPU context. The backend texture. The origin of the texture. The color type of the image. The alpha type of the image. The colorspace of the image. Creates an image from the specified texture, taking ownership of the texture. Returns a new image, or if the texture is invalid. SkiaSharp will delete or recycle the texture when the image is released. The bitmap that will be used as the source for the image. Creates a new image from the provided . An image whose contents are the contents of the specified bitmap. If the bitmap is marked immutable, and its pixel memory is shareable, it may be shared instead of copied. The data holding the encoded image. Creates a new image from an encoded image wrapped by the data. The decoded image, or on error. The stream holding the encoded image. Creates a new image from an encoded image stream. The decoded image, or on error. The buffer holding the encoded image. Creates a new image from an encoded image buffer. The decoded image, or on error. The stream holding the encoded image. Creates a new image from an encoded image stream. The decoded image, or on error. The buffer holding the encoded image. Creates a new image from an encoded image buffer. The decoded image, or on error. The path to an encoded image on the file system. Creates a new image from an encoded image file. The decoded image, or on error. The data holding the encoded image. The bounds for a subset of the image. Creates a new image from an encoded image wrapped by the data. The decoded image, or on error. The picture. The size of the raster image. Creates a new image from the provided . An image whose contents is the picture. The picture. The size of the raster image. The matrix to use when reading the image. Creates a new image from the provided . An image whose contents is the picture. The picture. The size of the raster image. The paint to use when reading the image. Creates a new image from the provided . An image whose contents is the picture. The picture. The size of the raster image. The matrix to use when reading the image. The paint to use when reading the image. Creates a new image from the provided . An image whose contents is the picture. The pixmap that contains the image information and buffer location. Creates a new image from a copy of an in-memory buffer. A new image with a copy of the contents of the specified buffer, or on error. The image information describing the encoding of the image in the stream. The stream of image data. Creates a new image from a copy of the stream data. A new image with a copy of the contents of the specified buffer, or on error. The image information describing the encoding of the image in memory. The buffer of image data. Creates a new image from a copy of an in-memory buffer. A new image with a copy of the contents of the specified buffer, or on error. The image information describing the encoding of the image in memory. The pointer to the image in memory. Creates a new image from a copy of an in-memory buffer. A new image with a copy of the contents of the specified buffer, or on error. The image information describing the encoding of the image in the stream. The stream of image data. Creates a new image from a copy of the stream data. A new image with a copy of the contents of the specified buffer, or on error. The image information describing the encoding of the image in memory. The buffer of image data. Creates a new image from a copy of an in-memory buffer. A new image with a copy of the contents of the specified buffer, or on error. The image information describing the encoding of the image in the stream. The stream of image data. The specified the number of bytes used per row in the image. Creates a new image from a copy of the stream data. A new image with a copy of the contents of the specified buffer, or on error. The image information describing the encoding of the image in memory. The buffer of image data. The specified the number of bytes used per row in the image. Creates a new image from a copy of an in-memory buffer. A new image with a copy of the contents of the specified buffer, or on error. The image information describing the encoding of the image in memory. The pointer to the image in memory. The specified the number of bytes used per row in the image. Creates a new image from a copy of an in-memory buffer. A new image with a copy of the contents of the specified buffer, or on error. The image information describing the encoding of the image in the stream. The stream of image data. The specified the number of bytes used per row in the image. Creates a new image from a copy of the stream data. A new image with a copy of the contents of the specified buffer, or on error. The image information describing the encoding of the image in memory. The buffer of image data. The specified the number of bytes used per row in the image. Creates a new image from a copy of an in-memory buffer. A new image with a copy of the contents of the specified buffer, or on error. The image information describing the encoding of the image in memory. The pointer to the image in memory. The specified the number of bytes used per row in the image. The color table to use with the image data. Creates a new image from a copy of an in-memory buffer. A new image with a copy of the contents of the specified buffer, or on error. The image information describing the encoding of the image in memory. The data object that contains the pixel data. The specified the number of bytes used per row in the image. Creates a new image from an in-memory buffer. A new image wrapping the specified buffer, or on error. The pixmap that contains the image information and buffer location. Creates a new image from an in-memory buffer. A new image wrapping the specified buffer, or on error. The image information. The pixel data. Creates an image from the specified raster data. Returns a new image, or if the data is invalid. The image information describing the encoding of the image in memory. The pointer to the image in memory. Creates a new image from an in-memory buffer. A new image wrapping the specified buffer, or on error. The pixmap that contains the image information and buffer location. The delegate to invoke when the image is about to be destroyed. Creates a new image from an in-memory buffer. A new image wrapping the specified buffer, or on error. The image information describing the encoding of the image in memory. The data object that contains the pixel data. The specified the number of bytes used per row in the image. Creates a new image from an in-memory buffer. A new image wrapping the specified buffer, or on error. The image information describing the encoding of the image in memory. The pointer to the image in memory. The specified the number of bytes used per row in the image. Creates a new image from an in-memory buffer. A new image wrapping the specified buffer, or on error. The pixmap that contains the image information and buffer location. The delegate to invoke when the image is about to be destroyed. The user data to use when invoking the delegate. Creates a new image from an in-memory buffer. A new image wrapping the specified buffer, or on error. The graphics context. The description of the existing texture. Creates a new image from the specified texture descriptor. Returns the new image, or if the specified descriptor is unsupported. The graphics context. The description of the existing texture. Creates a new image from the specified OpenGL texture descriptor. Returns the new image, or if the specified descriptor is unsupported. The graphics context. The description of the existing backend texture. The color type to use for the image. Creates a new image from the specified texture. Returns the new image, or if the specified texture is unsupported. The graphics context. The description of the existing texture. The alpha type of the texture. Creates a new image from the specified texture descriptor. Returns the new image, or if the specified descriptor is unsupported. The graphics context. The description of the existing OpenGL texture. The alpha type of the texture. Creates a new image from the specified OpenGL texture descriptor. Returns the new image, or if the specified descriptor is unsupported. The GPU context. The backend texture. The color type of the image. Creates an image from the specified texture without taking ownership. Returns a new image, or if the texture is invalid. The graphics context. The description of the existing backend texture. The origin of the texture. The color type to use for the image. Creates a new image from the specified texture. Returns the new image, or if the specified texture is unsupported. The graphics context. The description of the existing texture. The alpha type of the texture. The delegate to invoke when the image is about to be destroyed. Creates a new image from the specified texture descriptor. Returns the new image, or if the specified descriptor is unsupported. The graphics context. The description of the existing OpenGL texture. The alpha type of the texture. The delegate to invoke when the image is about to be destroyed. Creates a new image from the specified OpenGL texture descriptor. Returns the new image, or if the specified descriptor is unsupported. The GPU context. The backend texture. The origin of the texture. The color type of the image. Creates an image from the specified texture without taking ownership. Returns a new image, or if the texture is invalid. The graphics context. The description of the existing backend texture. The origin of the texture. The color type to use for the image. The transparency mode to use for the image. Creates a new image from the specified texture. Returns the new image, or if the specified texture is unsupported. The graphics context. The description of the existing texture. The alpha type of the texture. The delegate to invoke when the image is about to be destroyed. The user data to use when invoking the delegate. Creates a new image from the specified texture descriptor. Returns the new image, or if the specified descriptor is unsupported. The graphics context. The description of the existing OpenGL texture. The alpha type of the texture. The delegate to invoke when the image is about to be destroyed. The user data to use when invoking the delegate. Creates a new image from the specified OpenGL texture descriptor. Returns the new image, or if the specified descriptor is unsupported. The GPU context. The backend texture. The origin of the texture. The color type of the image. The alpha type of the image. Creates an image from the specified texture without taking ownership. Returns a new image, or if the texture is invalid. The graphics context. The description of the existing backend texture. The origin of the texture. The color type to use for the image. The transparency mode to use for the image. The colorspace to use for the image. Creates a new image from the specified texture. Returns the new image, or if the specified texture is unsupported. The GPU context. The backend texture. The origin of the texture. The color type of the image. The alpha type of the image. The colorspace of the image. Creates an image from the specified texture without taking ownership. Returns a new image, or if the texture is invalid. The graphics context. The description of the existing backend texture. The origin of the texture. The color type to use for the image. The transparency mode to use for the image. The colorspace to use for the image. The delegate to invoke when the image is about to be destroyed. Creates a new image from the specified texture. Returns the new image, or if the specified texture is unsupported. The GPU context. The backend texture. The origin of the texture. The color type of the image. The alpha type of the image. The colorspace of the image. The delegate to invoke when the image is released. Creates an image from the specified texture without taking ownership. Returns a new image, or if the texture is invalid. The graphics context. The description of the existing backend texture. The origin of the texture. The color type to use for the image. The transparency mode to use for the image. The colorspace to use for the image. The delegate to invoke when the image is about to be destroyed. The user data to use when invoking the delegate. Creates a new image from the specified texture. Returns the new image, or if the specified texture is unsupported. The GPU context. The backend texture. The origin of the texture. The color type of the image. The alpha type of the image. The colorspace of the image. The delegate to invoke when the image is released. User data to pass to the release delegate. Creates an image from the specified texture without taking ownership. Returns a new image, or if the texture is invalid. Gets the image height. The image height in pixels. Gets the image information describing the image. The describing the image. Gets a value indicating whether the image will be drawn as a mask, with no intrinsic color of its own. if the image will be drawn as a mask; otherwise, . Gets a value indicating whether the image is backed by an image-generator or other source that creates (and caches) its pixels / texture on-demand. if the image is lazily generated; otherwise, . If this method returns , then will return . Gets a value indicating whether the image is texture backed. if the image is texture backed; otherwise, . The GPU context. Returns whether the image is valid for the given GPU context. Returns if the image is valid; otherwise . If the image is GPU-backed and the context matches, the image is valid. The GPU context. Returns whether the image is valid for the given GPU context. Returns if the image is valid; otherwise . If the image is GPU-backed and the context matches, the image is valid. Returns the pixmap if the image is raster-based. Returns the pixmap, or if the image does not have access to pixel data. The pixmap to receive the pixel information. Returns the pixmap if the image is raster-based. Returns on success, or if the image does not have access to pixel data. The pixmap to receive the pixel data. Copies the pixels from this image into the destination pixmap. Returns on success; otherwise . The destination image information. The destination pixel buffer. Copies the pixels from this image into the destination buffer. Returns on success; otherwise . The destination image information. The destination pixel buffer. The number of bytes between rows in the destination buffer. Copies the pixels from this image into the destination buffer. Returns on success; otherwise . The pixmap to read the pixel data into. The source x-coordinate to start reading from. The source y-coordinate to start reading from. Copies the pixels from the image into the specified buffer. Returns if the pixels were read, or if there was an error. This method may return if the source rectangle [, , dst.Info.Width, dst.Info.Height] does not intersect the image, or if the color type/alpha type could not be converted to the destination types. The pixmap to read the pixel data into. The source x-coordinate to start reading from. The source y-coordinate to start reading from. The caching hint to use for intermediate results. Copies the pixels from the image into the specified buffer. Returns if the pixels were read, or if there was an error. This method may return if the source rectangle [, , dst.Info.Width, dst.Info.Height] does not intersect the image, or if the color type/alpha type could not be converted to the destination types. The image information describing the destination pixel buffer. The pixel buffer to read the pixel data into. The number of bytes in each row of in the destination buffer. The source x-coordinate to start reading from. The source y-coordinate to start reading from. Copies the pixels from the image into the specified buffer. Returns if the pixels were read, or if there was an error. This method may return if the source rectangle [, , dstInfo.Width, dstInfo.Height] does not intersect the image, or if the color type/alpha type could not be converted to the destination types. The image information describing the destination pixel buffer. The pixel buffer to read the pixel data into. The number of bytes in each row of in the destination buffer. The source x-coordinate to start reading from. The source y-coordinate to start reading from. The caching hint to use for intermediate results. Copies the pixels from the image into the specified buffer. Returns if the pixels were read, or if there was an error. This method may return if the source rectangle [, , dstInfo.Width, dstInfo.Height] does not intersect the image, or if the color type/alpha type could not be converted to the destination types. The pixmap describing the destination pixel buffer. The quality of scaling to use. Copies the pixels from this image into the destination pixmap, scaling the image if the dimensions differ. Returns on success, or if the color type/alpha type could not be converted to the destination types. The destination pixmap. The sampling options to use when scaling. Copies the pixels from this image into the destination pixmap, scaling the image if the dimensions differ. Returns on success; otherwise . The pixmap describing the destination pixel buffer. The quality of scaling to use. The caching hint to use for intermediate results. Copies the pixels from this image into the destination pixmap, scaling the image if the dimensions differ. Returns on success, or if the color type/alpha type could not be converted to the destination types. The destination pixmap. The sampling options to use when scaling. The caching hint to use for intermediate results. Copies the pixels from this image into the destination pixmap, scaling the image if the dimensions differ. Returns on success; otherwise . The rectangle indicating the subset to obtain. Returns a new image that is a subset of this image. Returns the new image, or if there was an error or the rectangle does not intersect the image. The underlying implementation may share the pixels, or it may make a copy. The GPU context. The subset of the image to process. Returns a new image that is a subset of this image. Returns the new image, or if the rectangle does not intersect the image. The underlying implementation may share the pixels, or it may make a copy. Returns a raster-based image of the current image. Returns a raster-based copy of a texture image, or the same image if it already raster-based. Whether to ensure the image has pixel data. Returns a raster-backed image of the current image. Returns a raster image, or if the conversion fails. If the image is already raster-backed, it may return the same image. Creates a raw shader from the current image without color space conversion. Returns a new raw shader. The tile mode for the x-axis. The tile mode for the y-axis. Creates a raw shader from the current image without color space conversion. Returns a new raw shader. The tile mode for the x-axis. The tile mode for the y-axis. The local matrix to use with the shader. Creates a raw shader from the current image without color space conversion. Returns a new raw shader. The tile mode for the x-axis. The tile mode for the y-axis. The sampling options to use. Creates a raw shader from the current image without color space conversion. Returns a new raw shader. The tile mode for the x-axis. The tile mode for the y-axis. The sampling options to use. The local matrix to use with the shader. Creates a raw shader from the current image without color space conversion. Returns a new raw shader. Creates a shader from the current image. Returns a new shader that will draw the current image. The method in which to tile along the x-axis. The method in which to tile along the y-axis. Creates a new bitmap shader from the current image. Returns a new bitmap shader that will draw the current image. The tile mode for the x-axis. The tile mode for the y-axis. The filter quality to use. Creates a shader from the current image. Returns a new shader that will draw the current image. The method in which to tile along the x-axis. The method in which to tile along the y-axis. The local matrix to use with the shader. Creates a new bitmap shader from the current image. Returns a new bitmap shader that will draw the current image. The tile mode for the x-axis. The tile mode for the y-axis. The sampling options to use. Creates a shader from the current image. Returns a new shader that will draw the current image. The tile mode for the x-axis. The tile mode for the y-axis. The filter quality to use. The local matrix to use with the shader. Creates a shader from the current image. Returns a new shader that will draw the current image. The tile mode for the x-axis. The tile mode for the y-axis. The sampling options to use. The local matrix to use with the shader. Creates a shader from the current image. Returns a new shader that will draw the current image. The GPU context. Returns a GPU-backed image from this image. Returns a GPU-backed image, or if the conversion fails. If the image is already GPU-backed, it may return the same image. The GPU context. The colorspace of the image. Returns a GPU-backed image from this image. Returns a GPU-backed image, or if the conversion fails. If the image is already GPU-backed, it may return the same image. The GPU context. Whether to generate mipmaps. Returns a GPU-backed image from this image. Returns a GPU-backed image, or if the conversion fails. If the image is already GPU-backed, it may return the same image. The GPU context. Whether to generate mipmaps. Whether the image should count against the GPU resource budget. Returns a GPU-backed image from this image. Returns a GPU-backed image, or if the conversion fails. If the image is already GPU-backed, it may return the same image. Gets the unique ID associated with the image. The unique identifier. Gets the image width. The image width in pixels. Hints to image calls where the system might cache computed intermediates. Use the system's default behaviour. Caching should be avoided. Image filters for use with the property of a . The region for alpha threshold processing. The alpha threshold for pixels inside the region. The alpha threshold for pixels outside the region. Creates an image filter that applies alpha threshold processing to pixels inside and outside a region. Returns the new , or on error. The region to sample. The minimum alpha for pixels within the region. The maximum alpha for pixels outside the region. The input filter to use. Creates an image filter that samples a region. Returns the new , or on error. If the sample is inside the region the alpha of the image is boosted up to a threshold value. If it is outside the region then the alpha is decreased to the threshold value. The (0, 0) point of the region corresponds to the upper left corner of the source image. The region to sample. The minimum alpha for pixels within the region. The maximum alpha for pixels outside the region. The input filter to use. Creates an image filter that samples a region. Returns the new , or on error. If the sample is inside the region the alpha of the image is boosted up to a threshold value. If it is outside the region then the alpha is decreased to the threshold value. The (0, 0) point of the region corresponds to the upper left corner of the source image. The first arithmetic blend coefficient. The second arithmetic blend coefficient. The third arithmetic blend coefficient. The fourth arithmetic blend coefficient. Whether to enforce premultiplied colors in the result. The background image filter, or to use the source bitmap. Creates an image filter that combines two images using the arithmetic blend formula: result = k1*src*dst + k2*src + k3*dst + k4. Returns the new , or on error. The first arithmetic blend coefficient. The second arithmetic blend coefficient. The third arithmetic blend coefficient. The fourth arithmetic blend coefficient. Whether to enforce premultiplied colors in the result. The background image filter, or to use the source bitmap. The foreground image filter, or to use the source bitmap. Creates an image filter that combines two images using the arithmetic blend formula: result = k1*src*dst + k2*src + k3*dst + k4. Returns the new , or on error. The k1 constant value. The k2 constant value. The k3 constant value. The k4 constant value. to enforce premultiplied colors; otherwise, . The background image filter to use. If this is , then the source bitmap is used. The foreground image filter to use. If this is , then the source bitmap is used. The rectangle to which the output processing will be limited. Creates an image filter that applies the specified arithmetic blend. Returns the new , or on error. The first arithmetic blend coefficient. The second arithmetic blend coefficient. The third arithmetic blend coefficient. The fourth arithmetic blend coefficient. Whether to enforce premultiplied colors in the result. The background image filter, or to use the source bitmap. The foreground image filter, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that combines two images using the arithmetic blend formula: result = k1*src*dst + k2*src + k3*dst + k4. Returns the new , or on error. The custom blender to use. The background image filter, or to use the source bitmap. Creates an image filter that blends two images using the specified blend mode. Returns the new , or on error. The blend mode to use. The background image filter, or to use the source bitmap. Creates an image filter that blends two images using the specified blend mode. Returns the new , or on error. The custom blender to use. The background image filter, or to use the source bitmap. The foreground image filter, or to use the source bitmap. Creates an image filter that blends two images using the specified blend mode. Returns the new , or on error. The blend mode to use. The background image filter, or to use the source bitmap. The foreground image filter, or to use the source bitmap. Creates an image filter that blends two images using the specified blend mode. Returns the new , or on error. The custom blender to use. The background image filter, or to use the source bitmap. The foreground image filter, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that blends two images using the specified blend mode. Returns the new , or on error. The blend mode. The background filter. The foreground filter. The rectangle to which the output processing will be limited. Creates an image filter that applies a blend mode. Returns the new , or on error. The blend mode to use. The background image filter, or to use the source bitmap. The foreground image filter, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that blends two images using the specified blend mode. Returns the new , or on error. The Gaussian blur standard deviation in the X direction. The Gaussian blur standard deviation in the Y direction. Creates an image filter that applies a Gaussian blur. Returns the new , or on error. The Gaussian blur standard deviation in the X direction. The Gaussian blur standard deviation in the Y direction. The input filter to use, or to use the source bitmap. Creates an image filter that applies a Gaussian blur. Returns the new , or on error. The Gaussian blur standard deviation in the X direction. The Gaussian blur standard deviation in the Y direction. The tile mode for edge handling. Creates an image filter that applies a Gaussian blur. Returns the new , or on error. The standard deviation of the Gaussian blur to apply (greater than 0) in the horizontal direction. The standard deviation of the Gaussian blur to apply (greater than 0) in the vertical direction. The input filter to use. The rectangle to which the output processing will be limited. Creates an image filter that applies a blur. Returns the new , or on error. The Gaussian blur standard deviation in the X direction. The Gaussian blur standard deviation in the Y direction. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies a Gaussian blur. Returns the new , or on error. The Gaussian blur standard deviation in the X direction. The Gaussian blur standard deviation in the Y direction. The tile mode for edge handling. The input filter to use, or to use the source bitmap. Creates an image filter that applies a Gaussian blur. Returns the new , or on error. The Gaussian blur standard deviation in the X direction. The Gaussian blur standard deviation in the Y direction. The tile mode for edge handling. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies a Gaussian blur. Returns the new , or on error. The Gaussian blur standard deviation in the X direction. The Gaussian blur standard deviation in the Y direction. The tile mode for edge handling. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies a Gaussian blur. Returns the new , or on error. The color filter to apply. Creates an image filter that applies a color filter. Returns the new , or on error. The color filter to apply. The input filter to use, or to use the source bitmap. Creates an image filter that applies a color filter. Returns the new , or on error. The color filter to use. The input filter to use. The rectangle to which the output processing will be limited. Creates an image filter that applies a color filter. Returns the new , or on error. The color filter to apply. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies a color filter. Returns the new , or on error. The outer (second) filter to apply. The inner (first) filter to apply. Creates an image filter, whose effect is to first apply the inner filter and then apply the outer filter to the result of the inner. Returns the new , or on error. The morphology radius in the X direction. The morphology radius in the Y direction. Creates an image filter that applies a morphological dilation, expanding bright regions. Returns the new , or on error. The morphology radius in the X direction. The morphology radius in the Y direction. The input filter to use, or to use the source bitmap. Creates an image filter that applies a morphological dilation, expanding bright regions. Returns the new , or on error. The amount of dilation in the x-direction. The amount of dilation in the y-direction. The input filter to use. The rectangle to which the output processing will be limited. Creates an image filter that applies a dilation to pixels of a bitmap. Returns the new , or on error. The morphology radius in the X direction. The morphology radius in the Y direction. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies a morphological dilation, expanding bright regions. Returns the new , or on error. The morphology radius in the X direction. The morphology radius in the Y direction. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies a morphological dilation, expanding bright regions. Returns the new , or on error. The color channel to use for X displacement. The color channel to use for Y displacement. The displacement scale factor. The displacement map filter. Creates an image filter that uses one image to displace pixels in another. Returns the new , or on error. The color channel to use for X displacement. The color channel to use for Y displacement. The displacement scale factor. The displacement map filter. The input filter to use, or to use the source bitmap. Creates an image filter that uses one image to displace pixels in another. Returns the new , or on error. The color channel to use for X displacement. The color channel to use for Y displacement. The displacement scale factor. The displacement map filter. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that uses one image to displace pixels in another. Returns the new , or on error. The color channel to use for X displacement. The color channel to use for Y displacement. The displacement scale factor. The displacement map filter. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that uses one image to displace pixels in another. Returns the new , or on error. The channel in the x-direction to select for displacement. The channel in the y-direction to select for displacement. The amount to displace by. The image filter to apply the displacement to. The input filter to use. The rectangle to which the output processing will be limited. Creates an image filter that applies a displacement map. Returns the new , or on error. The direction of the light. The color of the light. The surface height scale factor for bump mapping. The diffuse lighting constant. Creates an image filter that applies distant light diffuse lighting using bump mapping. Returns the new , or on error. The direction of the light. The color of the light. The surface height scale factor for bump mapping. The diffuse lighting constant. The input filter to use, or to use the source bitmap. Creates an image filter that applies distant light diffuse lighting using bump mapping. Returns the new , or on error. The direction of the light. The color of the light. The surface height to use. The diffuse lighting constant. The input filter to use. The rectangle to which the output processing will be limited. Creates an image filter that applies a distant diffuse lighting. Returns the new , or on error. The direction of the light. The color of the light. The surface height scale factor for bump mapping. The diffuse lighting constant. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies distant light diffuse lighting using bump mapping. Returns the new , or on error. The direction of the light. The color of the light. The surface height scale factor for bump mapping. The specular lighting constant. The specular highlight exponent (higher values create tighter highlights). Creates an image filter that applies distant light specular lighting using bump mapping. Returns the new , or on error. The direction of the light. The color of the light. The surface height scale factor for bump mapping. The specular lighting constant. The specular highlight exponent (higher values create tighter highlights). The input filter to use, or to use the source bitmap. Creates an image filter that applies distant light specular lighting using bump mapping. Returns the new , or on error. The direction of the light. The color of the light. The surface height to use. The specular lighting constant. The shininess or specular exponent. The input filter to use. The rectangle to which the output processing will be limited. Creates an image filter that applies a distant specular lighting. Returns the new , or on error. The direction of the light. The color of the light. The surface height scale factor for bump mapping. The specular lighting constant. The specular highlight exponent (higher values create tighter highlights). The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies distant light specular lighting using bump mapping. Returns the new , or on error. The X offset of the shadow. The Y offset of the shadow. The Gaussian blur standard deviation in the X direction. The Gaussian blur standard deviation in the Y direction. The color of the shadow. Creates an image filter that draws a drop shadow. Returns the new , or on error. The X offset of the shadow. The Y offset of the shadow. The Gaussian blur standard deviation in the X direction. The Gaussian blur standard deviation in the Y direction. The color of the shadow. The input filter to use, or to use the source bitmap. Creates an image filter that draws a drop shadow. Returns the new , or on error. The X offset of the shadow. The Y offset of the shadow. The Gaussian blur standard deviation in the X direction. The Gaussian blur standard deviation in the Y direction. The color of the shadow. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that draws a drop shadow. Returns the new , or on error. The X offset of the shadow. The Y offset of the shadow. The Gaussian blur standard deviation in the X direction. The Gaussian blur standard deviation in the Y direction. The color of the shadow. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that draws a drop shadow. Returns the new , or on error. The shadow offset in the x-direction. The shadow offset in the y-direction. The amount to blur in the x-direction. The amount to blur in the y-direction. The shadow color. The shadow mode. The input filter to use. The rectangle to which the output processing will be limited. Creates an image filter that applies a drop shadow. Returns the new , or on error. The X offset of the shadow. The Y offset of the shadow. The Gaussian blur standard deviation in the X direction. The Gaussian blur standard deviation in the Y direction. The color of the shadow. Creates an image filter that draws only the drop shadow without the source image. Returns the new , or on error. The X offset of the shadow. The Y offset of the shadow. The Gaussian blur standard deviation in the X direction. The Gaussian blur standard deviation in the Y direction. The color of the shadow. The input filter to use, or to use the source bitmap. Creates an image filter that draws only the drop shadow without the source image. Returns the new , or on error. The X offset of the shadow. The Y offset of the shadow. The Gaussian blur standard deviation in the X direction. The Gaussian blur standard deviation in the Y direction. The color of the shadow. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that draws only the drop shadow without the source image. Returns the new , or on error. The X offset of the shadow. The Y offset of the shadow. The Gaussian blur standard deviation in the X direction. The Gaussian blur standard deviation in the Y direction. The color of the shadow. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that draws only the drop shadow without the source image. Returns the new , or on error. The morphology radius in the X direction. The morphology radius in the Y direction. Creates an image filter that applies a morphological erosion, expanding dark regions. Returns the new , or on error. The morphology radius in the X direction. The morphology radius in the Y direction. The input filter to use, or to use the source bitmap. Creates an image filter that applies a morphological erosion, expanding dark regions. Returns the new , or on error. The amount to erode in the x-direction. The amount to erode in the y-direction. The input filter to use. The rectangle to which the output processing will be limited. Creates an image filter that erodes the pixels of a bitmap. Returns the new , or on error. The morphology radius in the X direction. The morphology radius in the Y direction. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies a morphological erosion, expanding dark regions. Returns the new , or on error. The morphology radius in the X direction. The morphology radius in the Y direction. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies a morphological erosion, expanding dark regions. Returns the new , or on error. The image to draw. Creates an image filter that draws an image. Returns the new , or on error. The source image. The sampling options for the transformation. Creates an image filter from an image. Returns the new , or on error. The image to draw. The rectangle of the source image to draw. The rectangle of the destination area. The filter quality. Creates an image filter that draws an image. Returns the new , or on error. The source image. The source rectangle to tile. The destination rectangle where tiles are drawn. The sampling options for the transformation. Creates an image filter from an image. Returns the new , or on error. The source rectangle to tile. The inset amount for the magnifier effect. Creates an image filter that applies a magnifier effect. Returns the new , or on error. The source rectangle to tile. The inset amount for the magnifier effect. The input filter to use, or to use the source bitmap. Creates an image filter that applies a magnifier effect. Returns the new , or on error. The rectangle area to magnify. The amount of magnification to apply. The input filter to use. The rectangle to which the output processing will be limited. Creates an image filter that magnifies an area of a bitmap. Returns the new , or on error. The source rectangle to tile. The inset amount for the magnifier effect. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies a magnifier effect. Returns the new , or on error. The bounds of the magnifier lens. The zoom magnification factor. The inset amount for the magnifier effect. The sampling options for the transformation. Creates an image filter that applies a magnifier effect. Returns the new , or on error. The bounds of the magnifier lens. The zoom magnification factor. The inset amount for the magnifier effect. The sampling options for the transformation. The input filter to use, or to use the source bitmap. Creates an image filter that applies a magnifier effect. Returns the new , or on error. The bounds of the magnifier lens. The zoom magnification factor. The inset amount for the magnifier effect. The sampling options for the transformation. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies a magnifier effect. Returns the new , or on error. The transformation matrix. Creates an image filter that applies a transformation matrix. Returns the new , or on error. The transformation matrix. Creates an image filter that applies a transformation matrix. Returns the new , or on error. The transformation matrix. The sampling options for the transformation. Creates an image filter that applies a transformation matrix. Returns the new , or on error. The transformation matrix. The quality. The input filter to use. Creates an image filter that applies a transformation matrix. Returns the new , or on error. The transformation matrix. The sampling options for the transformation. The input filter to use, or to use the source bitmap. Creates an image filter that applies a transformation matrix. Returns the new , or on error. The size of the convolution kernel. The convolution kernel values. The gain factor applied to each pixel. The bias added to each pixel after applying the kernel. The offset within the kernel for the source pixel. The tile mode for edge handling. Whether to also convolve the alpha channel. Creates an image filter that applies a matrix convolution. Returns the new , or on error. The size of the convolution kernel. The convolution kernel values. The gain factor applied to each pixel. The bias added to each pixel after applying the kernel. The offset within the kernel for the source pixel. The tile mode for edge handling. Whether to also convolve the alpha channel. The input filter to use, or to use the source bitmap. Creates an image filter that applies a matrix convolution. Returns the new , or on error. The size of the convolution kernel. The convolution kernel values. The gain factor applied to each pixel. The bias added to each pixel after applying the kernel. The offset within the kernel for the source pixel. The tile mode for edge handling. Whether to also convolve the alpha channel. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies a matrix convolution. Returns the new , or on error. The size of the convolution kernel. The convolution kernel values. The gain factor applied to each pixel. The bias added to each pixel after applying the kernel. The offset within the kernel for the source pixel. The tile mode for edge handling. Whether to also convolve the alpha channel. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies a matrix convolution. Returns the new , or on error. The kernel size in pixels, in each dimension (N by M). The image processing kernel, with N * M elements in row order. A scale factor applied to each pixel after convolution. A bias factor added to each pixel after convolution. An offset applied to each pixel coordinate before convolution. How accesses outside the image are treated. to convolve all channels including alpha; otherwise, to convolve only the RGB channels. The input filter to use. The rectangle to which the output processing will be limited. Creates an image that filter applies an NxM image processing kernel. Returns the new , or on error. The size of the convolution kernel. The convolution kernel values. The gain factor applied to each pixel. The bias added to each pixel after applying the kernel. The offset within the kernel for the source pixel. The tile mode for edge handling. Whether to also convolve the alpha channel. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies a matrix convolution. Returns the new , or on error. The array of image filters to merge. Creates an image filter that merges multiple filters together. Returns the new , or on error. The first filter to compose. The second filter to compose. Creates an image filter that merges multiple filters together. Returns the new , or on error. The image filters to merge. The rectangle to which the output processing will be limited. Creates an image filter that merges a set of image filters. Returns the new , or on error. The array of image filters to merge. The rectangle to which the output processing will be limited. Creates an image filter that merges multiple filters together. Returns the new , or on error. The array of image filters to merge. The rectangle to which the output processing will be limited. Creates an image filter that merges multiple filters together. Returns the new , or on error. The array of image filters to merge. The rectangle to which the output processing will be limited. Creates an image filter that merges multiple filters together. Returns the new , or on error. The first image filter to merge. The second image filter to merge. The rectangle to which the output processing will be limited. Creates an image filter that merges two image filters. Returns the new , or on error. The first filter to compose. The second filter to compose. The rectangle to which the output processing will be limited. Creates an image filter that merges multiple filters together. Returns the new , or on error. The image filters to merge. The blend modes to merge the filters with. The rectangle to which the output processing will be limited. Creates an image filter that merges a set of image filters using blend modes. Returns the new , or on error. The first image filter to merge. The second image filter to merge. The blend mode to merge the filters with. The rectangle to which the output processing will be limited. Creates an image filter that merges two image filters using a blend mode. Returns the new , or on error. The morphology radius in the X direction. The morphology radius in the Y direction. Creates an image filter that offsets the input image. Returns the new , or on error. The morphology radius in the X direction. The morphology radius in the Y direction. The input filter to use, or to use the source bitmap. Creates an image filter that offsets the input image. Returns the new , or on error. The amount to offset in the x-direction. The amount to offset in the y-direction. The input filter to use. The rectangle to which the output processing will be limited. Creates an image filter that translates the bitmap that is drawn. Returns the new , or on error. The morphology radius in the X direction. The morphology radius in the Y direction. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that offsets the input image. Returns the new , or on error. The paint to use. Creates an image filter from a paint. Returns the new , or on error. The paint to draw. The rectangle to which the output processing will be limited. Creates an image filter that draws a paint. Returns the new , or on error. The paint to use. The rectangle to which the output processing will be limited. Creates an image filter from a paint. Returns the new , or on error. The picture to draw. Creates an image filter that draws a picture. Returns the new , or on error. The picture to draw. The rectangle to which the output processing will be limited. Creates an image filter that draws a picture. Returns the new , or on error. The position of the light. The color of the light. The surface height scale factor for bump mapping. The diffuse lighting constant. Creates an image filter that applies point light diffuse lighting using bump mapping. Returns the new , or on error. The position of the light. The color of the light. The surface height scale factor for bump mapping. The diffuse lighting constant. The input filter to use, or to use the source bitmap. Creates an image filter that applies point light diffuse lighting using bump mapping. Returns the new , or on error. The location of the light. The color of the light. The surface height to use. The diffuse lighting constant. The input filter to use. The rectangle to which the output processing will be limited. Creates an image filter that applies a point diffuse lighting. Returns the new , or on error. The position of the light. The color of the light. The surface height scale factor for bump mapping. The diffuse lighting constant. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies point light diffuse lighting using bump mapping. Returns the new , or on error. The position of the light. The color of the light. The surface height scale factor for bump mapping. The specular lighting constant. The specular highlight exponent (higher values create tighter highlights). Creates an image filter that applies point light specular lighting using bump mapping. Returns the new , or on error. The position of the light. The color of the light. The surface height scale factor for bump mapping. The specular lighting constant. The specular highlight exponent (higher values create tighter highlights). The input filter to use, or to use the source bitmap. Creates an image filter that applies point light specular lighting using bump mapping. Returns the new , or on error. The location of the light. The color of the light. The surface height to use. The specular lighting constant. The shininess or specular exponent. The input filter to use. The rectangle to which the output processing will be limited. Creates an image filter that applies a point specular lighting. Returns the new , or on error. The position of the light. The color of the light. The surface height scale factor for bump mapping. The specular lighting constant. The specular highlight exponent (higher values create tighter highlights). The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies point light specular lighting using bump mapping. Returns the new , or on error. The shader to use. Creates an image filter from a shader. Returns the new , or on error. The shader to use. Whether to dither the output. Creates an image filter from a shader. Returns the new , or on error. The shader to use. Whether to dither the output. The rectangle to which the output processing will be limited. Creates an image filter from a shader. Returns the new , or on error. The shader to use. Whether to dither the output. The rectangle to which the output processing will be limited. Creates an image filter from a shader. Returns the new , or on error. The position of the light. The spotlight target point. The spotlight falloff exponent. The spotlight cutoff angle in degrees. The color of the light. The surface height scale factor for bump mapping. The diffuse lighting constant. Creates an image filter that applies spotlight diffuse lighting using bump mapping. Returns the new , or on error. The position of the light. The spotlight target point. The spotlight falloff exponent. The spotlight cutoff angle in degrees. The color of the light. The surface height scale factor for bump mapping. The diffuse lighting constant. The input filter to use, or to use the source bitmap. Creates an image filter that applies spotlight diffuse lighting using bump mapping. Returns the new , or on error. The location of the light. The target location of the light. The specular exponent. The cutoff angle of the spotlight. The color of the light. The surface height to use. The diffuse lighting constant. The input filter to use. The rectangle to which the output processing will be limited. Creates an image filter that applies a spot diffuse lighting. Returns the new , or on error. The position of the light. The spotlight target point. The spotlight falloff exponent. The spotlight cutoff angle in degrees. The color of the light. The surface height scale factor for bump mapping. The diffuse lighting constant. The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies spotlight diffuse lighting using bump mapping. Returns the new , or on error. The position of the light. The spotlight target point. The spotlight falloff exponent. The spotlight cutoff angle in degrees. The color of the light. The surface height scale factor for bump mapping. The specular lighting constant. The specular highlight exponent (higher values create tighter highlights). Creates an image filter that applies spotlight specular lighting using bump mapping. Returns the new , or on error. The position of the light. The spotlight target point. The spotlight falloff exponent. The spotlight cutoff angle in degrees. The color of the light. The surface height scale factor for bump mapping. The specular lighting constant. The specular highlight exponent (higher values create tighter highlights). The input filter to use, or to use the source bitmap. Creates an image filter that applies spotlight specular lighting using bump mapping. Returns the new , or on error. The location of the light. The target location of the light. The specular exponent. The cutoff angle of the spotlight. The color of the light. The surface height to use. The specular lighting constant. The shininess or specular exponent. The input filter to use. The rectangle to which the output processing will be limited. Creates an image filter that applies a spot specular lighting. Returns the new , or on error. The position of the light. The spotlight target point. The spotlight falloff exponent. The spotlight cutoff angle in degrees. The color of the light. The surface height scale factor for bump mapping. The specular lighting constant. The specular highlight exponent (higher values create tighter highlights). The input filter to use, or to use the source bitmap. The rectangle to which the output processing will be limited. Creates an image filter that applies spotlight specular lighting using bump mapping. Returns the new , or on error. The source rectangle to tile. The destination rectangle where tiles are drawn. Creates an image filter that tiles the source image. Returns the new , or on error. The pixels to tile. The pixels where the tiles are drawn. The input filter to use. Creates an image filter that tiles the image being drawn. Returns the new , or on error. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. The rectangle to which the output processing of an will be limited. Creates an empty crop rectangle. The rectangle to crop to. The edges that are specified by the rectangle. Creates a crop rectangle with the specified edges. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. Gets the edges that are specified by the rectangle. A bitwise combination of the enumeration values that specifies which edges are set. Gets the rectangle to crop to. The crop rectangle. Describe an image's dimensions and pixel type. The width. The height. Creates a new with the specified width and height. The width. The height. The color type. Creates a new with the specified width, height and color type. The width. The height. The color type. The alpha/transparency type. Creates a new with the specified width, height, color type and transparency type. The width. The height. The color type. The alpha/transparency type. The color space. Creates a new with the specified width, height, color type, transparency type and color space. Gets the transparency type for the image info. One of the enumeration values that specifies the transparency type. Gets the bit shift per pixel for the color type. The number of bits to shift to move from one pixel to the next. Gets the number of bits used per pixel. The number of bits used per pixel. This is equivalent to multiplying the by 8 (the number of bits in a byte). Gets the number of bytes used per pixel. The number of bytes used per pixel. This is calculated from the . If the color type is , then the value will be 0. Gets the total number of bytes needed to store the bitmap data. The total number of bytes needed to store the bitmap data. This is calculated as: * * . Gets the total number of bytes needed to store the bitmap data as a 64-bit integer. The total number of bytes needed to store the bitmap data as a 64-bit integer. This is calculated as: * * . Gets or sets the color space. The color space, or if not set. Gets or sets the color type. One of the enumeration values that specifies the color type. An empty . The to compare with the current instance. Determines whether the specified is equal to the current instance. if the specified object is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is equal to the current instance; otherwise, . Returns a hash code for this instance. A hash code for this instance. Gets or sets the height. The height in pixels. Gets a value indicating whether the width or height are less or equal than zero. if the width or height are less than or equal to zero; otherwise, . Gets a value indicating whether the configured alpha type is opaque. if the configured alpha type is opaque; otherwise, . The first to compare. The second to compare. Determines whether two instances are equal. if and are equal; otherwise, . The first to compare. The second to compare. Determines whether two instances are not equal. if and are not equal; otherwise, . The number of bits to shift left for the alpha color component. The number of bits to shift left for the blue color component. The number of bits to shift left for the green color component. The number of bits to shift left for the red color component. The current 32-bit color for the current platform. On Windows, it is typically , and on Unix-based systems (macOS, Linux) it is typically . Gets a rectangle with the current width and height. The rectangle with the current width and height. Gets the number of bytes per row. The number of bytes per row. This is calculated as: * . Gets the number of bytes per row as a 64-bit integer. The number of bytes per row as a 64-bit integer. This is calculated as: * . Gets the current size of the image. The current size of the image. Gets or sets the width. The width in pixels. The alpha/transparency type. Creates a new with the same properties as this , but with the specified transparency type. Returns the new . The color space. Creates a new with the same properties as this , but with the specified color space. Returns the new . The color type. Creates a new with the same properties as this , but with the specified color type. Returns the new . The new size for the image info. Creates a new with the specified size. A new with the same properties but with the specified size. The width. The height. Creates a new with the same properties as this , but with the specified dimensions. Returns the new . The memory address of the pixels being released. The user data that was provided when creating the image. The delegate that is used when releasing the memory for a raster-based image. The context of the image. The delegate that is used when releasing the memory for a texture-based image. Various options to control how alpha should be handled. Blend the pixels onto a black background before encoding. Ignore the alpha channel and treat the image as opaque. Various options for the downsampling factor of the U and V components. Reduction by a factor of two in both the horizontal and vertical directions. Reduction by a factor of two in the horizontal direction. No downsampling. Options to control the JPEG encoding. The quality of the encoding in the range 0 to 100. Initializes a new instance of the structure with the specified quality. Uses default values for downsampling () and alpha option (). The quality of the encoding in the range 0 to 100. The downsampling factor for the U and V components. The value to control how alpha is handled. Creates a new instance of . The quality of the encoding in the range 0 to 100. The downsampling factor for the U and V components. The value to control how alpha is handled. The behavior when blending alpha. Creates a new instance of . Gets or sets the value to control how alpha is handled. One of the enumeration values that specifies how alpha is handled. JPEGs must be opaque, so this instructs the encoder on how to handle input images with alpha. Gets or sets the behavior when blending alpha. One of the enumeration values that specifies the blend behavior. Gets a new instance of with the values set to the defaults. Gets or sets the downsampling factor for the U and V components. One of the enumeration values that specifies the downsampling factor. This is only meaningful if the image is not gray, since gray will not be encoded as YUV. The to compare with the current instance. Determines whether the specified is equal to the current instance. if the specified object is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is equal to the current instance; otherwise, . Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. The first to compare. The second to compare. Determines whether two specified objects have the same value. if the value of is the same as the value of ; otherwise, . The first to compare. The second to compare. Determines whether two specified objects have different values. if the value of is different from the value of ; otherwise, . Gets or sets the quality of the encoding in the range 0 to 100. The encoding quality value from 0 (lowest) to 100 (highest). Specifies coordinates to divide a bitmap into ( * ) rectangles. If the lattice divs or bounds are invalid, the entire lattice structure will be ignored on the draw call. Gets or sets the optional source image bounds. The optional source image bounds, or if not specified. Gets or sets the array of fill types, one per rectangular grid entry. The array of colors for each grid entry. The to compare with the current lattice. Determines whether the specified is equal to the current lattice. if the specified lattice is equal to the current lattice; otherwise, . The object to compare with the current lattice. Determines whether the specified object is equal to the current lattice. if the specified object is equal to the current lattice; otherwise, . Returns the hash code for this instance. A 32-bit signed integer hash code. The first lattice to compare. The second lattice to compare. Indicates whether two objects are equal. if is equal to ; otherwise, . The first lattice to compare. The second lattice to compare. Indicates whether two objects are different. if is not equal to ; otherwise, . Gets or sets the color for each of the lattice rectangles. The array of rectangle types for each grid entry. Gets or sets the x-coordinates for the lattice. The array of x-coordinates that divide the lattice. Gets or sets the y-coordinates for the lattice. The array of y-coordinates that divide the lattice. Optional setting per rectangular grid entry to make it transparent, or to fill the grid entry with a color. Draw the bitmap into the lattice rectangle. Draw the associated entry into the lattice rectangle. Skip the lattice rectangle (make it transparent). Represents a mechanism for serializing pixels. Creates a new instance of with an empty buffer. Wraps a into a (a seekable, rewindable Skia stream) that represents a stream into an embedded resource in an assembly and use it with SkiaSharp APIs that use resources: ## Examples ```csharp public static void BitmapShader (SKCanvas canvas, int width, int height) { var assembly = typeof(Demos).GetTypeInfo ().Assembly; // load the image from the embedded resource stream using (var resource = assembly.GetManifestResourceStream ("embedded.png")) using (var stream = new SKManagedStream(resource)) using (var source = SKBitmap.Decode (stream)) { var matrix = SKMatrix.MakeRotation (30.0f); using (var shader = SKShader.CreateBitmap (source, SKShaderTileMode.Repeat, SKShaderTileMode.Repeat, matrix)) using (var paint = new SKPaint ()) { paint.IsAntialias = true; paint.Shader = shader; // tile the bitmap canvas.Clear (SKColors.White); canvas.DrawPaint (paint); } } } ``` ]]> The managed stream. Creates a new read-only stream from a . The underlying stream is not disposed when this object is disposed. The managed stream. If this is set to , the provided will be disposed when this instance is disposed. Creates a new read-only stream from a , can optionally dispose the provided stream when this stream is disposed. The destination stream. Copy the contents of this stream into the destination stream. Returns the number of bytes that were copied. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any managed objects. Implemented by derived types to copy the current stream. Returns a pointer to the new instance. Implemented by derived types to duplicate the current stream. Returns a pointer to the new instance. After the stream has been duplicated, the new stream must set its position to the start. Implemented by derived types to fork the current stream. Returns a pointer to the new instance. After the stream has been duplicated, the new stream must set its position to the same as this stream. Implemented by derived types to return the total length of the stream. Returns the total length of the stream. Implemented by derived types to get the current position in the stream. Returns the current position in the stream. Implemented by derived types to indicate whether this stream can report its total length. Returns a value indicating whether this stream can report its total length. Implemented by derived types to indicate whether this stream can report its current position. Returns a value indicating whether this stream can report its current position. Implemented by derived types to indicate whether all the bytes in the stream have been read. Returns a value indicating whether all the bytes in the stream have been read. The relative offset. Implemented by derived types to seek to a relative offset. Returns if seeking is supported and the seek was successful, otherwise . If an attempt is made to move to a position outside the stream, the position must be set to the closest point within the stream (beginning or end). The buffer to read into. The number of bytes to read. Implemented by derived types to copy the specified number of bytes into the specified buffer. Returns the number of bytes actually peeked/copied. The stream's cursor must be returned to the position before this method was called. The buffer to read into. The number of bytes to read. Implemented by derived types to copy the specified number of bytes into the specified buffer. Returns the number of bytes actually read. Implemented by derived types to rewind the current stream. Returns if the stream is known to be at the beginning after this call returns. The absolute position. Implemented by derived types to seek to an absolute position. Returns if seeking is supported and the seek was successful, otherwise . If an attempt is made to move to a position outside the stream, the position must be set to the closest point within the stream (beginning or end). Copies the contents of this stream into a new memory stream. Returns the new memory stream. Wraps a into a (a writeable Skia stream) The managed stream. Creates a new writeable stream from a . The underlying stream is not disposed when this object is disposed. The managed stream. If this is set to , the provided will be disposed when this instance is disposed. Creates a new writeable stream from a . to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any managed objects. Implemented by derived types to specify the number of bytes currently written to the stream. Returns the number of bytes currently written to the stream. Implemented by derived types to flush the bytes to the underlying stream. The buffer to copy into the underlying stream. The number of bytes to copy from the buffer. Implemented by derived types to copy the specified number of bytes from the specified buffer into the underlying stream. Returns on success, otherwise . A mask is used to describe alpha bitmaps, either 1-bit, 8-bit, or the 3-channel 3D format. The bounds of the mask in the image. The number of bytes per row. The format of the mask image. Creates an instance of with the specified configuration, but a . The pointer to the image data to use as the mask. The bounds of the mask in the image. The number of bytes per row. The format of the mask image. Creates an instance of with the specified configuration. Allocates a memory block for the mask's image. Returns the total size of the allocated memory. The amount of memory to allocate. Allocates a memory block for a mask's image. Returns a pointer to the allocated memory. Gets the bounds of the mask in the image. The bounds of the mask in the image. Calculates the byte size of the mask, assuming only 1 plane. Returns the byte size of the mask. . For that, use . If there is an overflow of 32bits, then returns 0. ]]> Calculates the byte size of the mask, taking into account any extra planes (e.g. ). Returns the byte size of the mask. If there is an overflow of 32bits, then returns 0. The image data to copy into the mask. The bounds of the mask in the image. The number of bytes per row. The format of the mask image. Creates an instance of with the specified configuration, and copies the image data. Returns the instance of the mask. The image data to copy into the mask. The bounds of the mask in the image. The number of bytes per row. The format of the mask image. Creates an instance of with the specified configuration, and copies the image data. Returns the instance of the mask. The to compare with the current . Determines whether the specified is equal to the current . if the specified is equal to the current ; otherwise, . The object to compare with the current . Determines whether the specified object is equal to the current . if the specified object is equal to the current ; otherwise, . Gets the format of the mask image. One of the enumeration values that specifies the format of the mask image. De-allocate the mask's image data. The pointer to a mask's image data. De-allocate the specified mask image data. The x-coordinate, which must be contained by the mask's bounds. The y-coordinate, which must be contained by the mask's bounds. Returns the address of the specified pixel, computing the pixel-size at runtime based on the mask format. Returns the address of the specified pixel. or ). This should not be called with , as it will give unspecified results. ]]> The x-coordinate, which must be contained by the mask's bounds. The y-coordinate, which must be contained by the mask's bounds. Returns the bit value of the specified specified pixel. Returns the bit value of the specified specified pixel. The x-coordinate, which must be contained by the mask's bounds. The y-coordinate, which must be contained by the mask's bounds. Returns the 16-bit value of the specified specified pixel. Returns the 16-bit value of the specified specified pixel. The x-coordinate, which must be contained by the mask's bounds. The y-coordinate, which must be contained by the mask's bounds. Returns the 32-bit value of the specified specified pixel. Returns the 32-bit value of the specified specified pixel. The x-coordinate, which must be contained by the mask's bounds. The y-coordinate, which must be contained by the mask's bounds. Returns the 8-bit value of the specified specified pixel. Returns the 8-bit value of the specified specified pixel. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Returns the mask's image data as a span of bytes. A containing the mask's image data. Gets the pointer to the mask's image data location. The pointer to the mask's image data location. Gets a value indicating whether the mask's bounds are empty. if the mask's bounds are empty; otherwise, . The first to compare. The second to compare. Determines whether two specified objects have the same value. if the value of is the same as the value of ; otherwise, . The first to compare. The second to compare. Determines whether two specified objects have different values. if the value of is different from the value of ; otherwise, . Gets the number of bytes per row. The number of bytes per row. Mask filters perform transformations on an alpha-channel mask before drawing. A mask filter is set using the property on type. The radius. Converts from the (legacy) idea of specifying the blur "radius" to the standard notion of specifying its sigma. The sigma. The sigma. Converts from the standard notion of specifying the blur sigma to the (legacy) idea of specifying its "radius". The radius. The style of blurring. The standard deviation (greater than 0) of the Gaussian blur to apply. Creates a mask filter that applies a blur. Returns the new , or on error. The style of blurring. The standard deviation (greater than 0) of the Gaussian blur to apply. The flags to apply when blurring. Creates a mask filter that applies a blur. Returns the new , or on error. The style of blurring. The standard deviation (greater than 0) of the Gaussian blur to apply. The rectangle for which no pixels need be drawn (because it will be overdrawn with some opaque object). Creates a mask filter that applies a blur. Returns the new , or on error. The style of blurring. The standard deviation (greater than 0) of the Gaussian blur to apply. to modify the blur's sigma by the current transformation matrix (CTM); otherwise, . Creates a mask filter that applies a blur. Returns the new , or on error. The style of blurring. The standard deviation (greater than 0) of the Gaussian blur to apply. The rectangle for which no pixels need be drawn (because it will be overdrawn with some opaque object). The flags to apply when blurring. Creates a mask filter that applies a blur. Returns the new , or on error. The style of blurring. The standard deviation (greater than 0) of the Gaussian blur to apply. The rectangle for which no pixels need be drawn (because it will be overdrawn with some opaque object). to modify the blur's sigma by the CTM; otherwise, . Creates a mask filter that applies a blur. Returns the new , or on error. The minimum alpha value. The maximum alpha value. Creates a mask filter that clips the alpha channel to the specified minimum and maximum alpha values. Returns the new , or on error. The gamma. Creates a mask filter that applies gamma. Returns the new , or on error. The lookup table with exactly 256 elements. Creates a mask filter that applies a table lookup on each of the alpha values in the mask. Returns the new , or on error. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Gets the maximum number of colors in the color lookup table. Formats that indicate the memory format of the underlying image data of a . 8-bits per pixel mask (e.g. anti-aliasing). Premultiplied color. 1-bit per pixel mask (e.g. monochrome). 565 alpha for RGB. 8-bits per pixel signed distance field. 3 8-bit per pixel planes: alpha, mul, add. A 3x3 transformation matrix with perspective. It extends the traditional 2D affine transformation matrix with three perspective components that allow simple 3D effects to be created with it. Those components must be manually set by using the , , fields of the matrix. An array of 9 values in row-major order. Initializes a new instance of the struct from an array of 9 values in row-major order. The scaling in the x-direction. The skew in the x-direction. The translation in the x-direction. The skew in the y-direction. The scaling in the y-direction. The translation in the y-direction. The x-perspective. The y-perspective. The z-perspective. Creates a new instance of using the specified values. The first matrix to concatenate. The second matrix to concatenate. Concatenates two matrices and returns the result. Returns the concatenated matrix. The result matrix value. The first matrix to concatenate. The second matrix to concatenate. Concatenates the specified matrices into the resulting target matrix. Either source matrices can also be the target matrix. The result matrix value. The first matrix to concatenate. The second matrix to concatenate. Concatenates the specified matrices into the resulting target matrix. Either source matrices can also be the target matrix. Initializes a new instance of the struct as an identity matrix. Returns the new identity matrix. The rotation angle in radians. Creates a rotation matrix. Returns the new rotation matrix. The rotation angle in radians. The x-coordinate of the pivot point. The y-coordinate of the pivot point. Creates a rotation matrix around a pivot point. Returns the new rotation matrix. The rotation angle in degrees. Creates a rotation matrix. Returns the new rotation matrix. The rotation angle in degrees. The x-coordinate of the pivot point. The y-coordinate of the pivot point. Creates a rotation matrix around a pivot point. Returns the new rotation matrix. The scale factor in the x-direction. The scale factor in the y-direction. Creates a scaling matrix. Returns the new scaling matrix. The scale factor in the x-direction. The scale factor in the y-direction. The x-coordinate of the pivot point. The y-coordinate of the pivot point. Creates a scaling matrix around a pivot point. Returns the new scaling matrix. The scale factor in the x-direction. The scale factor in the y-direction. The translation in the x-direction. The translation in the y-direction. Creates a matrix with scale and translation. Returns the new matrix. The skew factor in the x-direction. The skew factor in the y-direction. Creates a skewing matrix. Returns the new skewing matrix. The translation in the x-direction. The translation in the y-direction. Creates a translation matrix. Returns the new translation matrix. Represents an empty matrix with all values set to zero. The matrix to compare with this instance. Determines whether this matrix is equal to the specified matrix. Returns if the matrices are equal; otherwise, . The object to compare with this instance. Determines whether this matrix is equal to the specified object. Returns if the object is an and is equal to this matrix; otherwise, . Returns the hash code for this matrix. Returns the hash code. The array to populate. Populates the specified array with the matrix values. The result will be the same as . Gets the identity matrix. Returns the inverse of this matrix, if it exists. Returns the inverse matrix, or if the matrix is not invertible. Gets a value indicating whether this matrix is the identity matrix. Returns if this is an identity matrix; otherwise, . Gets a value indicating whether this matrix can be inverted. Returns if the matrix is invertible; otherwise, . Creates an identity matrix. Returns the new matrix. The angle for the rotation, in radians. Creates a matrix that represents a specific rotation in radians. Returns the new matrix. The angle for the rotation, in radians. The x-coordinate for the rotation pivot. The y-coordinate for the rotation pivot. Creates a matrix that represents a specific rotation in radians, around a pivot point. Returns the new matrix. The angle for the rotation, in degrees. Creates a matrix that represents a specific rotation in degrees. Returns the new matrix. The angle for the rotation, in degrees. The x-coordinate for the rotation pivot. The y-coordinate for the rotation pivot. Creates a matrix that represents a specific rotation in degrees, around a pivot point. Returns the new matrix. The scaling in the x-direction. The scaling in the y-direction. Creates a scaling matrix. Returns the new matrix. The scaling in the x-direction. The scaling in the y-direction. The x-coordinate for the scaling pivot. The y-coordinate for the scaling pivot. Creates a scaling matrix, around a pivot point. Returns the new matrix. The skew in the x-direction. The skew in the y-direction. Creates a skewing matrix. Returns the new matrix. The translation/offset in the x-direction. The translation/offset in the y-direction. Creates a translation matrix. Returns the new matrix. The point to map. Applies the matrix to a point. Returns the mapped point. Mapping points uses all components of the matrix. Use to ignore the translation. The x-coordinate. The y-coordinate. Applies the matrix to a point. Returns the mapped point. Mapping points uses all components of the matrix. Use to ignore the translation. The array of points to be mapped. Applies the matrix to an array of points. Returns the new array allocated with the mapped results. Mapping points uses all components of the matrix. Use to ignore the translation. The array where the mapped results will be stored (needs to have the same number of elements of the array). The array of points to be mapped. Applies the matrix to an array of points. Mapping points uses all components of the matrix. Use to ignore the translation. The span where the transformed points will be stored. The span of points to transform. Transforms points using this matrix. The radius to map. Calculates the mean radius of a circle after it has been mapped by this matrix. Returns the mean radius. The source rectangle to map. Applies the matrix to a rectangle. Returns the mapped rectangle. The transformation matrix. The mapped rectangle. The source rectangle to map. Applies the matrix to a rectangle. The vector to transform. Transforms a vector using this matrix, ignoring translation. Returns the transformed vector. Mapping vectors ignores the translation component in the matrix. Use to take the translation into consideration. The x-component of the vector. The y-component of the vector. Applies the matrix to a vector, ignoring translation. Returns the mapped point. Mapping vectors ignores the translation component in the matrix. Use to take the translation into consideration. The array of vectors to map. Applies the matrix to the array of vectors, ignoring translation, and returns the mapped results. Returns the new array allocated with the mapped results. Mapping vectors ignores the translation component in the matrix. Use to take the translation into consideration. The array where the mapped results will be stored (needs to have the same number of elements of the array). The array of vectors to map. Applies the matrix to the array of vectors and returns the mapped results. Mapping vectors ignores the translation component in the matrix. Use to take the translation into consideration. The span where the transformed vectors will be stored. The span of vectors to transform. Transforms vectors using this matrix, ignoring translation. Mapping vectors ignores the translation component in the matrix. Use to take the translation into consideration. The first matrix to compare. The second matrix to compare. Compares two matrices for equality. Returns if the matrices are equal; otherwise, . The first matrix to compare. The second matrix to compare. Compares two matrices for inequality. Returns if the matrices are not equal; otherwise, . Gets or sets the x-perspective. The x-perspective. Gets or sets the y-perspective. The y-perspective. Gets or sets the z-perspective. The z-perspective. The matrix to post-concatenate. Post-concatenates a matrix to this matrix and returns the result. Returns the concatenated matrix. This represents: result = matrix * this The target matrix. The matrix to be post-concatenated. Post-concatenates the matrix to the target matrix. This represents: result = matrix * target The target matrix. The matrix to be post-concatenated. Post-concatenates the matrix to the target matrix. This represents: result = matrix * target The matrix to pre-concatenate. Pre-concatenates a matrix to this matrix and returns the result. Returns the concatenated matrix. This represents: result = this * matrix The target matrix. The matrix to be post-concatenated. Pre-concatenates the matrix to the target matrix. This represents: result = target * matrix The target matrix. The matrix to be post-concatenated. Pre-concatenates the matrix to the target matrix. This represents: result = target * matrix The target matrix. The angle for the rotation, in radians. Rotates the specified matrix by the specified radians. The target matrix. The angle for the rotation, in radians. The x-coordinate for the rotation pivot. The y-coordinate for the rotation pivot. Rotates the specified matrix by the specified radians. The target matrix. The angle for the rotation, in degrees. Rotates the specified matrix by the specified degrees. The target matrix. The angle for the rotation, in degrees. The x-coordinate for the rotation pivot. The y-coordinate for the rotation pivot. Rotates the specified matrix by the specified degrees. Gets or sets the scaling in the x-direction. The scaling in the x-direction. Gets or sets the scaling in the y-direction. The scaling in the y-direction. The scaling in the x-direction. The scaling in the y-direction. The translation in the x-direction. The translation in the y-direction. Initializes the matrix to be scale + post-translate. Gets or sets the skew in the x-direction. The skew in the x-direction. Gets or sets the skew in the y-direction. The skew in the y-direction. Gets or sets the translation in the x-direction. The translation in the x-direction. Gets or sets the translation in the y-direction. The translation in the y-direction. The destination value to store the inverted matrix if the matrix can be inverted. Attempts to invert the matrix, if possible the inverse matrix contains the result. if the matrix can be inverted, and the inverse parameter is initialized with the inverted matrix; otherwise, . Gets or sets the matrix as a flat array: [ScaleX, SkewX, TransX, SkewY, ScaleY, TransY, Persp0, Persp1, Persp2]. The matrix as a flat array of 9 values. A 3D, 4x4 matrix. Creates a new, uninitialized instance of . The instance. Creates a new instance of using the values from a instance. When converting from to , the third row and column remain as identity. The matrix to copy. Creates a new instance of using the values from another instance. The first matrix. The second matrix. Creates a new instance of using the concatenated values from two other instances. This is equivalent to creating an uninitialized matrix, and then passing the two matrices to . The value at row 0, column 0. The value at row 0, column 1. The value at row 0, column 2. The value at row 0, column 3. The value at row 1, column 0. The value at row 1, column 1. The value at row 1, column 2. The value at row 1, column 3. The value at row 2, column 0. The value at row 2, column 1. The value at row 2, column 2. The value at row 2, column 3. The value at row 3, column 0. The value at row 3, column 1. The value at row 3, column 2. The value at row 3, column 3. Initializes a new instance of the struct with the specified values. The first matrix. The second matrix. Adds two matrices and returns the result. Returns the sum of the two matrices. The first matrix. The second matrix. Concatenates two matrices and returns the result. Returns the concatenated matrix. The matrix to receive the concatenated result. The first matrix. The second matrix. Concatenates two matrices into a target matrix. Creates a new identity matrix. Returns the new identity matrix. This is equivalent to creating an uninitialized matrix, and invoking . The x-axis to rotate around. The y-axis to rotate around. The z-axis to rotate around. The amount, in radians, to rotate by. Creates a new rotation matrix. Returns the new rotation matrix. This is equivalent to creating an uninitialized matrix and passing the values to . The x-axis to rotate around. The y-axis to rotate around. The z-axis to rotate around. The amount, in degrees, to rotate by. Creates a new rotation matrix. Returns the new rotation matrix. This is equivalent to creating an uninitialized matrix and passing the values to . The amount, along the x-axis, to scale. The amount, along the y-axis, to scale. The amount, along the z-axis, to scale. Creates a new scale matrix. Returns the new scale matrix. This is equivalent to creating an uninitialized matrix and passing the values to . The amount, along the x-axis, to scale. The amount, along the y-axis, to scale. The amount, along the z-axis, to scale. The x-coordinate of the pivot point. The y-coordinate of the pivot point. The z-coordinate of the pivot point. Creates a 3D scaling matrix with a pivot point. Returns the new scale matrix. The amount, along the x-axis, to translate. The amount, along the y-axis, to translate. The amount, along the z-axis, to translate. Creates a new translation matrix. Returns the new translation matrix. This is equivalent to creating an uninitialized matrix and passing the values to . The amount, along the x-axis, to translate. The amount, along the y-axis, to translate. The amount, along the z-axis, to translate. Creates a new 3D translation matrix. Returns the new translation matrix. Calculates the determinant of the matrix. Returns the determinant. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. Represents an empty matrix with all values set to zero. The first matrix. The second matrix. Determines if the two matrices are equal. Returns if the two matrices are equal, otherwise . The to compare with this instance. Determines whether this matrix is equal to another matrix. Returns if the matrices are equal, otherwise . The object to compare with this instance. Determines whether this matrix is equal to another object. Returns if the object is an and is equal to this instance, otherwise . A span containing 16 values in column-major order. Creates a matrix from values in column-major order. Returns the new matrix. The column-major array containing the values. Creates a new matrix using the values from the column-major array. Returns the new matrix. The number of items in the source array should be exactly 16 items. A span containing 16 values in row-major order. Creates a matrix from values in row-major order. Returns the new matrix. The row-major array containing the values. Creates a new matrix using the values from the row-major array. Returns the new matrix. The number of items in the source array should be exactly 16 items. Returns the hash code for this matrix. Returns the hash code. Represents the identity matrix. Creates an inverted matrix from the current matrix. Returns the inverted matrix if it is invertible, otherwise . The matrix to receive the inverted matrix. Inverts the current matrix and stores the result in the provided matrix. Returns if the matrix is invertible, otherwise . Gets whether this matrix is invertible. Returns if the matrix can be inverted, otherwise . The row to retrieve the value from. The column to retrieve the value from. Gets or sets a value in the matrix. Returns the value found at the specified coordinates. Gets or sets the value at row 0, column 0. The matrix element value. Gets or sets the value at row 0, column 1. The matrix element value. Gets or sets the value at row 0, column 2. The matrix element value. Gets or sets the value at row 0, column 3. The matrix element value. Gets or sets the value at row 1, column 0. The matrix element value. Gets or sets the value at row 1, column 1. The matrix element value. Gets or sets the value at row 1, column 2. The matrix element value. Gets or sets the value at row 1, column 3. The matrix element value. Gets or sets the value at row 2, column 0. The matrix element value. Gets or sets the value at row 2, column 1. The matrix element value. Gets or sets the value at row 2, column 2. The matrix element value. Gets or sets the value at row 2, column 3. The matrix element value. Gets or sets the value at row 3, column 0. The matrix element value. Gets or sets the value at row 3, column 1. The matrix element value. Gets or sets the value at row 3, column 2. The matrix element value. Gets or sets the value at row 3, column 3. The matrix element value. The 3D point to transform. Transforms a 3D point using this matrix. Returns the transformed point. The point to map. The point to transform. Applies the matrix to a point. Returns a new point with the matrix applied. The x-coordinate of the point. The y-coordinate of the point. Transforms a 2D point using this matrix. Returns the transformed point. The x-coordinate of the point. The y-coordinate of the point. The z-coordinate of the point. Transforms a 3D point using this matrix. Returns the transformed point. The points to map. Applies the matrix to an array of points. Returns a new array of points with the matrix applied. The vector to map. The vector must have exactly 4 items. Applies the matrix to a vector. Returns a new vector with the matrix applied. The vector to map. The vector must have exactly 4 items. The vector that will receive the mapped vector. Applies the matrix to a vector. The x-value of the vector. The y-value of the vector. The z-value of the vector. The w-value of the vector. Applies the matrix to a vector. Returns a new vector with the matrix applied. The array of [x, y] pairs. The array must have an entry count of a multiple of 2. Applies the matrix to a series of [x, y] pairs, returning the [x', y', z', w'] result. Returns the resulting [x', y', z', w'] sets. The source array must have an entry count of a multiple of 2 (2, 4, 6, 8, ...). The resulting array will have an entry count of a multiple of 4 (4, 8, 12, 16, ...). The source array has an implied z-value of 0 and a w-value of 1, equivalent to [x, y, 0, 1]. The array of [x, y] pairs. The array must have an entry count of a multiple of 2. Returns the resulting [x', y', z', w'] sets. The array must have an entry count of a multiple of 4, and the same number of vectors as the source has pairs. Applies the matrix to a series of [x, y] pairs, returning the [x', y', z', w'] result. The source array has an implied z-value of 0 and a w-value of 1, equivalent to [x, y, 0, 1]. Gets the equivalent of the current matrix. The equivalent 3x3 matrix. When converting from to , the third row and column is dropped. The first matrix. The second matrix. Multiplies two matrices and returns the result. Returns the product of the two matrices. The matrix to scale. The scalar value to multiply by. Multiplies a matrix by a scalar value. Returns the scaled matrix. The matrix to negate. Negates a matrix by multiplying all elements by -1. Returns the negated matrix. The first matrix. The second matrix. Adds two matrices. Returns the sum of the two matrices. The first matrix to compare. The second matrix to compare. Determines whether two matrices are equal. Returns if the matrices are equal, otherwise . The to convert. Converts an to an . Returns the converted matrix. The to convert. Converts an to a . Returns the converted matrix. The to convert. Converts a to an . Returns the converted matrix. The first matrix to compare. The second matrix to compare. Determines whether two matrices are not equal. Returns if the matrices are not equal, otherwise . The first matrix. The second matrix. Multiplies two matrices. Returns the product of the two matrices. The matrix to scale. The scalar value. Multiplies a matrix by a scalar value. Returns the scaled matrix. The first matrix. The second matrix to subtract. Subtracts two matrices. Returns the difference of the two matrices. The matrix to negate. Negates a matrix. Returns the negated matrix. The matrix to concatenate. The matrix to concatenate. Post-concatenates the current matrix with the specified matrix. Returns the concatenated matrix. The amount, along the x-axis, to scale. The amount, along the y-axis, to scale. The amount, along the z-axis, to scale. Post-scales the current matrix with the specified scale. The amount, along the x-axis, to translate. The amount, along the y-axis, to translate. The amount, along the z-axis, to translate. Post-translates the current matrix with the specified stranslationale. The matrix to concatenate. The matrix to concatenate. Pre-concatenates the matrix with the specified matrix. Returns the concatenated matrix. The amount, along the x-axis, to scale. The amount, along the y-axis, to scale. The amount, along the z-axis, to scale. Pre-scales the current matrix with the specified scale. The amount of error to allow for when determining axis-alignment. Determines if transforming an axis-aligned square in 2D by this matrix will produce another 2D, axis-aligned square. Returns if the matrix preserves 2D axis alignment, otherwise . If the result is , it typically means the matrix is a scale with perhaps a 90-degree rotation. A 3D rotation through 90 degrees into a perpendicular plane collapses a square to a line, but is still considered to be axis-aligned. The amount, along the x-axis, to translate. The amount, along the y-axis, to translate. The amount, along the z-axis, to translate. Pre-translates the current matrix with the specified translation. An array containing 9 values in column-major order for a 3x3 matrix. Sets the matrix values from a 3x3 column-major array. An array containing 9 values in row-major order for a 3x3 matrix. Sets the matrix values from a 3x3 row-major array. The array containing the new, column-major values. Resets the current matrix with the specified column-major values. The first matrix. The second matrix. Reset the current matrix with the values from the concatenation of the specified matrices. Resets the current matrix to identity. The x-axis to rotate around. The y-axis to rotate around. The z-axis to rotate around. The amount, in radians, to rotate by. Resets the current matrix to a rotation matrix. If the specified vector is not unit-length, it will be automatically resized. The x-axis to rotate around. The y-axis to rotate around. The z-axis to rotate around. The amount, in degrees, to rotate by. Resets the current matrix to a rotation matrix. If the specified vector is not unit-length, it will be automatically resized. The x-axis to rotate around. The y-axis to rotate around. The z-axis to rotate around. The amount, in radians, to rotate by. Resets the current matrix to a rotation matrix, without checking to see if the specified vector is unit-length. This method assumes the specified vector is unit-length. The array containing the new, row-major values. Resets the current matrix with the specified row-major values. The amount, along the x-axis, to scale. The amount, along the y-axis, to scale. The amount, along the z-axis, to scale. Resets the current matrix to a scale matrix. The amount, along the x-axis, to translate. The amount, along the y-axis, to translate. The amount, along the y-axis, to translate. Resets the current matrix to a translation matrix. The first matrix. The second matrix to subtract. Subtracts two matrices and returns the result. Returns the difference of the two matrices. Converts the current matrix to a column-major array. Returns the new column-major array. The array to receive the matrix values. The array must have an item count of exactly 16 items. Converts the current matrix to a column-major array. A span to receive the 16 matrix values in column-major order. Copies the matrix values to a span in column-major order. Converts the current matrix to a row-major array. Returns the new row-major array. The array to receive the matrix values. The array must have an item count of exactly 16 items. Converts the current matrix to a row-major array. A span to receive the 16 matrix values in row-major order. Copies the matrix values to a span in row-major order. Transposes the current matrix. Returns the transposed matrix. Receives the inverted matrix if successful. Attempts to invert the matrix. Returns if the matrix was successfully inverted, otherwise . Gets a bit field describing the transformations the matrix may perform. A bitwise combination of the enumeration values that describes the matrix type. Various flags describing the transformations of a . The matrix skews or rotates. The matrix is an identity matrix. The matrix is in perspective. The matrix has any scale other than 1. The matrix has translation. Matrix convolution tile modes for use with . Clamp to the image's edge pixels. Fill with transparent black. Wrap around to the image's opposite edge. A memory-based stream. Creates a new instance of with an empty buffer. The data to initialize the stream with. Creates a new instance of with the buffer being the provided data. The data to initialize the stream with. Creates a new instance of with a copy of the provided data. The size of the stream buffer. Creates a new instance of with a buffer size of the specified size. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. The data to reset the stream to. Resets the stream with a copy of the provided data. Specifies the mipmap mode used when sampling images. Interpolates between two mipmap levels using linear filtering. Selects the nearest mipmap level. Disables mipmap filtering. Various standard gamma corrections. Standard linear gamma. Any non-standard gamma. Standard sRGB gamma. Standard 2.2 gamma curve. Represents a native object. This object just wraps a native handle with the managed dispose pattern. For a tracked object, use . Releases all resources used by this . Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Triggers a dispose, ignoring the value of . Implemented by derived types to destroy any managed objects. Implemented by derived types to destroy any native objects. Implemented by derived types to dispose managed objects that are not owned by this instance. This method is called during disposal to clean up managed objects that were created by native code but are not owned by this instance. Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. Gets or sets the handle to the underlying native object. The native object handle. Gets or sets a value indicating whether the call the public should be no-op. if the public Dispose call should be ignored; otherwise, . This only affects the public disposal. Objects that own this one can still forcefull trigger a dispose using . Gets or sets a value indicating whether the object has already been disposed. if the object has been disposed; otherwise, . Gets or sets a value indicating whether this object owns its handle and should destroy the native object when it is disposed. if the object owns the handle and will destroy it when disposed; otherwise, . A type of that provides a base type for canvases that do not need to rasterize. These canvases are not backed by any device/pixels and they use conservative clipping (clipping calls only use rectangles). The width of the canvas. The height of the canvas. Creates a new with the specified dimensions. A type of that draws to multiple canvases at the same time. The width of the canvas. The height of the canvas. Creates a new with the specified dimensions. The canvas to add. Adds a canvas to forward drawing commands to. Remove all canvases. The canvas to remove. Removes a canvas from the list of canvases receiving drawing commands. Represents a tracked native object. This object wraps a native handle and keeps track of its lifetime for the garbage collector. For a simple object, use . to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any managed objects. Implemented by derived types to destroy any native objects. Implemented by derived types to dispose managed objects that are not owned by this instance. This method is called during disposal to clean up managed objects that were created by native code but are not owned by this instance. The default implementation disposes any child objects that don't own their handles. Gets or sets the handle to the underlying native object. The pointer to the native object. Setting this value will register this object with the lifetime tracker. A canvas that captures all drawing commands, and rather than draw the actual content, it increments the alpha channel of each pixel every time it would have been touched by a draw call. This is useful for detecting overdraw. The canvas to draw on. Creates a new that wraps the specified . Holds the style and color information about how to draw geometries, text and bitmaps. , an paint object does not maintain an internal stack of state. That is, there is no save/restore on a paint. However, paint objects are relatively light-weight, so the client may create and maintain any number of paint objects, each set up for a particular use. Factoring all of these color and stylistic attributes out of the canvas state, and into (multiple) paint objects, allows the save and restore operations on the to be that much more efficient, as all they have to do is maintain the stack of matrix and clip settings. ### Effects Beyond simple attributes such as color, strokes, and text values, paints support effects. These are subclasses of different aspects of the drawing pipeline, that when referenced by a paint, are called to override some part of the drawing pipeline. There are five types of effects that can be assigned to an paint object: | Effect | Details | |---------------|------------------------------------------------------------------------------------------------| | Blend Mode | Blend modes and Duff-Porter transfer modes. | | Color Filter | Modification of the source colors before applying the blend mode. | | Mask Filter | Modification of the alpha mask before it is colorized and drawn (for example, blur). | | Path Effect | Modification of the geometry (path) before the alpha mask is generated (for example, dashing). | | Shader | Gradients and bitmap patterns. | ## Examples ### Simple Example The following example shows three different paints, each set up to draw in a different style. The caller can intermix these paints freely, either using them as is, or modifying them as the drawing proceeds. ```csharp var info = new SKImageInfo(256, 256); using (var surface = SKSurface.Create(info)) { SKCanvas canvas = surface.Canvas; canvas.Clear(SKColors.White); var paint1 = new SKPaint { TextSize = 64.0f, IsAntialias = true, Color = new SKColor(255, 0, 0), Style = SKPaintStyle.Fill }; var paint2 = new SKPaint { TextSize = 64.0f, IsAntialias = true, Color = new SKColor(0, 136, 0), Style = SKPaintStyle.Stroke, StrokeWidth = 3 }; var paint3 = new SKPaint { TextSize = 64.0f, IsAntialias = true, Color = new SKColor(136, 136, 136), TextScaleX = 1.5f }; var text = "Skia!"; canvas.DrawText(text, 20.0f, 64.0f, paint1); canvas.DrawText(text, 20.0f, 144.0f, paint2); canvas.DrawText(text, 20.0f, 224.0f, paint3); } ``` The example above produces the following: ![SKPaint and Text](~/images/SKPaintText.png "SKPaint and Text") ### Effects Example The following example draws using a gradient instead of a single color. To do, this a `SKShader` is assigned to the paint. Anything drawn with that paint will be drawn with the gradient specified in the call to `SKShader.CreateLinearGradient`. ```csharp var info = new SKImageInfo(256, 256); using (var surface = SKSurface.Create(info)) { SKCanvas canvas = surface.Canvas; canvas.Clear(SKColors.White); // create a gradient var colors = new[] { SKColors.Blue, SKColors.Yellow }; var shader = SKShader.CreateLinearGradient( new SKPoint(0.0f, 0.0f), new SKPoint(256.0f, 256.0f), colors, null, SKShaderTileMode.Clamp); // assign the gradient to the paint var paint = new SKPaint { Shader = shader }; canvas.DrawPaint(paint); } ``` The example above produces the following: ![SKPaint and SKShader](~/images/gradient.png "SKPaint and SKShader") ]]> Initializes a new instance of the class with the default settings. The to initialize text settings from. Creates a new with text settings initialized from the specified font. Gets or sets the custom for compositing. The custom blender, or to use the default . When set, the blender overrides the property. Gets or sets the blend mode. The blend mode used for combining source and destination colors during drawing operations. The text to be measured. The maximum width. Only the subset of text whose accumulated widths are <= maxWidth are measured. Measure the text, stopping early if the measured width exceeds . Returns the number of bytes of text that were measured. The text to measure as a UTF-8 encoded byte span. The maximum width constraint. Measures the text and returns the number of bytes that fit within the specified width. The number of bytes that fit within the maximum width. The text to measure as a character span. The maximum width constraint. Measures the text and returns the number of characters that fit within the specified width. The number of characters that fit within the maximum width. The text to be measured. The maximum width. Only the subset of text whose accumulated widths are <= maxWidth are measured. Measure the text, stopping early if the measured width exceeds . Returns the number of characters of text that were measured. The text to be measured. The maximum width. Only the subset of text whose accumulated widths are <= are measured. The actual width of the measured text. Measure the text, stopping early if the measured width exceeds . Returns the number of bytes of text that were measured. The pointer to a region holding text encoded using the encoding specified in format. The number of bytes to read from the The maximum width. Only the subset of text whose accumulated widths are <= are measured. Measure the text buffer, stopping early if the measured width exceeds . Returns the number of bytes of text that were measured. The parameter is a pointer to a region in memory that contains text encoded in the format. This only consumes up to bytes from the buffer. The pointer to a region holding text encoded using the encoding specified in format. The number of bytes to read from the The maximum width. Only the subset of text whose accumulated widths are <= are measured. Measure the text buffer, stopping early if the measured width exceeds . Returns the number of bytes of text that were measured. The parameter is a pointer to a region in memory that contains text encoded in the format. This only consumes up to bytes from the buffer. The text to measure as a UTF-8 encoded byte span. The maximum width constraint. When this method returns, contains the actual measured width of the text that fits. Measures the text and returns the number of bytes that fit within the specified width. The number of bytes that fit within the maximum width. The text to measure as a character span. The maximum width constraint. When this method returns, contains the actual measured width of the text that fits. Measures the text and returns the number of characters that fit within the specified width. The number of characters that fit within the maximum width. The text to be measured. The maximum width. Only the subset of text whose accumulated widths are <= are measured. The actual width of the measured text. Measure the text, stopping early if the measured width exceeds . Returns the number of characters of text that were measured. The pointer to a region holding text encoded using the encoding specified in format. The number of bytes to read from the The maximum width. Only the subset of text whose accumulated widths are <= are measured. The actual width of the measured text. Measure the text buffer, stopping early if the measured width exceeds . Returns the number of bytes of text that were measured. The parameter is a pointer to a region in memory that contains text encoded in the format. This only consumes up to bytes from the buffer. The pointer to a region holding text encoded using the encoding specified in format. The number of bytes to read from the The maximum width. Only the subset of text whose accumulated widths are <= are measured. The actual width of the measured text. Measure the text buffer, stopping early if the measured width exceeds . Returns the number of bytes of text that were measured. The parameter is a pointer to a region in memory that contains text encoded in the format. This only consumes up to bytes from the buffer. The text to be measured. The maximum width. Only the subset of text whose accumulated widths are <= are measured. The actual width of the measured text. The text that was measured. Measure the text, stopping early if the measured width exceeds . Returns the number of characters of text that were measured. Creates a copy of the current paint. Returns the copy. The copy is a shallow copy, all references will still point to the same objects. Gets or sets the paint's foreground color. The paint's foreground color as a 32-bit ARGB value. The color is a 32-bit value containing ARGB. This 32-bit value is not premultiplied, meaning that its alpha can be any value, regardless of the values of R, G and B. Gets or sets the paint's color as an (floating-point RGBA). The color in floating-point representation. This property provides higher precision color values than the property. Gets or sets the paint's color filter. The color filter applied to source colors before drawing, or if no filter is applied. The text encoded using the encoding specified in format. Determines whether all the characters in the specified text correspond to glyphs in the current typeface. if all the characters corresponds to a non-zero glyph index, otherwise false if any characters in text are not supported in the typeface. This method does not check to see if the text contains invalid glyph indices. The text to check as a UTF-8 encoded byte span. Returns whether the current typeface contains glyphs for all characters in the text. if the typeface contains glyphs for all characters; otherwise, . The text to check as a character span. Returns whether the current typeface contains glyphs for all characters in the text. if the typeface contains glyphs for all characters; otherwise, . The text. Determines whether all the characters in the specified text correspond to glyphs in the current typeface. if all the characters corresponds to a non-zero glyph index, otherwise false if any characters in text are not supported in the typeface. This method does not check to see if the text contains invalid glyph indices. The text buffer encoded using the encoding specified in format. The length of the text buffer. Determines whether all the characters in the specified text correspond to glyphs in the current typeface. if all the characters corresponds to a non-zero glyph index, otherwise false if any characters in text are not supported in the typeface. This method does not check to see if the text contains invalid glyph indices. The text buffer encoded using the encoding specified in format. The length of the text buffer. Determines whether all the characters in the specified text correspond to glyphs in the current typeface. if all the characters corresponds to a non-zero glyph index, otherwise false if any characters in text are not supported in the typeface. This method does not check to see if the text contains invalid glyph indices. The text encoded using the encoding specified in format. Returns the number of glyphs in text. Returns the number of glyphs in text. The text to count glyphs for as a UTF-8 encoded byte span. Returns the number of glyphs required to render the text. The number of glyphs needed to render the text. The text to count glyphs for as a character span. Returns the number of glyphs required to render the text. The number of glyphs needed to render the text. The text. Returns the number of glyphs in text. Returns the number of glyphs in text. The text buffer encoded using the encoding specified in format. The length of the text buffer. Returns the number of glyphs in text. Returns the number of glyphs in text. The text buffer encoded using the encoding specified in format. The length of the text buffer. Returns the number of glyphs in text. Returns the number of glyphs in text. Gets or sets a value indicating whether device kerning is enabled. if device kerning is enabled; otherwise, . to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. Gets or sets a value indicating whether fake bold text is enabled. if fake bold text is enabled; otherwise, . Gets or sets the filter quality of the current paint. One of the enumeration values that specifies the filter quality. This affects the quality (and performance) of drawing scaled images. Gets the font metrics for the current typeface. The font metrics. Gets the recommend line spacing. The recommended line spacing in pixels. The source path. Creates a new path from the result of applying any and all effects to a source path. Returns the resulting fill path, or if the source path should be drawn with a hairline. The source path to transform. The transformation matrix to apply. Creates a new path from the result of applying any and all effects to a source path with a transformation matrix. Returns the resulting fill path, or if the source path should be drawn with a hairline. The input path. The output path. Applies any and all effects to a source path, returning the result in the destination. if the path should be filled, or false if it should be drawn with a hairline. The source path. The limit to be passed to the path effect. Creates a new path from the result of applying any and all effects to a source path. Returns the resulting fill path, or if the source path should be drawn with a hairline. The source path. If > 1, increase precision, else if (0 < res < 1) reduce precision in favor of speed/size. Creates a new path from the result of applying any and all effects to a source path. Returns the resulting fill path, or if the source path should be drawn with a hairline. The source path to transform. The destination path to receive the result. The transformation matrix to apply. Applies any and all effects to a source path with a transformation matrix, writing the result to the destination. if the path should be filled; if it should be drawn with a hairline. The source path. The output path. The limit to be passed to the path effect. Applies any and all effects to a source path, returning the result in the destination. if the path should be filled, or false if it should be drawn with a hairline. The input path. The output path. If > 1, increase precision, else if (0 < res < 1) reduce precision in favor of speed/size. Applies any and all effects to a source path, returning the result in the destination. if the path should be filled, or false if it should be drawn with a hairline. The source path to transform. The culling rectangle to limit the path effect. The transformation matrix to apply. Creates a new path from the result of applying effects to a source path with culling and transformation. Returns the resulting fill path, or if the source path should be drawn with a hairline. The source path. The limit to be passed to the path effect. If > 1, increase precision, else if (0 < res < 1) reduce precision in favor of speed/size. Creates a new path from the result of applying any and all effects to a source path. Returns the resulting fill path, or if the source path should be drawn with a hairline. The source path to transform. The destination path to receive the result. The culling rectangle to limit the path effect. The transformation matrix to apply. Applies any and all effects to a source path with culling and transformation, writing the result to the destination. if the path should be filled; if it should be drawn with a hairline. The input path. The output path. The destination path may be culled to this rectangle. If > 1, increase precision, else if (0 < res < 1) reduce precision in favor of speed/size. Applies any and all effects to a source path, returning the result in the destination. if the path should be filled, or false if it should be drawn with a hairline. When this method returns, contains the for the current typeface. Returns the font metrics and recommended line spacing for the current typeface. The recommended spacing between lines. The font metrics for the current typeface. If not 0, return width as if the canvas were scaled by this value. Returns the font metrics and line spacing for the current typeface. Returns the recommended spacing between lines. The text to get glyph offsets for as a UTF-8 encoded byte span. The starting x-coordinate offset. Returns the x-coordinate offsets for each glyph in the text. An array of x-coordinate offsets for each glyph. The text to get glyph offsets for as a character span. The starting x-coordinate offset. Returns the x-coordinate offsets for each glyph in the text. An array of x-coordinate offsets for each glyph. The text to get glyph offsets for. The starting x-coordinate offset. Returns the x-coordinate offsets for each glyph in the text. An array of x-coordinate offsets for each glyph. A pointer to the text buffer encoded using the paint's text encoding. The number of bytes to read from the buffer. The starting x-coordinate offset. Returns the x-coordinate offsets for each glyph in the text. An array of x-coordinate offsets for each glyph. The text to get glyph positions for as a UTF-8 encoded byte span. The starting position offset. Returns the positions for each glyph in the text. An array of positions for each glyph. The text to get glyph positions for as a character span. The starting position offset. Returns the positions for each glyph in the text. An array of positions for each glyph. The text to get glyph positions for. The starting position offset. Returns the positions for each glyph in the text. An array of positions for each glyph. A pointer to the text buffer encoded using the paint's text encoding. The number of bytes to read from the buffer. The starting position offset. Returns the positions for each glyph in the text. An array of positions for each glyph. The text encoded using the encoding specified in format. Converts text into glyph indices. Returns the glyph indices. This method does not check the text for valid character codes or valid glyph indices. The text to convert as a UTF-8 encoded byte span. Returns the glyph IDs for the characters in the text. An array of glyph IDs for each character. The text to convert as a character span. Returns the glyph IDs for the characters in the text. An array of glyph IDs for each character. The text. Converts text into glyph indices. Returns the glyph indices. This method does not check the text for valid character codes or valid glyph indices. The text buffer encoded using the encoding specified in format. The length of the text buffer. Converts text into glyph indices. Returns the glyph indices. This method does not check the text for valid character codes or valid glyph indices. The text buffer encoded using the encoding specified in format. The length of the text buffer. Converts text into glyph indices. Returns the glyph indices. This method does not check the text for valid character codes or valid glyph indices. The text encoded using the encoding specified in format. Retrieves the advance for each glyph in the text. Returns the text advances for each glyph. is , this method returns the horizontal advance. If is , this method returns the vertical advance. Uses to decode text, to get the font metrics, and to scale the widths. ]]> The text as a UTF-8 encoded byte span. Retrieves the advance widths for each glyph in the text. An array of glyph advance widths. The text as a character span. Retrieves the advance widths for each glyph in the text. An array of glyph advance widths. The text. Retrieves the advance for each glyph in the text. Returns the text advances for each glyph. is , this method returns the horizontal advance. If is , this method returns the vertical advance. Uses to decode text, to get the font metrics, and to scale the widths. ]]> The text encoded using the encoding specified in format. The bounds for each glyph relative to (0, 0). Retrieves the advance and bounds for each glyph in the text. Returns the text advances for each glyph. is , this method returns the horizontal advance. If is , this method returns the vertical advance. Uses to decode text, to get the font metrics, and to scale the widths and bounds. ]]> The text buffer encoded using the encoding specified in format. The length of the text buffer. Retrieves the advance for each glyph in the text. Returns the text advances for each glyph. is , this method returns the horizontal advance. If is , this method returns the vertical advance. Uses to decode text, to get the font metrics, and to scale the widths. ]]> The text buffer encoded using the encoding specified in format. The length of the text buffer. Retrieves the advance for each glyph in the text. Returns the text advances for each glyph. is , this method returns the horizontal advance. If is , this method returns the vertical advance. Uses to decode text, to get the font metrics, and to scale the widths. ]]> The text as a UTF-8 encoded byte span. When this method returns, contains the bounding rectangles for each glyph relative to (0, 0). Retrieves the advance widths and bounding rectangles for each glyph in the text. An array of glyph advance widths. The text as a character span. When this method returns, contains the bounding rectangles for each glyph relative to (0, 0). Retrieves the advance widths and bounding rectangles for each glyph in the text. An array of glyph advance widths. The text. The bounds for each glyph relative to (0, 0). Retrieves the advance and bounds for each glyph in the text. Returns the text advances for each glyph. is , this method returns the horizontal advance. If is , this method returns the vertical advance. Uses to decode text, to get the font metrics, and to scale the widths and bounds. ]]> The text buffer encoded using the encoding specified in format. The length of the text buffer. The bounds for each glyph relative to (0, 0). Retrieves the advance and bounds for each glyph in the text. Returns the text advances for each glyph. is , this method returns the horizontal advance. If is , this method returns the vertical advance. Uses to decode text, to get the font metrics, and to scale the widths and bounds. ]]> The text buffer encoded using the encoding specified in format. The length of the text buffer. The bounds for each glyph relative to (0, 0). Retrieves the advance and bounds for each glyph in the text. Returns the text advances for each glyph. is , this method returns the horizontal advance. If is , this method returns the vertical advance. Uses to decode text, to get the font metrics, and to scale the widths and bounds. ]]> The text encoded using the encoding specified in format. The positions of each glyph in the horizontal direction. The positions of all the glyphs along the y-coordinate. The upper line parallel to the advance. The lower line parallel to the advance. Calculate the intersections of two parallel lines and the glyphs. Returns the intersections of two parallel lines and the glyphs. to decode text, to get the font metrics, and , and to scale and modify the glyph paths. ]]> The text as a UTF-8 encoded byte span. The x-coordinate positions for each glyph. The y-coordinate for all glyphs. The upper y-coordinate for the intercept region. The lower y-coordinate for the intercept region. Returns the intervals where the text glyphs intersect a horizontal band. An array of x-coordinate pairs representing the left and right edges of each intersection. The text as a character span. The x-coordinate positions for each glyph. The y-coordinate for all glyphs. The upper y-coordinate for the intercept region. The lower y-coordinate for the intercept region. Returns the intervals where the text glyphs intersect a horizontal band. An array of x-coordinate pairs representing the left and right edges of each intersection. The text. The positions of each glyph in the horizontal direction. The positions of all the glyphs along the y-coordinate. The upper line parallel to the advance. The lower line parallel to the advance. Calculate the intersections of two parallel lines and the glyphs. Returns the intersections of two parallel lines and the glyphs. to decode text, to get the font metrics, and , and to scale and modify the glyph paths. ]]> The text buffer encoded using the encoding specified in format. The length of the text buffer. The positions of each glyph in the horizontal direction. The positions of all the glyphs along the y-coordinate. The upper line parallel to the advance. The lower line parallel to the advance. Calculate the intersections of two parallel lines and the glyphs. Returns the intersections of two parallel lines and the glyphs. to decode text, to get the font metrics, and , and to scale and modify the glyph paths. ]]> The text buffer encoded using the encoding specified in format. The length of the text buffer. The positions of each glyph in the horizontal direction. The positions of all the glyphs along the y-coordinate. The upper line parallel to the advance. The lower line parallel to the advance. Calculate the intersections of two parallel lines and the glyphs. Returns the intersections of two parallel lines and the glyphs. to decode text, to get the font metrics, and , and to scale and modify the glyph paths. ]]> The text encoded using the encoding specified in format. The positions of each glyph. The upper line parallel to the advance. The lower line parallel to the advance. Calculate the intersections of two parallel lines and the glyphs. Returns the intersections of two parallel lines and the glyphs. to decode text, to get the font metrics, and , and to scale and modify the glyph paths. ]]> The text as a UTF-8 encoded byte span. The positions for each glyph. The upper y-coordinate for the intercept region. The lower y-coordinate for the intercept region. Returns the intervals where the positioned text glyphs intersect a horizontal band. An array of x-coordinate pairs representing the left and right edges of each intersection. The text as a character span. The positions for each glyph. The upper y-coordinate for the intercept region. The lower y-coordinate for the intercept region. Returns the intervals where the positioned text glyphs intersect a horizontal band. An array of x-coordinate pairs representing the left and right edges of each intersection. The text. The positions of each glyph. The upper line parallel to the advance. The lower line parallel to the advance. Calculate the intersections of two parallel lines and the glyphs. Returns the intersections of two parallel lines and the glyphs. to decode text, to get the font metrics, and , and to scale and modify the glyph paths. ]]> The text buffer encoded using the encoding specified in format. The length of the text buffer. The positions of each glyph. The upper line parallel to the advance. The lower line parallel to the advance. Calculate the intersections of two parallel lines and the glyphs. Returns the intersections of two parallel lines and the glyphs. to decode text, to get the font metrics, and , and to scale and modify the glyph paths. ]]> The text buffer encoded using the encoding specified in format. The length of the text buffer. The positions of each glyph. The upper line parallel to the advance. The lower line parallel to the advance. Calculate the intersections of two parallel lines and the glyphs. Returns the intersections of two parallel lines and the glyphs. to decode text, to get the font metrics, and , and to scale and modify the glyph paths. ]]> The text blob. The upper line parallel to the advance. The lower line parallel to the advance. Calculate the intersections of two parallel lines and the glyphs. Returns the intersections of two parallel lines and the glyphs. to decode text, to get the font metrics, and , and to scale and modify the glyph paths. ]]> The text encoded using the encoding specified in format. The x-coordinate of the origin to the text. The y-coordinate of the origin to the text. The upper line parallel to the advance. The lower line parallel to the advance. Calculate the intersections of two parallel lines and the glyphs. Returns the intersections of two parallel lines and the glyphs. to decode text, to get the font metrics, and , and to scale and modify the glyph paths. ]]> The text as a UTF-8 encoded byte span. The x-coordinate of the text origin. The y-coordinate of the text origin. The upper y-coordinate for the intercept region. The lower y-coordinate for the intercept region. Returns the intervals where the text glyphs intersect a horizontal band. An array of x-coordinate pairs representing the left and right edges of each intersection. The text as a character span. The x-coordinate of the text origin. The y-coordinate of the text origin. The upper y-coordinate for the intercept region. The lower y-coordinate for the intercept region. Returns the intervals where the text glyphs intersect a horizontal band. An array of x-coordinate pairs representing the left and right edges of each intersection. The text. The x-coordinate of the origin to the text. The y-coordinate of the origin to the text. The upper line parallel to the advance. The lower line parallel to the advance. Calculate the intersections of two parallel lines and the glyphs. Returns the intersections of two parallel lines and the glyphs. to decode text, to get the font metrics, and , and to scale and modify the glyph paths. ]]> The text buffer encoded using the encoding specified in format. The length of the text buffer. The x-coordinate of the origin to the text. The y-coordinate of the origin to the text. The upper line parallel to the advance. The lower line parallel to the advance. Calculate the intersections of two parallel lines and the glyphs. Returns the intersections of two parallel lines and the glyphs. to decode text, to get the font metrics, and , and to scale and modify the glyph paths. ]]> The text buffer encoded using the encoding specified in format. The length of the text buffer. The x-coordinate of the origin to the text. The y-coordinate of the origin to the text. The upper line parallel to the advance. The lower line parallel to the advance. Calculate the intersections of two parallel lines and the glyphs. Returns the intersections of two parallel lines and the glyphs. to decode text, to get the font metrics, and , and to scale and modify the glyph paths. ]]> The text encoded using the encoding specified in format. The position to use for each glyph in the text. Returns the path (outline) for the specified text. Returns the containing the outline of the text. The text as a UTF-8 encoded byte span. The positions for each glyph. Returns the path (outline) for the specified positioned text. Returns the containing the outline of the text. The text as a character span. The positions for each glyph. Returns the path (outline) for the specified positioned text. Returns the containing the outline of the text. The text to generate an outline for. The position to use for each glyph in the text. Returns the path (outline) for the specified text. Returns the containing the outline of the text. The text encoded using the encoding specified in format. The x-coordinate of the first glyph in the text. The y-coordinate of the first glyph in the text. Returns the path (outline) for the specified text. Returns the containing the outline of the text. The pointer to a region holding text encoded using the encoding specified in format. The number of bytes to read from the The position to use for each glyph in the text. Returns the path (outline) for the specified text. Returns the containing the outline of the text. A pointer to the text buffer encoded using the paint's text encoding. The number of bytes to read from the buffer. The positions for each glyph. Returns the path (outline) for the specified positioned text. Returns the containing the outline of the text. The pointer to a region holding text encoded using the encoding specified in format. The number of bytes to read from the The position to use for each glyph in the text. Returns the path (outline) for the specified text. Returns the containing the outline of the text. The text as a UTF-8 encoded byte span. The x-coordinate of the text origin. The y-coordinate of the text origin. Returns the path (outline) for the specified text at the given position. Returns the containing the outline of the text. The text as a character span. The x-coordinate of the text origin. The y-coordinate of the text origin. Returns the path (outline) for the specified text at the given position. Returns the containing the outline of the text. The text to generate an outline for. The x-coordinate of the first glyph in the text. The y-coordinate of the first glyph in the text. Returns the path (outline) for the specified text. Returns the containing the outline of the text. The pointer to a region holding text encoded using the encoding specified in format. The number of bytes to read from the The x-coordinate of the first glyph in the text. The y-coordinate of the first glyph in the text. Returns the path (outline) for the specified text. Returns the containing the outline of the text. The pointer to a region holding text encoded using the encoding specified in format. The number of bytes to read from the The x-coordinate of the first glyph in the text. The y-coordinate of the first glyph in the text. Returns the path (outline) for the specified text. Returns the containing the outline of the text. Gets or sets the level of hinting to be performed. One of the enumeration values that specifies the level of hinting. Gets or sets the image filter. The image filter, or if none is set. Gets or sets a value indicating whether anti-aliasing is enabled. if anti-aliasing is enabled; otherwise, . Gets or sets a value indicating whether auto-hinting is enabled. if auto-hinting is enabled; otherwise, . Gets or sets a value indicating whether dithering is enabled. if dithering is enabled; otherwise, . Gets or sets a value indicating whether text is an embedded bitmap. if embedded bitmap text is enabled; otherwise, . Gets or sets a value indicating whether text is linear. if linear text is enabled; otherwise, . Gets or sets a value indicating whether to paint a stroke or the fill. to stroke; to fill. This is a shortcut way to set to either or . Gets or sets a value indicating whether the text is vertical or horizontal is enabled. if vertical text is enabled; otherwise, . will place its glyphs vertically rather than horizontally. ]]> Gets or sets a value indicating whether LCD text rendering is enabled. if LCD text rendering is enabled; otherwise, . must also be enabled for LCD rendering to be enabled. Gets or sets the mask filter to use when painting. The mask filter, or if none is set. Mask filters control the transformations on the alpha channel before primitives are drawn. Examples are blur or emboss. The text to be measured. Measures the specified text. Returns the width of the text. This will return the vertical measure if this is vertical text, in which case the returned value should be treated has a height instead of a width. The text to measure as a UTF-8 encoded byte span. Measures the width of the text. The width of the text. The text to measure as a character span. Measures the width of the text. The width of the text. The text to be measured. Measures the specified text. Returns the width of the text. This will return the vertical measure if this is vertical text, in which case the returned value should be treated has a height instead of a width. The text to be measured. The bounds of the text relative to (0, 0) Measures the specified text. Returns the width of the text. This will return the vertical measure if this is vertical text, in which case the returned value should be treated has a height instead of a width. The pointer to a region holding text encoded using the encoding specified in format. The number of bytes to read from the Measures the specified UTF-8 encoded text. Returns the width of the text. The parameter is a pointer to a region in memory that contains text encoded in the format. This only consumes up to bytes from the buffer. The pointer to a region holding text encoded using the encoding specified in format. The number of bytes to read from the Measures the specified UTF-8 encoded text. Returns the width of the text. The parameter is a pointer to a region in memory that contains text encoded in the format. This only consumes up to bytes from the buffer. The text to measure as a UTF-8 encoded byte span. When this method returns, contains the bounding rectangle of the text. Measures the width of the text and returns the bounding rectangle. The width of the text. The text to measure as a character span. When this method returns, contains the bounding rectangle of the text. Measures the width of the text and returns the bounding rectangle. The width of the text. The text to be measured. The bounds of the text relative to (0, 0) Measures the specified text. Returns the width of the text. This will return the vertical measure if this is vertical text, in which case the returned value should be treated has a height instead of a width. The pointer to a region holding text encoded using the encoding specified in format. The number of bytes to read from the The bounds of the text relative to (0, 0) Measures the specified UTF-8 encoded text. Returns the width of the text. format. This only consumes up to `length` bytes from the buffer. ]]> The pointer to a region holding text encoded using the encoding specified in format. The number of bytes to read from the The bounds of the text relative to (0, 0) Measures the specified UTF-8 encoded text. Returns the width of the text. format. This only consumes up to `length` bytes from the buffer. ]]> Gets or sets the path effect to use when painting. The path effect, or if none is set. Resets all the paint properties to their defaults. The color value as an . The for interpreting the color. Sets the paint's color using a floating-point color value in the specified color space. Gets or sets the shader to use when painting. The shader, or if none is set. Gets or sets a value indicating how the start and end of stroked lines and paths are treated. One of the enumeration values that specifies how the start and end of stroked lines and paths are treated. Gets or sets the path's join type. One of the enumeration values that specifies the join type. Gets or sets the paint's miter limit. The miter limit value. This is used whenever the is or to control the behavior of miter joins when the joins' angle is sharp. Gets or sets the paint's stroke width. The stroke width in pixels. This is used whenever the is or . The value of zero is the special hairline mode. Hairlines always draw with a width of 1 pixel, regardless of the transformation matrix. Gets or sets the painting style. One of the enumeration values that specifies the painting style. Can also be set using . Gets or sets a value indicating whether to use subpixel text positioning. if subpixel text positioning is enabled; otherwise, . Gets or sets the path's align value. One of the enumeration values that specifies the text alignment. Gets or sets the encoding used when drawing or measuring text. One of the enumeration values that specifies the text encoding. This defaults to UTF-8 encoding. Gets or sets paint's horizontal scale factor for text. The horizontal scale factor. Gets or sets the text height in pixels. The text height in pixels. Gets or sets paint's horizontal skew factor for text. The horizontal skew factor. Creates an from the paint's text settings. A new initialized with the paint's typeface and text size settings. Gets or sets the typeface used when painting text. May be . The typeface, or to use the default typeface. Levels of hinting that can be performed. The same as , unless we are rendering subpixel glyphs. Don't perform hinting. Use the default hinting level. Use a lighter hinting level. Indications on how to draw geometry. , and lines are always drawn in . implicitly draws the result with so if the original path is even-odd, the results may not appear the same as if it was drawn twice, filled and then stroked. ]]> Fill the geometry. Stroke the geometry. Fill and stroke the geometry. A compound geometric path. A path encapsulates compound (multiple contour) geometric paths consisting of straight line segments, quadratic curves, and cubic curves. Creates an empty path. The path to clone. Creates a path by making a copy of an existing path. This constructor can throw InvalidOperationException if there is a problem copying the source path. The bounds of oval used to define the size of the arc. Starting angle (in degrees) where the arc begins. Sweep angle (in degrees) measured clockwise. Adds the specified arc to the path as a new contour. The x-coordinate of the center of the circle. The y-coordinate of the center of the circle. The radius of the circle. The direction to wind the circle's contour. Adds a closed circle contour to the path. The bounding oval to add as a closed contour to the path. The direction to wind the oval's contour. Adds a closed oval contour to the path. The path containing the elements to be added to the current path. Determines how the path contours are added to the path. On mode, contours are added as new contours. On mode, the last contour of the path is extended with the first contour of the path. Extends the current path with the path elements from another path, using the specified extension mode. The path containing the elements to be added to the current path. Transformation matrix applied to the path. Determines how the path contours are added to the path. On mode, contours are added as new contours. On mode, the last contour of the path is extended with the first contour of the path. Extends the current path with the path elements from another path, by applying the specified transformation matrix, using the specified extension mode. The path containing the elements to be added to the current path. The amount to translate the path in X as it is added. The amount to translate the path in Y as it is added. Determines how the path contours are added to the path. On mode, contours are added as new contours. On mode, the last contour of the path is extended with the first contour of the path. Extends the current path with the path elements from another path offset by (, ), using the specified extension mode. The path containing the elements to be added to the current path. Extends the current path with the path elements from another path in reverse order. The points that make up the polygon. to close the path; otherwise, . Adds a new contour made of just lines. The points defining the polygon vertices. If , closes the polygon by connecting the last point to the first. Adds a polygon contour to the path. The rectangle to add as a closed contour to the path. The direction to wind the rectangle's contour. Adds a closed rectangle contour to the path. The rectangle to add as a closed contour to the path. The direction to wind the rectangle's contour. Initial point of the contour (initial ), expressed as a corner index, starting in the upper-left position, clock-wise. Must be in the range of 0..3. Adds a closed rectangle contour to the path. Add a closed rectangle contour to the path with an initial point of the contour (startIndex) expressed as a corner index. The bounds of a the rounded rectangle. The x-radius of the rounded corners. The y-radius of the rounded corners. The direction to wind the rectangle's contour. Adds a closed rectangle with rounded corners to the current path. The rounded rectangle. The direction to wind the rectangle's contour. Adds a closed rectangle with rounded corners to the current path. The rounded rectangle. The direction to wind the rectangle's contour. Initial point of the contour (initial ), expressed as an index of the radii minor/major points, ordered clock-wise. Must be in the range of 0..7. Adds a closed rectangle with rounded corners to the current path. The bounds of a the rounded rectangle. The x-radius of the rounded corners. The y-radius of the rounded corners. The direction to wind the rectangle's contour. Adds a closed rectangle with rounded corners to the current path. The corner coordinates. The destination coordinates. The corner radius. Appends a line and arc to the current path. This is the same as the PostScript call "arct". The bounding oval defining the shape and size of the arc. The starting angle (in degrees) where the arc begins. The sweep angle (in degrees) measured clockwise. Whether to always begin a new contour with the arc. Appends the specified arc to the path. is added to connect the current contour to the start of the arc. However, if the path is empty, then we call with the first point of the arc. ]]> The radius. The angle in degrees relative to the x-axis. Determines whether the smallest or largest arc possible is drawn. Determines if the arc should be swept in an anti-clockwise or clockwise direction. The destination coordinate. Appends an elliptical arc from the current point in the format used by SVG. The corner x-coordinate. The corner y-coordinate. The destination x-coordinate. The destination y-coordinate. The corner radius. Appends a line and arc to the current path. This is the same as the PostScript call "arct". The radius in the x-direction. The radius in the y-direction. The angle in degrees relative to the x-axis. Determines whether the smallest or largest arc possible is drawn. Determines if the arc should be swept in an anti-clockwise or clockwise direction. The destination x-coordinate. The destination y-coordinate. Appends an elliptical arc from the current point in the format used by SVG. Gets the bounds of the path's points. If the path contains zero points/verbs, this will return the empty rectangle. Gets the bounds of the path's points. This bounds may be larger than the actual shape, since curves do not extend as far as their control points. Additionally this bound encompasses all points, even isolated MoveTo either preceding or following the last non-degenerate contour. Closes the current contour. If the current point is not equal to the first point of the contour, a line segment is automatically added. Computes a bounds that is conservatively "snug" around the path. Returns the bounds. This assumes that the path will be filled. It does not attempt to collapse away contours that are logically empty (e.g. MoveTo(x, y) + LineTo(x, y)) but will include them in the calculation. The coordinates of the control point of the conic curve. The coordinates of the end point of the conic curve. The weight of the conic curve. Adds a conic path from the last point. call has been made for this contour, the first point is automatically set to (0, 0). ]]> The x-coordinate of the control point of the conic curve. The y-coordinate of the control point of the conic curve. The x-coordinate of the end point of the conic curve. The y-coordinate of the end point of the conic curve. The weight of the conic curve. Adds a conic path from the last point. call has been made for this contour, the first point is automatically set to (0, 0). ]]> The x-coordinate to check. The y-coordinate to check. Determines whether the point (x, y) is contained by the path, taking into account the . if the point (x, y) is contained by the path; otherwise, . The coordinates of the starting point of the conic curve. The coordinates of the control point of the conic curve. The coordinates of the end point of the conic curve. The weight of the conic curve. The tolerance to use (1 << pow2). Chop a conic into a number of quads. Returns the collection of points that make up the conic curve. The coordinates of the starting point of the conic curve. The coordinates of the control point of the conic curve. The coordinates of the end point of the conic curve. The weight of the conic curve. The collection of points. The tolerance to use (1 << pow2). Chop a conic into a number of quads. Returns the number of quads. The coordinates of the starting point of the conic curve. The coordinates of the control point of the conic curve. The coordinates of the end point of the conic curve. The weight of the conic curve. The collection to store the points. The tolerance to use (1 << pow2). Chop a conic into a number of quads. Returns the number of quads. The amount of storage needed for pts is: 1 + 2 * (1 << pow2) Gets or sets the path's convexity. One of the enumeration values that specifies the path's convexity. If it is currently unknown, then this function will attempt to compute the convexity (and cache the result). When is , each contour (as defined by a new starting move command) will be completed with a close verb regardless of the contour's contents. Creates an iterator object to scan the all of the segments (lines, quadratics, cubics) of each contours in a path. Returns an object that can be used to iterate over the various elements of the path. method instead. ]]> Creates a raw iterator object to scan the all of the segments (lines, quadratics, cubics) of each contours in a path. Returns an object that can be used to iterate over the various elements of the path. method, this iterator does not clean up or normalize the values in the path. It returns the raw elements contained in the path. ]]> The coordinates of the 1st control point on a cubic curve. The coordinates of the 2nd control point on a cubic curve. The coordinates of the end point on a cubic curve. Adds a cubic bezier from the last point. call has been made for this contour, the first point is automatically set to (0, 0). ]]> The x-coordinate of the 1st control point on a cubic curve. The y-coordinate of the 1st control point on a cubic curve. The x-coordinate of the 2nd control point on a cubic curve. The y-coordinate of the 2nd control point on a cubic curve. The x-coordinate of the end point on a cubic curve. The y-coordinate of the end point on a cubic curve. Adds a cubic bezier from the last point. call has been made for this contour, the first point is automatically set to (0, 0). ]]> to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. Gets or sets the path's fill type. One of the enumeration values that specifies the path's fill type. This is used to define how "inside" is computed. The default value is . The bounds, if the path contains any points. Returns the bounds of the path's points. if the path is not empty; otherwise, . This bounds may be larger than the actual shape, since curves do not extend as far as their control points. Additionally this bound encompasses all points, even isolated MoveTo either preceding or following the last non-degenerate contour. Returns the two points of the path. Returns the two points of the path. If the path is not a single, straight line, then is returned. See also . Returns the oval bounds of the path. Returns the oval bounds of the path. If the path is not a single oval or circle, then an empty rectangle is returned. See also . The index of the point to return. Returns the point at the specified index. The point at the specified index. If the index is out of range (i.e. is not 0 <= index < ), then the returned coordinates will be (0, 0). The maximum number of points to copy into points. Returns a subset of points in the path. Up to max points are copied. Returns the requested set of points. The array to hold the points. The maximum number of points to copy into points. Returns a subset of points in the path. Up to max points are copied. Returns the actual number of points in the path. Returns the rectangle of the path. Returns the rectangle of the path. If the path is not a single rectangle, then an empty rectangle is returned. See also . if the rectangle is closed; otherwise, . The direction of the rectangle. Returns the rectangle of the path. Returns the rectangle of the path. If the path is not a single rectangle, then an empty rectangle is returned. See also . Returns the round rectangle of the path. Returns the round rectangle of the path. If the path is not a single round rectangle, then is returned. See also . The tight bounds of the path. Gets the "tight" bounds of the path. Unlike , the control points of curves are excluded. if the bounds could be computed; otherwise, . Gets a value indicating whether the path is concave. if the path is concave; otherwise, . If it is currently unknown, then this function will attempt to compute the convexity (and cache the result). Gets a value indicating whether the path is convex. if the path is convex; otherwise, . If it is currently unknown, then this function will attempt to compute the convexity (and cache the result). Gets a value indicating whether or not the path is empty (contains no lines or curves). if the path is empty; otherwise, . Gets a value indicating whether the path is a single, straight line. if the path is a single, straight line; otherwise, . See also . Gets a value indicating whether the path is a single oval or circle. if the path is a single oval or circle; otherwise, . See also . Gets a value indicating whether the path is a single rectangle. if the path is a single rectangle; otherwise, . See also and . Gets a value indicating whether the path is a single, round rectangle. if the path is a single, round rectangle; otherwise, . See also . The index of the point to get. Gets the point at the specified index. The point at the specified index. If the index is out of range (i.e. is not 0 <= index < ), then the returned coordinates will be (0, 0). Returns the last point on the path. If no points have been added, (0, 0) is returned. The last point on the path. The coordinates of the end of a line. Adds a line from the last point to the specified point (x, y). call has been made for this contour, the first point is automatically set to (0, 0). ]]> The x-coordinate of the end of a line. The y-coordinate of the end of a line. Adds a line from the last point to the specified point (x, y). call has been made for this contour, the first point is automatically set to (0, 0). ]]> The coordinates of the start of a new contour. Sets the beginning of the next contour to the point. The x-coordinate of the start of a new contour. The y-coordinate of the start of a new contour. Sets the beginning of the next contour to the point. The amount to offset the entire path. Sets the beginning of the next contour to the point. The amount in the x-direction to offset the entire path. The amount in the y-direction to offset the entire path. Offset the path by the specified distance. The second operand. The logical operator. Compute the result of a logical operation on two paths. Returns the resulting path if the operation was successful, otherwise . The second operand. The logical operator. The path that will be used to set the result to. The current path will be . Compute the result of a logical operation on two paths. if the operation was successful; otherwise, . The SVG path data. Creates a path based on the SVG path data string. Returns the new path if successful, otherwise . Gets the number of points on the path. The number of points on the path. Gets all the points in the path. The array of points in the path. , To only return a subset of the points in the path, use . ]]> The coordinates of the control point on a quadratic curve. The coordinates of the end point on a quadratic curve. Adds a quadratic bezier from the last point. call has been made for this contour, the first point is automatically set to (0, 0). ]]> The x-coordinate of the control point on a quadratic curve. The y-coordinate of the control point on a quadratic curve. The x-coordinate of the end point on a quadratic curve. The y-coordinate of the end point on a quadratic curve. Adds a quadratic bezier from the last point. call has been made for this contour, the first point is automatically set to (0, 0). ]]> The radius. The angle in degrees relative to the x-axis. Determines whether the smallest or largest arc possible is drawn. Determines if the arc should be swept in an anti-clockwise or clockwise direction. The destination coordinates relative to the last point. The same as , but the coordinates are considered relative to the last point on this contour. The radius in the x-direction. The radius in the y-direction. The angle in degrees relative to the x-axis. Determines whether the smallest or largest arc possible is drawn. Determines if the arc should be swept in an anti-clockwise or clockwise direction. The destination x-coordinate relative to the last point. The destination y-coordinate relative to the last point. The same as , but the coordinates are considered relative to the last point on this contour. The amount to add to the coordinates of the last point on this contour, to specify the control point of the conic curve. The amount to add to the coordinates of the last point on this contour, to specify the end point of the conic curve. The weight of the conic curve. Same as but the coordinates are considered relative to the last point on this contour. call has been made for this contour, the first point is automatically set to (0, 0). ]]> The amount to add to the x-coordinate of the last point on this contour, to specify the control point of the conic curve. The amount to add to the y-coordinate of the last point on this contour, to specify the control point of the conic curve. The amount to add to the x-coordinate of the last point on this contour, to specify the end point of the conic curve. The amount to add to the y-coordinate of the last point on this contour, to specify the end point of the conic curve. The weight of the conic curve. Same as but the coordinates are considered relative to the last point on this contour. call has been made for this contour, the first point is automatically set to (0, 0). ]]> The amount to add to the coordinates of the last point on this contour, to specify the 1st control point on a cubic curve. The amount to add to the coordinates of the last point on this contour, to specify the 2nd control point on a cubic curve. The amount to add to the coordinates of the last point on this contour, to specify the end point on a cubic curve. Same as but the coordinates are considered relative to the last point on this contour. call has been made for this contour, the first point is automatically set to (0, 0). ]]> The amount to add to the x-coordinate of the last point on this contour, to specify the 1st control point on a cubic curve. The amount to add to the y-coordinate of the last point on this contour, to specify the 1st control point on a cubic curve. The amount to add to the x-coordinate of the last point on this contour, to specify the 2nd control point on a cubic curve. The amount to add to the y-coordinate of the last point on this contour, to specify the 2nd control point on a cubic curve. The amount to add to the x-coordinate of the last point on this contour, to specify the end point on a cubic curve. The amount to add to the y-coordinate of the last point on this contour, to specify the end point on a cubic curve. Same as but the coordinates are considered relative to the last point on this contour. call has been made for this contour, the first point is automatically set to (0, 0). ]]> Clear any lines and curves from the path, making it empty. This frees up internal storage associated with those segments. Clear any lines and curves from the path, making it empty. Any internal storage for those lines/curves is retained, making reuse of the path potentially faster. The amount to add to the coordinates of the last point on this contour, to specify the end of a line. Same as but the coordinates are considered relative to the last point on this contour. call has been made for this contour, the first point is automatically set to (0, 0). ]]> The amount to add to the x-coordinate of the last point on this contour, to specify the end of a line. The amount to add to the y-coordinate of the last point on this contour, to specify the end of a line. Same as but the coordinates are considered relative to the last point on this contour. call has been made for this contour, the first point is automatically set to (0, 0). ]]> The amount to add to the coordinates of the last point on this contour, to specify the start of a new contour. Same as but the coordinates are considered relative to the last point on this contour. The amount to add to the x-coordinate of the last point on this contour, to specify the start of a new contour. The amount to add to the x-coordinate of the last point on this contour, to specify the start of a new contour. Same as but the coordinates are considered relative to the last point on this contour. The amount to add to the coordinates of the last point on this contour, to specify the control point on a quadratic curve. The amount to add to the coordinates of the last point on this contour, to specify end point on a quadratic curve. Same as but the coordinates are considered relative to the last point on this contour. call has been made for this contour, the first point is automatically set to (0, 0). ]]> The amount to add to the x-coordinate of the last point on this contour, to specify the control point on a quadratic curve. The amount to add to the y-coordinate of the last point on this contour, to specify the control point on a quadratic curve. The amount to add to the x-coordinate of the last point on this contour, to specify end point on a quadratic curve. The amount to add to the y-coordinate of the last point on this contour, to specify end point on a quadratic curve. Same as but the coordinates are considered relative to the last point on this contour. call has been made for this contour, the first point is automatically set to (0, 0). ]]> Gets a set of flags indicating if the path contains one or more segments of that type. A set of flags indicating the segment types contained in the path. Returns a simplified copy of the current path. Returns the new path if simplification was successful, or otherwise. The curve order is reduced where possible so that cubics may be turned into quadratics, and quadratics maybe turned into lines. The path to store the simplified path data. If simplification failed, then this is unmodified. Simplifies the current path. if simplification was successful; otherwise, . The curve order is reduced where possible so that cubics may be turned into quadratics, and quadratics maybe turned into lines. Gets the "tight" bounds of the path. Unlike , the control points of curves are excluded. The tight bounds of the path. Returns a SVG path data representation of the current path. The SVG path data string. Creates a new path with the fill type set to winding. A new path with winding fill type, or if the conversion fails. The path that will receive the winding version of this path. Converts this path to a winding fill type and stores the result in the specified path. if the conversion was successful; otherwise, . The matrix to use for transformation. Applies a transformation matrix to the all the elements in the path. The matrix to use for transformation. Applies a transformation matrix to all elements in the path. The matrix to use for transformation. The instance that should contain the final, transformed path. Applies a transformation matrix to the all the elements in the path. The matrix to use for transformation. The path that will receive the transformed result. Applies a transformation matrix to all elements and stores the result in the destination path. Gets the number of verbs in the path. The number of verbs in the path. Iterator object to scan the all of the segments (lines, quadratics, cubics) of each contours in a path. method. ]]> Returns the weight for the current conic. The conic weight for the current segment. was . ]]> to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. Returns a value indicating whether the current contour is closed. if the current contour is closed (has a ). Returns a value indicating whether the last call to returns a line which was the result of a command. if the last call to returned a line which was the result of a command. If the call to returned a different value than , the result is undefined. The array to receive the points for the current segment. Must have at least 4 elements. Returns the next verb in this iteration of the path. The verb of the current segment, or when finished. The span to receive the points for the current segment. Must have at least 4 elements. Returns the next verb in this iteration of the path. The verb of the current segment, or when finished. The storage for the points representing the current verb and/or segment. Should be an array of four points. If , first scan for segments that are deemed degenerate (too short) and skip those. If is and is , skip only degenerate elements with lengths exactly equal to zero. If is , skip degenerate elements with lengths close to zero. If is , has no effect. Returns the next verb in this iteration of the path. The verb of the current segment. When all segments have been visited, returns . Perform a series of path operations, optimized for unioning many paths together. Creates an instance of . The second operand. The operator to apply to the existing and supplied paths. Add one or more paths and their operand. The builder is empty before the first path is added, so the result of a single add is ("empty-path" OP "path"). to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. The product of the operands. Computes the sum of all paths and operands, and resets the builder to its initial state. if the operation succeeded; otherwise, . Iterator object to scan through the verbs in the path, providing the associated points. method. ]]> Returns the weight for the current conic. The conic weight for the current segment. Only valid if the current segment returned by was . to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. The storage for the points representing the current verb and/or segment. Should be an array of four points. Returns the next verb in this iteration of the path. The verb of the current segment. The storage for the points representing the current verb and/or segment. Should be a span of at least four points. Returns the next verb in this iteration of the path. The verb of the current segment. Returns what the next verb will be, but do not visit the next segment. Returns the verb for the next segment. How to transform path at each point (based on the current position and tangent). Transform each point, and turn lines into curves. Rotate the shape about its center. Translate the shape to each position. Controls how a path is added to another path. Source path contours are added as new contours. The path is added by extending the last contour of the destination path with the first contour of the source path. If the last contour of the destination path is closed, then it will not be extended. Instead, the start of source path will be extended by a straight line to the end point of the destination path. Indication for whether the smaller or larger of possible two arcs is drawn. The larger of the two possible arcs. The smaller of the two possible arcs. Convexity for paths. The path is concave. The path is convex. The path's convexity is unknown. Direction for path contours. Clockwise direction for adding closed contours. Counter-clockwise direction for adding closed contours. The base class for objects in the that affect the geometry of a drawing primitive before it is transformed by the canvas' matrix and drawn. The path to replicate (dash). The space between instances of path. The distance (mod advance) along path for its initial position. How to transform path at each point (based on the current position and tangent). Creates a dash path effect by replicating the specified path. Returns the new , or on error. The width of the line. The matrix. Creates a dash path effect by replacing the path with a solid line. Returns the new , or on error. The matrix. The path. Stamp the specified path to fill the shape, using the matrix to define the latice. Returns the new , or on error. The outer (second) path effect to apply. The inner (first) path effect to apply. Creates a compound path effect. Returns the new , or on error. The effect is to apply first the inner path effect and the outer path effect (e.g. outer(inner(path))). The radius to use, must be > 0 to have an effect. Creates a path effect that can turn sharp corners into various treatments (e.g. rounded corners). Returns the new , or on error. The definition of the dash pattern via an even number of entries. The offset into the intervals array. (mod the sum of all of the intervals). Creates a dash path effect by specifying the dash intervals. Returns the new , or on error. The dash pattern is defined via an array containing an even number of entries (>=2), with the even indices specifying the length of "on" intervals, and the odd indices specifying the length of "off" intervals. For example: if the intervals = new [] { 10, 20 } and the phase = 25, then the dash pattern will be: 5 pixels off, 10 pixels on, 20 pixels off, 10 pixels on, 20 pixels off, etc. A phase of -5, 25, 55, 85, etc. would all result in the same path, because the sum of all the intervals is 30. The length of the segments to break the path into. The maximum distance to move the point away from the original path. The randomizer seed to use. Creates a "jitter" path effect by chopping a path into discrete segments, and randomly displacing them. Returns the new , or on error. The first path effect to apply. The second path effect to apply. Creates a compound path effect. Returns the new , or on error. The effect is to apply one path after the other. The start path offset between [0, 1] - inclusive. The stop path offset between [0, 1] - inclusive. Creates a path effect that trims the path. Returns the new , or on error. If either the start or stop values are outside the [0, 1] range (inclusive), they will be pinned to the nearest legal value. The start path offset between [0, 1] - inclusive. The stop path offset between [0, 1] - inclusive. The trim mode to use. Creates a path effect that trims the path. Returns the new , or on error. If either the start or stop values are outside the [0, 1] range (inclusive), they will be pinned to the nearest legal value. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Possible path fill type values. Specifies that "inside" is computed by an odd number of edge crossings. Same as , but draws outside of the path, rather than inside. Same as , but draws outside of the path, rather than inside. Specifies that "inside" is computed by a non-zero sum of signed edge crossings. Represents a type that can be used to calculate the length of, and segments of, a path. Create a new instance with a path. The path to use, or . to treat the path as closed; otherwise, . Controls the precision of the measure. Values greater 1 increase the precision (and possibly slow down the computation). Create a new instance with the specified path. The path must remain valid for the lifetime of the measure object, or until is called with a different path (or ), since the measure object keeps a reference to the path object (does not copy its data). to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. The distance along the path. Flags to indicate how to compute the matrix. Computes a from the specified distance along the path. The computed matrix, or if there is no path or a zero-length path was specified. Distance is pinned to 0 <= distance <= . The distance to use. The computed matrix. Flags to indicate how to compute the matrix. Computes a from the specified distance along the path. if there is no path, or a zero-length path was specified, in which case matrix is unchanged. Distance is pinned to 0 <= distance <= . The distance along the path. Computes the corresponding position from the specified distance along the path. The position of a point along the current contour, or if there is no path or a zero-length path was specified. Distance is pinned to 0 <= distance <= . The distance to use. The position of a point along the current contour. Computes the corresponding position from the specified distance along the path. if there is no path, or a zero-length path was specified, in which case position is unchanged. Distance is pinned to 0 <= distance <= . The distance to use. The position of a point along the current contour. The tangent along the current contour. Computes the corresponding position and tangent from the specified distance along the path. if there is no path, or a zero-length path was specified, in which case position and tangent are unchanged. Distance is pinned to 0 <= distance <= . The starting offset of the segment. The end offset of the segment. If , begin the path segment with a . Returns a new path containing the intervening segment(s) between the start and stop distances. A new path containing the segment, or if the segment is zero-length. The start and stop parameters are pinned to 0... The starting offset of the segment. The end offset of the segment. The path to hold the new segment. If true, begin the path segment with a . Given a start and stop distance, update the destination path with the intervening segment(s). if the segment is zero-length, otherwise returns . The start and stop parameters are pinned to 0... The distance along the path. Computes the corresponding tangent from the specified distance along the path. The tangent along the current contour, or if there is no path or a zero-length path was specified. Distance is pinned to 0 <= distance <= . The distance to use. The tangent along the current contour. Computes the corresponding tangent from the specified distance along the path. if there is no path, or a zero-length path was specified, in which case position and tangent are unchanged. Distance is pinned to 0 <= distance <= . Gets a value indicating if the current contour is closed. if the current contour is closed. Gets the total length of the current contour, or 0 if no path is associated. The total length of the current contour. Move to the next contour in the path. if another one exists; otherwise, . The path to use, or . Reset the path measure with the specified path. The path must remain valid for the lifetime of the measure object, or until is called with a different path (or ), since the measure object keeps a reference to the path object (does not copy its data). The path to use, or . to treat the path as closed; otherwise, . Reset the path measure with the specified path. The path must remain valid for the lifetime of the measure object, or until is called with a different path (or ), since the measure object keeps a reference to the path object (does not copy its data). Flags to indicate how to compute a matrix from a position along a path. This is used with . Use the coordinates of the point along the path. Use the coordinates of the point and the tangent along the path. Use the coordinates of the tangent along the path. The logical operations that can be performed when combining two paths using . Subtract the op path from the current path. Intersect the two paths. Subtract the current path from the op path. Union (inclusive-or) the two paths. Exclusive-or the two paths. The flags used by . The path contains one or more conic segments. The path contains one or more cubic segments. The path contains one or more line segments. The path contains one or more quad segments. Verbs contained in an . In the description below, the number of points returned represents the number of valid entries on the return array of points that is passed to or . Close path, a call to or will return one point (contour's point). Conic path, a call to or will return three points, plus the point. Cubic path, a call to or will return four points. The path is completed, points will not contain any data. Line path, a call to or will return two points. Move command, a call to or will return a single point. Quad command, a call to or will return three points. Recorded drawing operations made to a to be played back at a later time. This base class handles serialization and a few other miscellany. Gets the approximate number of bytes used by this picture. The approximate byte count. Gets the approximate number of drawing operations recorded in this picture. The approximate operation count. Gets the culling rectangle for this picture. The culling rectangle used to optimize drawing. Operations recorded into this picture that attempt to draw outside the culling rectangle might not be drawn. The SKData object containing the serialized picture. Deserializes a picture from serialized data. The deserialized picture, or if deserialization fails. The SKStream containing the serialized picture. Deserializes a picture from a stream. The deserialized picture, or if deserialization fails. The .NET stream containing the serialized picture. Deserializes a picture from a .NET stream. The deserialized picture, or if deserialization fails. The byte span containing the serialized picture. Deserializes a picture from a byte span. The deserialized picture, or if deserialization fails. The pointer to the serialized picture data. The length of the data in bytes. Deserializes a picture from a native memory pointer. The deserialized picture, or if deserialization fails. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Whether to include operations from nested pictures. Gets the approximate number of drawing operations recorded in this picture. The approximate operation count. The canvas to play the drawing commands onto. Replays the recorded drawing commands onto the specified canvas. Serializes the picture into an SKData object. An SKData object containing the serialized picture. The SKWStream to write the serialized picture to. Serializes the picture to the specified stream. The .NET stream to write the serialized picture to. Serializes the picture to the specified .NET stream. Creates a shader from this picture using the cull rect as the tile boundary. A new shader that renders this picture. The tile mode for the X axis. The tile mode for the Y axis. Creates a shader from this picture with specified tile modes. A new shader that renders this picture. The tile mode for the X axis. The tile mode for the Y axis. The filter mode to apply when scaling. Creates a shader from this picture with specified tile and filter modes. A new shader that renders this picture. The tile mode for the X axis. The tile mode for the Y axis. The rectangle defining the tile boundary. Creates a shader from this picture with specified tile modes and boundary. A new shader that renders this picture. The tile mode for the X axis. The tile mode for the Y axis. The filter mode to apply when scaling. The rectangle defining the tile boundary. Creates a shader from this picture with specified tile modes, filter mode, and boundary. A new shader that renders this picture. The tile mode for the X axis. The tile mode for the Y axis. The local transformation matrix to apply. The rectangle defining the tile boundary. Creates a shader from this picture with specified tile modes, transformation, and boundary. A new shader that renders this picture. The tile mode for the X axis. The tile mode for the Y axis. The filter mode to apply when scaling. The local transformation matrix to apply. The rectangle defining the tile boundary. Creates a shader from this picture with specified tile modes, filter mode, transformation, and boundary. A new shader that renders this picture. Gets the non-zero value unique among all pictures. The unique identifier for this picture. The picture recorder is used to record drawing operations made to a and stored in a . Creates a new instance of the . The culling rectangle for the new picture. Start the recording process and return the recording canvas. Returns the current recording canvas. The same can be retrieved using . The culling rectangle for the new picture. Whether to use an R-Tree for spatial indexing to optimize playback. Start the recording process with optional R-Tree bounding box hierarchy and return the recording canvas. Returns the current recording canvas. The same can be retrieved using . Using an R-Tree can improve playback performance when drawing pictures that contain many primitives, as it allows skipping draw operations that don't intersect with the current clip. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. Signal that the caller is done recording. Returns the containing the recorded content. and . ]]> Signal that the caller is done recording. Returns the containing the recorded content. and . Unlike , which returns an immutable picture, the returned drawable may contain live references to other drawables (if they were added to the recording canvas) and therefore this drawable will reflect the current state of those nested drawables anytime it is drawn or a new picture is snapped from it (by calling ). ]]> Gets the current recording canvas. The recording canvas. Describes how LCD strips are organized for each pixel. Description of how the LCD strips are arranged for each pixel. If this is unknown, or the pixels are meant to be "portable" and/or transformed before showing (e.g. rotated, scaled) then use . Pixels are made up horizontal blue, green and red lights. Pixels are made up vertical blue, green and red lights. Pixels are made up horizontal red, green and blue lights. Pixels are made up vertical red, green and blue lights. Use if the order is not known or the pixels are meant to be "portable" and/or transformed before showing (e.g. rotated, scaled). Represents a mechanism for serializing pixels. Creates a new instance of with an empty buffer. The delegate to use to serialize the pixel data. Create a new pixel serializer using the specified delegate to encode the pixel data. Returns an instance of the . The delegate to use to determine whether to use the previous encoded data, or to encode another version. The delegate to use to serialize the pixel data. Create a new pixel serializer using the specified delegate to encode the pixel data. Returns an instance of the . The pixel data to encode. Encode the specified pixel data. Returns the encoded pixel data, or if the raw pixels should be used. The pixel data to encode. Implemented by derived types to encode the specified pixel data. Returns the encoded pixel data, or if the raw pixels should be used. The encoded data buffer. The length of the encoded data buffer. Implemented by derived types to determine whether the caller should use the specified encoded data instead of encoding a new version. Returns if the specified encoded data should be used, otherwise to serialize another version. , then should not be called to encode the source data. ]]> The encoded data buffer. The length of the encoded data buffer. Determines whether the serializer wants to use the specified encoded data instead of encoding a new version. Returns if the specified encoded data should be used, otherwise to serialize another version. , then may not be called to encode the source data. ]]> Pairs with actual pixels and rowbytes. This class does not try to manage the lifetime of the pixel memory (nor the color table if provided). Creates an empty instance of . The image information of the pixels. The memory address of the pixels. Creates an instance of . The image information of the pixels. The memory address of the pixels. The number of bytes per row. Creates an instance of . The image information of the pixels. The memory address of the pixels. The number of bytes per row. The color table. Creates an instance of . Gets the alpha type. One of the enumeration values that specifies the alpha type. Gets the bit shift value per pixel. The bit shift value. Gets the number of bytes per pixel. The number of bytes per pixel. Gets the total number of bytes needed to store the pixel data. The total number of bytes needed to store the pixel data. Gets the total byte size as a 64-bit integer. The total byte size. Gets the color space. The color space, or if the pixmap has no color space. Gets the color table. The color table, or if the pixmap has no color table. Gets the color type. One of the enumeration values that specifies the color type. Returns whether all pixels are opaque. Returns if all pixels are opaque. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Releases managed resources. Implemented by derived types to destroy any native objects. The options to use when creating the encoder. Encodes the pixmap as a JPEG. Returns the wrapping the encoded pixmap. The options to use when creating the encoder. Encodes the pixmap as a PNG. Returns the wrapping the encoded pixmap. The options to use when creating the encoder. Encodes the pixmap as a WEBP. Returns the wrapping the encoded pixmap. The file format used to encode the pixmap. The quality level to use for the pixmap. Encodes the pixmap using the specified format. Returns the wrapping the encoded pixmap. The stream to write the encoded pixmap to. The options to use when creating the encoder. Encodes the pixmap as a JPEG. Returns on success, or if there was an error. The stream to write the encoded pixmap to. The options to use when creating the encoder. Encodes the pixmap as a PNG. Returns on success, or if there was an error. The stream to write the encoded pixmap to. The options to use when creating the encoder. Encodes the pixmap as a WEBP. Returns on success, or if there was an error. The destination stream. The encoder options. Encodes the pixmap to the stream using the specified options. Returns on success. The destination stream. The encoder options. Encodes the pixmap to the stream using the specified options. Returns on success. The destination stream. The encoder options. Encodes the pixmap to the stream using the specified options. Returns on success. The stream to write the encoded pixmap to. The file format used to encode the pixmap. The quality level to use for the pixmap. Encodes the pixmap using the specified format. Returns on success, or if there was an error. The stream to write the encoded pixmap to. The pixmap to encode. The options to use when creating the encoder. Encodes the pixmap as a JPEG. Returns on success, or if there was an error. The stream to write the encoded pixmap to. The pixmap to encode. The options to use when creating the encoder. Encodes the pixmap as a PNG. Returns on success, or if there was an error. The stream to write the encoded pixmap to. The pixmap to encode. The options to use when creating the encoder. Encodes the pixmap as a WEBP. Returns on success, or if there was an error. The destination stream. The encoded image format. The encoding quality (0-100). Encodes the pixmap to the stream using the specified format and quality. Returns on success. The stream to write the encoded bitmap to. The bitmap to encode. The file format used to encode the bitmap. The quality level to use for the bitmap. Encodes the bitmap using the specified format. Returns on success, or if there was an error. The stream to write the encoded pixmap to. The pixmap to encode. The file format used to encode the pixmap. The quality level to use for the pixmap. Encodes the pixmap using the specified format. Returns on success, or if there was an error. The color to fill. Fill the entire pixmap with the specified color. Returns if the pixels were changed, otherwise . If the pixmap's color type does not support alpha (e.g. 565) then the alpha of the color is ignored (treated as opaque). If the color type only supports alpha (e.g. A1 or A8) then the color's R, G, B components are ignored. The color to fill. Fills the entire pixmap with the specified color. Returns if pixels were changed. The color to fill. The subset of the pixmap to fill. Fill the entire pixmap with the specified color. Returns if the pixels were changed, otherwise . If the pixmap's color type does not support alpha (e.g. 565) then the alpha of the color is ignored (treated as opaque). If the color type only supports alpha (e.g. A1 or A8) then the color's R, G, B components are ignored. The color to fill. The subset area to fill/process. Fills a subset of the pixmap with the specified color. Returns if pixels were changed. The color to fill. The colorspace for the color. The subset area to fill/process. Fills a subset with the specified color in the given colorspace. Returns if pixels were changed. The bounds of the pixmap subset to retrieve. Creates a new which is a subset of this pixmap. Returns a subset of the pixmap. The pixmap to store the subset pixels. The bounds of the pixmap subset to retrieve. Creates a new which is a subset of this pixmap. Returns if the pixels were read, or if there was an error. The x-coordinate. The y-coordinate. Gets the alpha value of the pixel at the specified coordinates. The alpha value (0.0 to 1.0). The column index, zero or greater, and less than the pixmap width. The row index, zero or greater, and less than the pixmap height. Returns the color of the pixel at the specified coordinates. Returns the color of the pixel. The x-coordinate. The y-coordinate. Gets the color of the pixel at the specified coordinates as an SKColorF. The color of the pixel. Returns the memory address of the pixels. The memory address of the pixel data. The column index, zero or greater, and less than the pixmap width. The row index, zero or greater, and less than the pixmap height. Returns the memory address of the pixels at (x, y). The memory address of the pixel at the specified location. Returns a span that wraps the pixel data. Returns the span. This span is only valid as long as the pixmap is valid The x-coordinate. The y-coordinate. Gets a span starting at the specified pixel coordinates. A span of pixel data. The pixel type. Gets a typed span of all pixel data. A span of pixel data. The pixel type. The x-coordinate. The y-coordinate. Gets a typed span starting at the specified coordinates. A span of pixel data. Gets the image height. The image height. Gets the image info. The image info. The pixmap to read the pixel data into. Copies the pixels from the image into the specified pixmap. Returns if the pixels were read, or if there was an error. The image information describing the destination pixel buffer. The pixel buffer to read the pixel data into. The number of bytes in each row of in the destination buffer. Copies the pixels from the image into the specified buffer. Returns if the pixels were read, or if there was an error. The pixmap to read the pixel data into. The source x-coordinate to start reading from. The source y-coordinate to start reading from. Copies the pixels from the image into the specified pixmap. Returns if the pixels were read, or if there was an error. The image information describing the destination pixel buffer. The pixel buffer to read the pixel data into. The number of bytes in each row of in the destination buffer. The source x-coordinate to start reading from. The source y-coordinate to start reading from. Copies the pixels from the image into the specified buffer. Returns if the pixels were read, or if there was an error. The image information describing the destination pixel buffer. The pixel buffer to read the pixel data into. The number of bytes in each row of in the destination buffer. The source x-coordinate to start reading from. The source y-coordinate to start reading from. The premultiplication behavior to apply when converting source pixels. Copies the pixels from the image into the specified buffer. Returns if the pixels were read, or if there was an error. Gets a rectangle with the current width and height. A rectangle with the current width and height. Reset the pixmap to an empty pixmap. The image information of the pixels. The memory address of the pixels. The number of bytes per row. Resets the pixmap to the specified pixels. The image information of the pixels. The memory address of the pixels. The number of bytes per row. The color table. Resets the pixmap to the specified pixels. The pixmap to store the resized pixels. The pixmap to resize. The resize method. Resize the specified pixmap using the specified method. Returns if the resize operation can be performed, otherwise . Gets the number of bytes per row. The number of bytes per row. The destination pixmap. Scales pixels to the destination using default sampling. Returns on success. The pixmap to receive the scaled and converted pixels. The level of quality to use when scaling the pixels. Copies this pixmap to the destination, scaling the pixels to fit the destination size and converting the pixels to match the color type and alpha type. Returns on success, or if there was an error. , or , the destination color type must match. If the color type is , destination colorspace must also match. If the alpha type is , the destination alpha type must match. If the colorspace is , the destination colorspace must also be . Filter Quality: - is fastest, typically implemented with nearest neighbor filter. - is typically implemented with bilerp filter. - is typically implemented with bilerp filter, and mipmap when size is reduced. - is slowest, typically implemented with the bicubic filter.]]> The destination pixmap. The sampling options for scaling. Scales pixels to the destination using the specified sampling options. Returns on success. Gets the current size of the pixmap. The current size of the pixmap. Gets the image width. The image width. The alpha/transparency type. Creates a new with the same properties as this , but with the specified transparency type. Returns the new . The color space. Creates a new with the same properties as this , but with the specified color space. Returns the new . The color type. Creates a new with the same properties as this , but with the specified color type. Returns the new . 32-bit ARGB premultiplied color value. The byte order for this value is configuration dependent. This is different from , which is unpremultiplied, and is always in the same byte order. The integer value of the premultiplied color. Creates a color from the specified integer. Gets the alpha component of the color. The alpha component value. Gets the blue component of the color. The blue component value. The to compare with the current color. Determines whether the specified object is equal to the current object. Returns if the specified object is equal to the current object; otherwise, . The object to compare with the current object. Determines whether the specified object is equal to the current object. Returns if the specified object is equal to the current object; otherwise, . Serves as the default hash function. Returns a hash code for the current object. Gets the green component of the color. The green component value. The first color to compare. The second color to compare. Indicates whether two objects are equal. Returns if is equal to , otherwise . The unpremultiplied color to convert. Converts an unpremultiplied to the premultiplied . Returns the new premultiplied . The premultiplied color to convert. Converts a premultiplied to the unpremultiplied . Returns the new unpremultiplied . The color to convert. Converts a to a UInt32. The UInt32 value for the color. The UInt32 representation of a color. Converts a UInt32 to a . The new instance. The first color to compare. The second color to compare. Indicates whether two objects are different. Returns if is not equal to , otherwise . The unpremultiplied color to convert. Converts an unpremultiplied to a premultiplied . Returns the new premultiplied . The unpremultiplied colors to convert. Converts an array of unpremultiplied s to an array of premultiplied s. Returns the new array of premultiplied s. Gets the red component of the color. The red component value. Returns the color as a string in the format: #AARRGGBB. The string representation of the color. The premultiplied color to convert. Converts a premultiplied to the unpremultiplied . Returns the new unpremultiplied . The premultiplied colors to convert. Converts an array of premultiplied s to an array of unpremultiplied s. Returns the new array of unpremultiplied s. Various row filters to use when encoding a PNG. Try all the filters. Uses the average of the two neighboring pixels (left and above) to predict the value of a pixel: Average(x) = Raw(x) - floor((Raw(x-bpp)+Prior(x))/2). Do not use any filters. Transmit unmodified. Computes a simple linear function of the three neighboring pixels (left, above, upper left), then chooses as predictor the neighboring pixel closest to the computed value: Paeth(x) = Raw(x) - PaethPredictor(Raw(x-bpp), Prior(x), Prior(x-bpp)). Transmits the difference between each byte and the value of the corresponding byte of the prior pixel: Sub(x) = Raw(x) - Raw(x-bpp). Transmits the difference between each byte and the value of the corresponding byte of the pixel above: Up(x) = Raw(x) - Prior(x). Options to control the PNG encoding. The filtering flags. The compression level in the range 0..9. Creates a new instance of . The filtering flags. The compression level in the range 0..9. The unpremultiplication behavior. Creates a new instance of . Gets a new instance of with the values set to the defaults. The to compare with this instance. Determines whether this instance is equal to another instance. if the instances are equal; otherwise, . The object to compare with this instance. Determines whether this instance is equal to another object. if the object is an and is equal to this instance; otherwise, . Gets or sets the filtering flags. The filtering flags. If a single filter is chosen, then that filter will be used for every row. If multiple filters are chosen, then a heuristic will be used to guess which filter will encode smallest, then apply that filter. This happens on a per row basis, different rows can use different filters. Using a single filter (or less filters) is typically faster. Trying all of the filters may help minimize the output file size. Returns the hash code for this instance. A 32-bit signed integer hash code. The first instance to compare. The second instance to compare. Determines whether two instances are equal. if the instances are equal; otherwise, . The first instance to compare. The second instance to compare. Determines whether two instances are not equal. if the instances are not equal; otherwise, . Gets or sets the unpremultiplication behavior if the input is premultiplied. The unpremultiplication behavior. Gets or sets the compression level in the range 0..9. The compression level in the range 0..9. A value of 0 is a special case to skip compression entirely, creating dramatically larger PNGs. Represents an ordered pair of floating-point x- and y-coordinates that defines a point in a two-dimensional plane. To convert a to a , use or . The horizontal position of the point. The vertical position of the point. Initializes a new instance of the struct with the specified coordinates. The point to translate. The offset value. Translates a given point by a specified offset. Returns the translated point. The point to translate. The offset value. Translates a given point by a specified offset. Returns the translated point. The point to translate. The offset size. Translates a given point by a specified size. Returns the translated point. The point to translate. The offset size. Translates a given point by a specified size. Returns the translated point. The first point. The second point. Calculate the Euclidean distance between two points. Returns the Euclidean distance between two points. The first point. The second point. Calculate the Euclidean distance squared between two points. Returns the Euclidean distance squared between two points. Represents a new instance of the class with member data left uninitialized. The to test. Specifies whether this contains the same coordinates as the specified . if has the same coordinates as this ; otherwise, . The to test. Specifies whether this contains the same coordinates as the specified . if is a and has the same coordinates as this ; otherwise, . Calculates the hashcode for this point. Returns the hashcode for this point. You should avoid depending on GetHashCode for unique values, as two objects with the same values for their X and Y properties may return the same hash code. This behavior could change in a future release. Gets a value indicating whether this point is empty. if both X and Y are 0; otherwise, . Gets the Euclidean distance from the origin (0, 0). The Euclidean distance from the origin (0, 0). Gets the Euclidean distance squared from the origin (0, 0). The Euclidean distance squared from the origin (0, 0). The point to normalize. Returns a point with the same direction as the specified point, but with a length of one. Returns a point with a length of one. The offset value. Translates a given point by a specified offset. The offset in the x-direction. The offset in the y-direction. Translates a given point by a specified offset. The point to translate. The offset value. Translates a given point by a specified offset. Returns the translated point. The point to translate. The offset value. Translates a given point by a specified offset. Returns the translated point. The point to translate. The offset size. Translates a given point by a specified size. Returns the translated point. The point to translate. The offset size. Translates a given point by a specified size. Returns the translated point. A to compare. A to compare. Compares two structures. The result specifies whether the values of the and properties of the two structures are equal. if the and values of the left and right structures are equal; otherwise, . The point to convert. Converts a to a . The equivalent of the . The vector to convert. Converts a to a . The equivalent of the . A to compare. A to compare. Determines whether the coordinates of the specified points are not equal. if the and values of the left and right structures differ; otherwise, . The to translate. The point that specifies the numbers to subtract from the coordinates of . Translates a given point by the negative of a specified offset. The translated . The to translate. The point that specifies the numbers to subtract from the coordinates of . Translates a given point by the negative of a specified offset. The translated . The to translate. The that specifies the numbers to subtract from the coordinates of . Translates a by the negative of a given . The translated . The to translate. The that specifies the numbers to subtract from the coordinates of . Translates a by the negative of a given . The translated . The point to reflect. The normal. Returns the reflection of a point off a surface that has the specified normal. Returns the reflection of a point. The to translate. The offset that specifies the numbers to subtract from the coordinates of . Translates a given point by the negative of a specified offset. The translated . The to translate. The offset that specifies the numbers to subtract from the coordinates of . Translates a given point by the negative of a specified offset. The translated . The to translate. The that specifies the numbers to subtract from the coordinates of . Translates a by the negative of a specified size. The translated . The to translate. The that specifies the numbers to subtract from the coordinates of . Translates a by the negative of a specified size. The translated . Converts this to a human readable string. A string that represents this . Gets or sets the x-coordinate of this . The x-coordinate of this point. Gets or sets the x-coordinate of this . The y-coordinate of this point. Represents an ordered pair of floating-point x-, y- and z-coordinates that defines a point in a three-dimensional plane. The x-coordinate of the point. The y-coordinate of the point. The z-coordinate of the point. Initializes a new instance of the struct with the specified coordinates. The point to translate. The offset value. Translates a given point by a specified offset. Returns the translated point. Represents a new instance of the class with member data left uninitialized. The to test. Specifies whether this contains the same coordinates as the specified . if has the same coordinates as this ; otherwise, . The to test. Specifies whether this contains the same coordinates as the specified . if is a and has the same coordinates as this ; otherwise, . Calculates the hashcode for this point. Returns the hashcode for this point. You should avoid depending on GetHashCode for unique values, as two objects with the same values for their X, Y and Z properties may return the same hash code. This behavior could change in a future release. Gets a value indicating whether this is empty. if the x-, y-, and z-coordinates are all zero; otherwise, . The point to translate. The offset value. Translates a given point by a specified offset. Returns the translated point. A to compare. A to compare. Compares two structures. The result specifies whether the values of the and properties of the two structures are equal. if the , and values of the left and right structures are equal; otherwise, . The point to convert. Converts a to a . The equivalent of the . The vector to convert. Converts a to a . The equivalent of the . A to compare. A to compare. Determines whether the coordinates of the specified points are not equal. if the , and values of the left and right structures differ; otherwise, . The point to translate. The offset value. Translates a given point by the negative of a specified offset. Returns the translated point. The point to translate. The offset value. Translates a given point by the negative of a specified offset. Returns the translated point. Converts this to a human readable string. A string that represents this . Gets or sets the x-coordinate of this . The x-coordinate. Gets or sets the y-coordinate of this . The y-coordinate. Gets or sets the z-coordinate of this . The z-coordinate. Represents an ordered pair of integer x- and y-coordinates that defines a point in a two-dimensional plane. A that specifies the coordinates for the new . Initializes a new instance of the class from a . The horizontal position of the point. The vertical position of the point. Initializes a new instance of the struct with the specified coordinates. The point to translate. The point that specifies the number to add to the coordinates of . Translates a given by the specified point. The translated point. The point to translate. The size that specifies the number to add to the coordinates of . Translates a given by the specified . The translated point. The to convert. Converts the specified to a by rounding the values of the to the next higher integer values. The this method converts to. The first point. The second point. Calculate the Euclidean distance between two points. Returns the Euclidean distance between two points. The first point. The second point. Calculate the Euclidean distance squared between two points. Returns the Euclidean distance squared between two points. Represents a new instance of the class with member data left uninitialized. The to test. Specifies whether this contains the same coordinates as the specified . if has the same coordinates as this ; otherwise, . The to test. Specifies whether this contains the same coordinates as the specified . if is a and has the same coordinates as this ; otherwise, . Calculates the hashcode for this point. Returns the hashcode for this point. You should avoid depending on GetHashCode for unique values, as two point objects with the same values for their X and Y properties may return the same hash code. This behavior could change in a future release. Gets a value indicating whether this is empty. if both X and Y are 0; otherwise, . Gets the Euclidean distance from the origin (0, 0). The Euclidean distance from the origin (0, 0). Gets the Euclidean distance squared from the origin (0, 0). The Euclidean distance squared from the origin (0, 0). The point to normalize. Returns a point with the same direction as the specified point, but with a length of one. Returns a point with a length of one. The used to offset this . Translates this by the specified . This method adjusts the and values of this to the sum of the and values of this and . The amount to offset the x-coordinate. The amount to offset the y-coordinate. Translates this by the specified amount. The to translate. A point that specifies the pair of numbers to add to the coordinates of . Translates a by a given offset. Returns the translated . The to translate. A that specifies the pair of numbers to add to the coordinates of . Translates a by a given . Returns the translated . A to compare. A to compare. Determines whether the coordinates of the specified points are equal. if the and values of and are equal; otherwise, . The to convert. Converts an into an . The new . The to convert. Converts an into an . The new . The integer point to convert. Converts an to a . A new with the same coordinates as the point. A to compare. A to compare. Determines whether the coordinates of the specified points are not equal. if the and values of and differ; otherwise, . The to translate. The point that specifies the numbers to subtract from the coordinates of . Translates a by the negative of a given point. The translated . The to translate. The that specifies the numbers to subtract from the coordinates of . Translates a by the negative of a given . The translated . The point to reflect. The normal. Returns the reflection of a point off a surface that has the specified normal. Returns the reflection of a point. The to convert. Converts the specified to a object by rounding the values to the nearest integer. The this method converts to. The to be subtracted from. The point to subtract from the . Returns the result of subtracting specified point from the specified . The that is the result of the subtraction operation. The to be subtracted from. The to subtract from the . Returns the result of subtracting specified from the specified . The that is the result of the subtraction operation. Converts this to a human readable string. A string that represents this . The to convert. Converts the specified to a by truncating the values of the . The this method converts to. Gets or sets the x-coordinate of this . The x-coordinate of this point. Gets or sets the y-coordinate of this . The y-coordinate of this point. Possible values to interpret the incoming array of points for the method. Interpret the data as coordinates for lines. Interpret the data as coordinates for points. Interpret the data as coordinates for polygons. A run buffer for fully-positioned text where each glyph has an independent X and Y position. Gets the span of positions for each glyph. A span containing the positions. Gets the span of positions for each glyph. A span containing the positions. The positions to set for each glyph. Sets the positions for each glyph in the run. A buffer for fully-positioned text runs with cluster and text data. Gets the span of positions for each glyph. A span containing the positions. The positions to set for each glyph. Sets the positions for each glyph in the run. The type of position data used for each glyph. A raw run buffer providing direct access to glyph, position, cluster, and text data. Gets the span of cluster indices that map glyphs to their source text positions. A span containing the cluster indices. Gets the span of glyph IDs for the run. A span containing the glyph IDs. Gets the span of positions for each glyph. A span containing the positions of type T. Gets the span of UTF-8 encoded source text bytes for the run. A span containing the UTF-8 text bytes. Stores a set of four floating-point numbers that represent the upper-left corner and lower-right corner of a rectangle. The left coordinate. The top coordinate. The right coordinate. The bottom coordinate. Initializes a new instance of the class with the specified upper-left corner and lower-right corner. The size of the existing rectangle. Calculates the smallest rectangle that will fill the current rectangle using the specified size. Returns the smallest rectangle that will fill the current rectangle. The size of the existing rectangle. Calculates the largest rectangle that will fit inside the current rectangle using the specified size. Returns the largest rectangle that will fit inside the current rectangle. Gets or sets the y-coordinate of the bottom edge of this structure. The y-coordinate of the bottom edge. The point to test. Determines whether the specified point is inside this rectangle. if the point is inside this rectangle; otherwise, . The rectangle to test. Determines whether the specified rectangle is inside this rectangle. if the rectangle is inside this rectangle; otherwise, . The x-coordinate. The y-coordinate. Determines whether the specified coordinates are inside this rectangle. if the coordinates are inside this rectangle; otherwise, . The rectangle size. Creates a new rectangle with the specified size. Returns the new rectangle. The rectangle location. The rectangle size. Creates a new rectangle with the specified location and size. Returns the new rectangle. The rectangle width. The rectangle height. Creates a new rectangle with the specified size. Returns the new rectangle. The x-coordinate. The y-coordinate. The rectangle width. The rectangle height. Creates a new rectangle with the specified location and size. Returns the new rectangle. Represents a new instance of the class with member data left uninitialized. The to test. Specifies whether this rectangle contains the same coordinates as the specified . if has the same coordinates as this ; otherwise, . The to test. Specifies whether this rectangle contains the same coordinates as the specified . if is a and has the same coordinates as this ; otherwise, . Calculates the hashcode for this rectangle. Returns the hashcode for this rectangle. Gets the height of the . The height of the rectangle. The amount to inflate this . Enlarges this structure by the specified amount. The amount to inflate this structure horizontally. The amount to inflate this structure vertically. Enlarges this structure by the specified amount. The to be copied. This rectangle is not modified. The amount to enlarge the copy of the rectangle horizontally. The amount to enlarge the copy of the rectangle vertically. Creates and returns an enlarged copy of the specified structure. The copy is enlarged by the specified amount and the original rectangle remains unmodified. The enlarged . The rectangle to intersect. Replaces this structure with the intersection of itself and the specified structure. A rectangle to intersect. A rectangle to intersect. Returns a structure that represents the intersection of two rectangles. If there is no intersection, and empty is returned. A third structure the size of which represents the overlapped area of the two specified rectangles. The rectangle to test. Determines if this rectangle intersects with another rectangle. if there is any intersection; otherwise, . The rectangle to test. Determines if this rectangle intersects with another rectangle. if there is any intersection; otherwise, . Gets a value indicating whether this rectangle has a zero size and location. if this rectangle has a zero size and location; otherwise, . Gets or sets the x-coordinate of the left edge of this structure. The x-coordinate of the left edge. Gets or sets the offset of the rectangle. The offset of the rectangle. Gets the x-coordinate of the middle of this rectangle. The x-coordinate of the middle of the rectangle. Gets the y-coordinate of the middle of this rectangle. The y-coordinate of the middle of the rectangle. The amount to offset the rectangle. Translates the this rectangle by the specified amount. The amount to offset the location horizontally. The amount to offset the location vertically. Translates the this rectangle by the specified amount. The structure that is to the left of the equality operator. The structure that is to the right of the equality operator. Tests whether two structures have equal coordinates. if the two specified structures have equal , , , and properties. The structure to convert. Converts the specified structure to a structure. The structure that is converted from the specified structure. The structure that is to the left of the inequality operator. The structure that is to the right of the inequality operator. Tests whether two structures differ in coordinates. if any of the , , , or properties of the two structures are unequal; otherwise, . Gets or sets the x-coordinate of the right edge of this structure. The x-coordinate of the right edge. Gets or sets the size of the rectangle. The size of the rectangle. Gets this rectangle and a new rectangle with a positive width and height. The standardized rectangle. Gets or sets the y-coordinate of the top edge of this structure. The y-coordinate of the top edge. Converts this to a human readable string. A string that represents this . A rectangle to union. Replaces this structure with the union of itself and the specified structure. A rectangle to union. A rectangle to union. Creates the smallest possible third rectangle that can contain both of two rectangles that form a union. A third structure that contains both of the two rectangles that form the union. Gets the width of the rectangle. The width of the rectangle. Stores a set of four integers that represent the upper-left corner and lower-right corner of a rectangle. The left coordinate. The top coordinate. The right coordinate. The bottom coordinate. Initializes a new instance of the class with the specified upper-left corner and lower-right corner. The size of the existing rectangle. Calculates the smallest rectangle that will fill the current rectangle using the specified size. Returns the smallest rectangle that will fill the current rectangle. The size of the existing rectangle. Calculates the largest rectangle that will fit inside the current rectangle using the specified size. Returns the largest rectangle that will fit inside the current rectangle. Gets or sets the y-coordinate of the bottom edge of this structure. The y-coordinate of the bottom edge. The structure to be converted. Converts the specified structure to a structure by rounding the values to the next higher integer values. Returns a . The structure to be converted. to round outwards (away from center); otherwise, . Converts the specified structure to a structure by rounding the values to the next higher integer values. Returns a . The point to test. Determines whether the specified point is inside this rectangle. if the point is inside this rectangle; otherwise, . The rectangle to test. Determines whether the specified rectangle is inside this rectangle. if the rectangle is inside this rectangle; otherwise, . The x-coordinate. The y-coordinate. Determines whether the specified coordinates are inside this rectangle. if the coordinates are inside this rectangle; otherwise, . The rectangle size. Creates a new rectangle with the specified size. Returns the new rectangle. The rectangle location. The rectangle size. Creates a new rectangle with the specified location and size. Returns the new rectangle. The rectangle width. The rectangle height. Creates a new rectangle with the specified width and height. Returns the new rectangle. The x-coordinate. The y-coordinate. The rectangle width. The rectangle height. Creates a new rectangle with the specified location and size. Returns the new rectangle. Represents a new instance of the class with member data left uninitialized. The to test. Specifies whether this rectangle contains the same coordinates as the specified . if has the same coordinates as this ; otherwise, . The to test. Specifies whether this rectangle contains the same coordinates as the specified . if is a and has the same coordinates as this ; otherwise, . The structure to be converted. Converts the specified structure to a structure by rounding the values to the closest lower integer values. Returns a . The structure to be converted. to round inwards (towards center); otherwise, . Converts the specified structure to a structure by rounding the values to the closest lower integer values. Returns a . Calculates the hashcode for this rectangle. Returns the hashcode for this rectangle. Gets the height of the . The height of the rectangle. The amount to inflate this . Enlarges this structure by the specified amount. The amount to inflate this structure horizontally. The amount to inflate this structure vertically. Enlarges this structure by the specified amount. The to be copied. This rectangle is not modified. The amount to enlarge the copy of the rectangle horizontally. The amount to enlarge the copy of the rectangle vertically. Creates and returns an enlarged copy of the specified structure. The copy is enlarged by the specified amount and the original rectangle remains unmodified. The enlarged . The rectangle to intersect. Replaces this structure with the intersection of itself and the specified structure. A rectangle to intersect. A rectangle to intersect. Returns a structure that represents the intersection of two rectangles. If there is no intersection, and empty is returned. A third structure the size of which represents the overlapped area of the two specified rectangles. The rectangle to test. Determines if this rectangle intersects with another rectangle. if there is any intersection; otherwise, . The rectangle to test. Determines if this rectangle intersects with another rectangle. if there is any intersection; otherwise, . Gets a value indicating whether this rectangle has a zero size and location. if this rectangle has a zero size and location; otherwise, . Gets or sets the x-coordinate of the left edge of this structure. The x-coordinate of the left edge. Gets or sets the offset of the rectangle. The offset of the rectangle. Gets the x-coordinate of the middle of this rectangle. The x-coordinate of the middle of the rectangle. Gets the y-coordinate of the middle of this rectangle. The y-coordinate of the middle of the rectangle. The amount to offset the rectangle. Translates the this rectangle by the specified amount. The amount to offset the location horizontally. The amount to offset the location vertically. Translates the this rectangle by the specified amount. The structure that is to the left of the equality operator. The structure that is to the right of the equality operator. Tests whether two structures have equal location and size. if the two specified structures have equal , , , or properties. The structure that is to the left of the inequality operator. The structure that is to the right of the inequality operator. Tests whether two structures differ in location or size. if any of the , , , or properties of the two structures are unequal; otherwise, . Gets or sets the x-coordinate of the right edge of this structure. The x-coordinate of the right edge. The structure to be converted. Converts the specified structure to a structure by rounding the values to the nearest integer values. Returns a . Gets or sets the size of the . The size of the rectangle. Gets this rectangle and a new rectangle with a positive width and height. The standardized rectangle. Gets or sets the y-coordinate of the top edge of this structure. The y-coordinate of the top edge. Converts this to a human readable string. A string that represents this . The to be converted. Converts the specified structure to a structure by truncating the values. The truncated value of the . A rectangle to union. Replaces this structure with the union of itself and the specified structure. A rectangle to union. A rectangle to union. Creates the smallest possible third rectangle that can contain both of two rectangles that form a union. A third structure that contains both of the two rectangles that form the union. Gets the width of the . The width of the rectangle. Encapsulates the geometric region used to specify clipping areas for drawing. Creates an empty region. The path to use as the region. Initializes a new instance of the class using the area described by the path. The rectangle to use as the region. Initializes a new instance of the class using the area described by the rectangle. The region to copy. Initializes a new instance of the class by copying an existing region. Gets the bounds of this region. The bounding rectangle of the region. If the region is empty, returns an empty rectangle. The path to check with. Check to see if the specified path is completely inside the current region. if the specified path is completely inside the current region; otherwise, . This works for simple (rectangular) and complex path, and always returns the correct result. If either the path or the region is empty, this method returns . The coordinates to check with. Check to see if the specified coordinates are completely inside the current region. if the specified coordinates are completely inside the current region; otherwise, . The rect to check with. Check to see if the specified rect is completely inside the current region. if the specified rect is completely inside the current region; otherwise, . If either the rect or the region is empty, this method returns . The region to check with. Check to see if the specified region is completely inside the current region. if the specified region is completely inside the current region; otherwise, . This works for simple (rectangular) and complex regions, and always returns the correct result. If either region is empty, this method returns . The x-coordinate to check with. The y-coordinate to check with. Check to see if the specified coordinates are completely inside the current region. if the specified coordinates are completely inside the current region; otherwise, . The clipping rectangle to intersect with the region. Creates an iterator that returns the rectangles of the region clipped to the specified rectangle. A new for iterating over the clipped rectangles. Creates an iterator that returns the rectangles that make up the region. A new for iterating over the rectangles. The y-coordinate of the horizontal line to iterate. The left bound of the horizontal line. The right bound of the horizontal line. Creates an iterator that returns the horizontal spans of the region intersected with the specified line. A new for iterating over the horizontal spans. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. Returns a path that describes the boundary of the region. A new representing the region boundary, or if the region is empty. The path to check with. Check to see if the specified path intersects with the current region. if the specified path has a non-empty intersection with the current region. The rectangle to check with. Check to see if the specified rectangle intersects with the current region. if the specified rectangle has a non-empty intersection with the current region. The region to check with. Check to see if the specified region intersects with the current region. if the specified region has a non-empty intersection with the current region. Gets a value indicating whether the region is complex (more than a single rectangle). if the region is complex; otherwise, . Gets a value indicating whether the region is empty. if the region is empty; otherwise, . Gets a value indicating whether the region is a single rectangle. if the region is a single rectangle; otherwise, . The path to apply the operator on. The operator to apply. Sets this region to the result of applying the operation to this region and the specified path. if the resulting region is non-empty. The rectangle to apply the operator on. The operator to apply. Sets this region to the result of applying the operation to this region and the specified rectangle. if the resulting region is non-empty. The region to apply the operator on. The operator to apply. Sets this region to the result of applying the operation to this region and the specified region. if the resulting region is non-empty. The x-coordinate to apply the operator on. The y-coordinate to apply the operator on. The right-coordinate to apply the operator on. The bottom-coordinate to apply the operator on. The operator to apply. Sets this region to the result of applying the operation to this region and the specified rectangle. if the resulting region is non-empty. The rectangle to check. Quickly checks if the specified rectangle is completely inside the region. if the rectangle is completely contained; otherwise, . This is an optimized check that may return even when the rectangle is contained, but never returns if the rectangle is not contained. The path to check. Quickly checks if the specified path does not intersect the region. if the path definitely does not intersect; otherwise, . This is an optimized check that may return even when there is no intersection, but never returns if there is an intersection. The rectangle to check. Quickly checks if the specified rectangle does not intersect the region. if the rectangle definitely does not intersect; otherwise, . This is an optimized check that may return even when there is no intersection, but never returns if there is an intersection. The region to check. Quickly checks if the specified region does not intersect the current region. if the region definitely does not intersect; otherwise, . This is an optimized check that may return even when there is no intersection, but never returns if there is an intersection. Sets the region to be empty. The replacement path. Sets this region to the area described by the path, clipped to the current region. if the resulting region is non-empty. This produces a region that is identical to the pixels that would be drawn by the path (with no anti-aliasing) with the current region as the clip. The replacement path. The clipping region. Sets this region to the area described by the path, clipped. if the resulting region is non-empty. This produces a region that is identical to the pixels that would be drawn by the path (with no anti-aliasing) with the specified clip. The replacement rectangle. Sets this region to the specified rectangle. if the resulting region is non-empty. The array of rectangles to set the region to. Sets the region to the union of the specified rectangles. if the resulting region is non-empty; otherwise, . The span of rectangles to set the region to. Sets the region to the union of the specified rectangles. if the resulting region is non-empty; otherwise, . The replacement region. Sets this region to the specified region. Returns if the resulting region is non-empty. The horizontal distance to translate. The vertical distance to translate. Translates the region by the specified offset. Iterates over the rectangles of a region clipped to a bounding rectangle. This member supports the infrastructure and is not intended to be used directly from your code. When this method returns, contains the current rectangle. Advances to the next rectangle and returns it. if a rectangle was available; otherwise, . Iterates over the rectangles that make up a region. This member supports the infrastructure and is not intended to be used directly from your code. When this method returns, contains the current rectangle. Advances to the next rectangle and returns it. if a rectangle was available; otherwise, . Iterates over the horizontal spans of a region at a specific y-coordinate. This member supports the infrastructure and is not intended to be used directly from your code. When this method returns, contains the left edge of the current span. When this method returns, contains the right edge of the current span. Advances to the next horizontal span and returns its boundaries. if a span was available; otherwise, . The logical operations that can be performed when combining two regions. Subtract the op region from the first region. Intersect the two regions. Replace the destination region with the op region. Subtract the first region from the op region. Union (inclusive-or) the two regions. Exclusive-or the two regions. Represents a 2D rotation and uniform scale matrix. This struct stores rotation as scaled cosine/sine values ( and ) and translation ( and ). Use to convert to a full . The scaled cosine value (scale * cos(angle)). The scaled sine value (scale * sin(angle)). The x-axis translation component. The y-axis translation component. Creates a new with the specified components. The uniform scale factor. The rotation angle in radians. The x-axis translation component. The y-axis translation component. The x-coordinate of the anchor point for rotation. The y-coordinate of the anchor point for rotation. Creates a rotation-scale matrix with the specified scale, rotation (in radians), translation, and anchor point. A new representing the combined transformation. The uniform scale factor. The rotation angle in degrees. The x-axis translation component. The y-axis translation component. The x-coordinate of the anchor point for rotation. The y-coordinate of the anchor point for rotation. Creates a rotation-scale matrix with the specified scale, rotation (in degrees), translation, and anchor point. A new representing the combined transformation. Creates an identity matrix that represents no transformation. A new with scale of 1, no rotation, and no translation. The rotation angle in radians. The x-coordinate of the anchor point for rotation. The y-coordinate of the anchor point for rotation. Creates a rotation matrix with the specified angle (in radians) around an anchor point. A new representing the rotation. The rotation angle in degrees. The x-coordinate of the anchor point for rotation. The y-coordinate of the anchor point for rotation. Creates a rotation matrix with the specified angle (in degrees) around an anchor point. A new representing the rotation. The uniform scale factor. Creates a uniform scale matrix with no rotation or translation. A new representing the scale transformation. The x-axis translation value. The y-axis translation value. Creates a translation matrix with no rotation or scale. A new representing the translation. Represents an empty matrix with all components set to zero. The to compare with the current instance. Determines whether the specified is equal to the current instance. if the specified matrix is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is a and is equal to the current instance; otherwise, . Returns the hash code for this instance. A 32-bit signed integer hash code. Represents the identity matrix (scale of 1, no rotation, no translation). The first to compare. The second to compare. Determines whether two instances are equal. if the two matrices are equal; otherwise, . The first to compare. The second to compare. Determines whether two instances are not equal. if the two matrices are not equal; otherwise, . Gets or sets the scaled cosine component (scale * cos(angle)). The scaled cosine value representing the combined scale and rotation. Gets or sets the scaled sine component (scale * sin(angle)). The scaled sine value representing the combined scale and rotation. Converts this rotation-scale matrix to a full 3x3 transformation matrix. A representing the same transformation. Gets or sets the x-axis translation component. The horizontal translation value. Gets or sets the y-axis translation component. The vertical translation value. A run buffer for text with rotation and scale transformations applied to each glyph. Gets the span of rotation-scale matrices for each glyph. A span containing the rotation-scale matrices. Gets the span of rotation-scale matrices for each glyph. A span containing the rotation-scale matrices. The rotation-scale matrices to set for each glyph. Sets the rotation-scale matrices for each glyph in the run. The rotation-scale matrices to set for each glyph. Sets the rotation-scale matrices for each glyph in the run. A buffer for storing a text run with rotation and scale transformations applied to each glyph. Gets the span of rotation-scale matrices for each glyph in the run. A span containing the rotation-scale matrices for positioning and transforming each glyph. The rotation-scale matrices to set for each glyph. Sets the rotation-scale matrices for each glyph in the run. Represents a rounded rectangle with a potentially different radii for each corner. If either of a corner's radii are 0 the corner will be square and negative radii are not allowed (they are clamped to zero). Creates a new instance of with all values initialized to 0. The bounds of the new rectangle. Creates a new instance of with all radii set to 0. The rounded rectangle to copy. Creates a copy of a . The bounds of the new rectangle. The radii of the corners. Creates a new instance of with the same radii for all four corners. The bounds of the new rectangle. The radii of the corners along the x-axis. The radii of the corners along the y-axis. Creates a new instance of with the same radii for all four corners. Gets a value indicating whether all four corners are circular (with the x- and y-axis equal). if all four corners are circular; otherwise, . The difference in the axis allowed before the corners are no longer circular. Check to see whether all four corners are circular (with the x- and y-axis equal). if all corners are circular within the tolerance; otherwise, . The rectangle. Determines whether the specified rectangle is wholly contained within the rounded rectangle. Returns if the specified rectangle is inside the rounded rectangle, otherwise . The amount to deflate the rectangle by. Deflate the rectangle by the specified amount. The corner radii are adjusted by the amount of the deflation if they are round. The amount to deflate the rectangle by along the x-axis. The amount to deflate the rectangle by along the y-axis. Deflate the rectangle by the specified amount. The corner radii are adjusted by the amount of the deflation if they are round. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. The corner to retrieve. Retrieves the radii of the specified corner. Returns the radii of the specified corner. Gets the height of the rectangle. The height of the rectangle. The amount to inflate the rectangle by. Inflate the rectangle by the specified amount. The corner radii are adjusted by the amount of the inflation if they are round. The amount to inflate the rectangle by along the x-axis. The amount to inflate the rectangle by along the y-axis. Inflate the rectangle by the specified amount. The corner radii are adjusted by the amount of the inflation if they are round. Gets a value indicating whether the rectangle has a valid bounds, radii and type. if the rectangle is valid; otherwise, . The amount to translate the rectangle by. Translate the rectangle by the specified amount. The amount to translate the rectangle by along the x-axis. The amount to translate the rectangle by along the y-axis. Translate the rectangle by the specified amount. Gets the radii of the corners. An array of corner radii. The order of the corners are clockwise from the top left: Top Left, Top Right, Bottom Right, Bottom Left. Gets the rectangle bounds of the rounded rectangle. The rectangle bounds. Sets this rounded rectangle to an empty rectangle (with all values 0). The interior rectangle. The radii along the x-axis on the left side of the rectangle. The radii along the y-axis on the top of the rectangle. The radii along the x-axis on the right side of the rectangle. The radii along the y-axis on the bottom of the rectangle. Sets this rounded rectangle to a nine-patch rectangle. The outer bounds of the oval. Sets this rectangle to be an oval. The simple rectangle. Sets this rectangle to be a simple rectangle. The simple rectangle. The radii of the corners along the x-axis. The radii of the corners along the y-axis. Sets this rectangle to be a simple rounded rectangle. The rectangle. The corner radii. Sets this rectangle to be a rounded rectangle. The bounds of the rounded rectangle. An array of four points representing the radii for each corner (upper-left, upper-right, lower-right, lower-left). Sets the rectangle with individual corner radii specified as a span of points. If the radii span does not contain exactly four elements, an exception is thrown. The transformation matrix. Create a new rounded rectangle that is transformed by the specified matrix. Returns a new, transformed rectangle if the matrix was valid, or otherwise. The transformation matrix must be a scale and/or translation matrix. The transformation matrix. The transformed rounded rectangle. Create a new rounded rectangle that is transformed by the specified matrix. Returns if the transformation was successful, otherwise . The transformation matrix must be a scale and/or translation matrix. Gets a value indicating what sub-type of rounded rectangle this instance is. The type of the rounded rectangle. Gets the width of the rectangle. The width of the rectangle. Represents the corners of a rounded rectangle. The lower-left or bottom-left corner. The lower-right or bottom-right corner. The upper-left or top-left corner. The upper-right or top-right corner. Represents the various sub-types of rounded rectangles. A non-empty rounded rectangle with at least one corner non-zero. An empty (all zero) rounded rectangle. A non-empty rounded rectangle where the left x-radii are equal, the top y-radii are equal, the right x-radii are equal and the bottom y-radii are equal. A non-empty rounded rectangle with the x-radii equal to half the width and the y-radii equal to half the height. A non-empty rounded rectangle with zero radii at all corners. A non-empty rounded rectangle with equal x-radii and equal y-radii. A run buffer that provides access to glyph data for a text run. Gets the span of cluster indices that map glyphs to their source text positions. A span containing the cluster indices. Gets the span of glyph IDs for the run. A span containing the glyph IDs. Gets the span of source text bytes for the run. A span containing the UTF-8 text bytes. Gets the span of glyph IDs for the run. A span containing the glyph IDs. The cluster indices to set. Sets the cluster indices that map glyphs to their source text positions. The glyph IDs to set. Sets the glyph IDs for the run. The UTF-8 encoded text bytes to set. Sets the source text bytes for the run. Gets the number of glyphs in the run. The number of glyphs in the run. Gets the size of the text buffer in bytes. The size of the text buffer in bytes. A builder for creating blenders from SkSL runtime effects. The compiled blender runtime effect. Initializes a new instance of the class for the specified runtime effect. Builds a blender using the configured uniforms and children. A new blender, or if the build failed. A builder for creating color filters from SkSL runtime effects. The compiled color filter runtime effect. Initializes a new instance of the class for the specified runtime effect. Builds a color filter using the configured uniforms and children. A new color filter, or if the build failed. Represents a compiled SkSL runtime effect that can be used to create shaders, color filters, or blenders. The SkSL blender source code. Compiles SkSL source code and returns a blender builder. A new blender builder. The SkSL color filter source code. Compiles SkSL source code and returns a color filter builder. A new color filter builder. The SkSL shader source code. Compiles SkSL source code and returns a shader builder. A new shader builder. Gets the names of child effects declared in the SkSL source. A list of child effect names. The SkSL source code. Returns any compilation errors. Compiles SkSL source code into a runtime effect. A new runtime effect, or if compilation failed. The SkSL blender source code. Returns any compilation errors. Compiles SkSL source code into a blender runtime effect. A new runtime effect, or if compilation failed. The SkSL color filter source code. Returns any compilation errors. Compiles SkSL source code into a color filter runtime effect. A new runtime effect, or if compilation failed. The SkSL shader source code. Returns any compilation errors. Compiles SkSL source code into a shader runtime effect. A new runtime effect, or if compilation failed. Creates a blender from this runtime effect with default uniforms. A new blender. The uniform values to use. Creates a blender from this runtime effect with the specified uniforms. A new blender. The uniform values to use. The child effects to use. Creates a blender from this runtime effect with the specified uniforms and children. A new blender. Creates a color filter from this runtime effect with default uniforms. A new color filter. The uniform values to use. Creates a color filter from this runtime effect with the specified uniforms. A new color filter. The uniform values to use. The child effects to use. Creates a color filter from this runtime effect with the specified uniforms and children. A new color filter. Creates a shader from this runtime effect with default uniforms. A new shader. The uniform values to use. Creates a shader from this runtime effect with the specified uniforms. A new shader. Whether the shader output is fully opaque. Creates a shader from this runtime effect. A new shader. The uniform values to use. The child effects to use. Creates a shader from this runtime effect with the specified uniforms and children. A new shader. Whether the shader output is fully opaque. The uniform values to use. Creates a shader from this runtime effect with the specified uniforms. A new shader. The uniform values to use. The child effects to use. The local transformation matrix to apply. Creates a shader from this runtime effect with the specified uniforms, children, and local matrix. A new shader. Whether the shader output is fully opaque. The uniform values to use. The child effects to use. Creates a shader from this runtime effect with the specified uniforms and children. A new shader. Whether the shader output is fully opaque. The uniform values to use. The child effects to use. The local transformation matrix to apply. Creates a shader from this runtime effect with the specified uniforms, children, and local matrix. A new shader. Gets the names of uniforms declared in the SkSL source. A list of uniform names. Gets the total size in bytes required for all uniforms. The uniform data size in bytes. Base class for building runtime effects with uniforms and child effects. The compiled runtime effect to build upon. Initializes a new instance of the class for the specified runtime effect. Gets the collection of child effects for this builder. The child effects collection that can be used to set shader, color filter, or blender children. Releases all resources used by this builder. Gets the runtime effect this builder is configured for. The runtime effect instance. Gets the collection of uniform values for this builder. The uniforms collection that can be used to set uniform values by name. The exception that is thrown when a runtime effect builder encounters an error. The error message that explains the reason for the exception. Initializes a new instance of the class with the specified error message. Represents a child effect that can be passed to a runtime effect, wrapping a shader, color filter, or blender. The blender to wrap as a child effect. Initializes a new instance of the struct that wraps a blender. The color filter to wrap as a child effect. Initializes a new instance of the struct that wraps a color filter. The shader to wrap as a child effect. Initializes a new instance of the struct that wraps a shader. Gets the blender wrapped by this child effect, or if this child wraps a different type. The wrapped blender, or . Gets the color filter wrapped by this child effect, or if this child wraps a different type. The wrapped color filter, or . The blender to convert. Implicitly converts a blender to a child effect. A new child effect wrapping the blender. The color filter to convert. Implicitly converts a color filter to a child effect. A new child effect wrapping the color filter. The shader to convert. Implicitly converts a shader to a child effect. A new child effect wrapping the shader. Gets the shader wrapped by this child effect, or if this child wraps a different type. The wrapped shader, or . Gets the underlying object wrapped by this child effect. The wrapped shader, color filter, or blender. Represents a collection of child shaders or color filters for use with . The runtime effect that defines the available child slots. Creates a new instance of for the specified effect. The name of the child slot as defined in the SkSL shader. The shader to assign to the child slot. Adds a shader to the specified child slot. The name of the child slot as defined in the SkSL shader. The shader, color filter, or blender to assign to the child slot. Adds a child object to the specified child slot. The name of the child slot to check. Determines whether a child slot with the specified name exists. if a child slot with the name exists; otherwise, . Gets the number of child slots defined by the runtime effect. The number of child slots. Releases all resources used by this instance. Returns an enumerator that iterates through the child slot names. An enumerator for the child slot names. The name of the child slot. Sets the child object for the specified slot. The child object assigned to the slot. Gets the list of child slot names defined by the runtime effect. A read-only list of child slot names. Clears all assigned child objects from all slots. Returns an enumerator that iterates through the child slot names. An enumerator for the child slot names. Returns all child objects as an array. An array containing all assigned child objects. Represents a uniform value that can be passed to an . This ref struct wraps various data types (floats, integers, colors, matrices) and provides implicit conversions for convenient assignment to runtime effect uniforms. Gets an empty uniform value. An empty instance. Gets a value indicating whether this uniform is empty. if this uniform is empty; otherwise, . The color value to convert. Converts an to an . A new containing the color value. The color value to convert. Converts an to an . A new containing the color value. The matrix value to convert. Converts an to an . A new containing the matrix values as a float array. The point value to convert. Converts an to an . A new containing the point as a float2. The 3D point value to convert. Converts an to an . A new containing the point as a float3. The integer point value to convert. Converts an to an . A new containing the point as an int2. The size value to convert. Converts an to an . A new containing the size as a float2. The integer size value to convert. Converts an to an . A new containing the size as an int2. The integer value to convert. Converts an to an . A new containing the integer value. The integer array to convert. Converts an array of to an . A new containing the integer array. The read-only span of integers to convert. Converts a of to an . A new containing the integer values. The read-only span of floats to convert. Converts a of to an . A new containing the float values. The float value to convert. Converts a to an . A new containing the float value. The float array to convert. Converts an array of to an . A new containing the float array. The jagged float array to convert. Converts a jagged array of to an . A new containing the flattened float values. The jagged array is flattened into a single contiguous array of floats. The span of integers to convert. Converts a of to an . A new containing the integer values. The span of floats to convert. Converts a of to an . A new containing the float values. Gets the size of the uniform data in bytes. The size of the uniform data in bytes. The destination span to write the uniform data to. Writes the uniform data to the specified byte span. The destination span must have sufficient capacity to hold the uniform data. Represents a collection of uniform values for an . This class manages uniform data that is passed to SkSL shaders, color filters, and blenders. Uniforms are identified by name and can hold various data types including floats, integers, colors, and matrices. The runtime effect that defines the available uniforms. Initializes a new instance of the class for the specified runtime effect. The constructor initializes the uniform data buffer based on the uniforms declared in the effect's SkSL code. The name of the uniform as declared in the SkSL code. The value to assign to the uniform. Adds or updates a uniform value by name. The value type must be compatible with the uniform type declared in the SkSL code. The name of the uniform to check for. Determines whether a uniform with the specified name exists in this collection. if a uniform with the specified name exists; otherwise, . Gets the number of uniforms in this collection. The number of uniforms defined by the runtime effect. Releases all resources used by this object. Returns an enumerator that iterates through the uniform names. An enumerator that can be used to iterate through the uniform names. The name of the uniform as declared in the SkSL code. Sets the value of the uniform with the specified name. The value to assign to the uniform. The value type must be compatible with the uniform type declared in the SkSL code. Gets the list of uniform names defined by the runtime effect. A read-only list of uniform names. Resets all uniform values to their default state (zero). Gets the total size of all uniform data in bytes. The total size of the uniform data buffer in bytes. Returns an enumerator that iterates through the uniform names. An enumerator that can be used to iterate through the uniform names. Creates a copy of the uniform data as an object. A new object containing a copy of the uniform data. The returned data can be passed to methods like . A builder for creating shaders from SkSL runtime effects. The compiled shader runtime effect. Initializes a new instance of the class for the specified runtime effect. Builds a shader using the configured uniforms and children. A new shader, or if the build failed. The local transformation matrix to apply to the shader. Builds a shader using the configured uniforms and children with a local transformation matrix. A new shader, or if the build failed. Specifies the sampling options used when drawing images, including filter mode, mipmap mode, and cubic resampling. The cubic resampler to use for image sampling. Initializes a new instance of the struct with the specified cubic resampler. The filter mode to use for image sampling. Initializes a new instance of the struct with the specified filter mode and no mipmap filtering. The maximum anisotropic filtering level. Values less than 1 are clamped to 1. Initializes a new instance of the struct with the specified anisotropic filtering level. The filter mode to use for image sampling. The mipmap mode to use for image sampling. Initializes a new instance of the struct with the specified filter and mipmap modes. Gets the cubic resampler parameters. The cubic resampler used for image sampling. Gets the default sampling options. The to compare with this instance. Determines whether the specified is equal to the current instance. if the specified object is equal to the current instance; otherwise, . The object to compare with the current instance. Determines whether the specified object is equal to the current instance. if the specified object is equal to the current instance; otherwise, . Gets the filter mode. The filter mode used for image sampling. Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Gets a value indicating whether anisotropic filtering is enabled. if anisotropic filtering is enabled; otherwise, . Gets the maximum anisotropic filtering level. The maximum anisotropic filtering level, or 0 if anisotropic filtering is disabled. Gets the mipmap mode. The mipmap mode used for image sampling. The first to compare. The second to compare. Determines whether two instances are equal. if the two instances are equal; otherwise, . The first to compare. The second to compare. Determines whether two instances are not equal. if the two instances are not equal; otherwise, . Gets a value indicating whether cubic resampling is enabled. if cubic resampling is enabled; otherwise, . Shaders specify the source color(s) for what is being drawn in the . The bitmap to use inside the shader. Creates a new shader that will draw with the specified bitmap. Returns a new , or an empty shader on error. Never returns . then that mask will be colorized using the color on the paint. ]]> The bitmap to use inside the shader. The tiling mode to use when sampling the bitmap in the x-direction. The tiling mode to use when sampling the bitmap in the y-direction. Creates a new shader that will draw with the specified bitmap. Returns a new , or an empty shader on error. Never returns . then that mask will be colorized using the color on the paint. ]]> The bitmap to use inside the shader. The tiling mode to use when sampling the bitmap in the x-direction. The tiling mode to use when sampling the bitmap in the y-direction. The matrix to apply before applying the shader. Creates a new shader that will draw with the specified bitmap. Returns a new , or an empty shader on error. Never returns . then that mask will be colorized using the color on the paint. ]]> The to use for combining the shaders. The first shader to blend. The second shader to blend. Creates a new shader that blends two shaders together using a custom blender. Returns a new . The to use for combining the shaders. The first shader to blend. The second shader to blend. Creates a new shader that blends two shaders together using a blend mode. Returns a new . The color to paint. Creates a new shader that just draws the specified color. Returns a new , or an empty shader on error. Never returns . The color to paint. The colorspace to use. Creates a new shader that just draws the specified color. Returns a new , or an empty shader on error. Never returns . The shader to apply. The color filter to apply. Creates a new shader that produces the same colors as invoking this shader and then applying the color filter. Returns a new , or an empty shader on error. Never returns . The colors from this shader are seen as the destination by the blend mode. The colors from this shader are seen as the source by the blend mode. Create a new compose shader, which combines two shaders by the blend mode. Returns a new , or an empty shader on error. Never returns . The colors from this shader are seen as the destination by the blend mode. The colors from this shader are seen as the source by the blend mode. The blend mode that combines the two shaders. Create a new compose shader, which combines two shaders by a blend mode. Returns a new , or an empty shader on error. Never returns . Creates a new "empty" shader that will not draw anything. Returns a new , or an empty shader on error. Never returns . The source image to use for the shader. Creates a new shader that draws an image. Returns a new . The source image to use for the shader. The tile mode in the X direction. The tile mode in the Y direction. Creates a new shader that draws an image with specified tile modes. Returns a new . The source image to use for the shader. The tile mode in the X direction. The tile mode in the Y direction. The filter quality to use when sampling the image. Creates a new shader that draws an image with specified tile modes and filter quality. Returns a new . The source image to use for the shader. The tile mode in the X direction. The tile mode in the Y direction. The matrix to apply before applying the shader. Creates a new shader that draws an image with specified tile modes and transformation matrix. Returns a new . The source image to use for the shader. The tile mode in the X direction. The tile mode in the Y direction. The sampling options to use when sampling the image. Creates a new shader that draws an image with specified tile modes and sampling options. Returns a new . The source image to use for the shader. The tile mode in the X direction. The tile mode in the Y direction. The filter quality to use when sampling the image. The matrix to apply before applying the shader. Creates a new shader that draws an image with specified tile modes, filter quality, and transformation matrix. Returns a new . The source image to use for the shader. The tile mode in the X direction. The tile mode in the Y direction. The sampling options to use when sampling the image. The matrix to apply before applying the shader. Creates a new shader that draws an image with specified tile modes, sampling options, and transformation matrix. Returns a new . The interpolation weight between 0.0 and 1.0, where 0.0 returns the result of and 1.0 returns the result of . The destination shader to interpolate. The source shader to interpolate. Creates a new shader that linearly interpolates between two shaders. Returns a new . The start point for the gradient. The end point for the gradient. The array colors to be distributed between the two points. The tiling mode. Creates a shader that generates a linear gradient between the two specified points. Returns a new , or an empty shader on error. Never returns . The start point for the gradient. The end point for the gradient. The array colors to be distributed between the two points. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. The tiling mode. Creates a shader that generates a linear gradient between the two specified points. Returns a new , or an empty shader on error. Never returns . The start point for the gradient. The end point for the gradient. The array of colors to be distributed between the two points. The color space for the gradient colors. The tiling mode. Creates a shader that generates a linear gradient between the two specified points in a specified color space. Returns a new , or an empty shader on error. The start point for the gradient. The end point for the gradient. The array colors to be distributed between the two points. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. The tiling mode. The matrix to apply before applying the shader. Creates a shader that generates a linear gradient between the two specified points. Returns a new , or an empty shader on error. Never returns . The start point for the gradient. The end point for the gradient. The array of colors to be distributed between the two points. The color space for the gradient colors. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. The tiling mode. Creates a shader that generates a linear gradient between the two specified points in a specified color space. Returns a new , or an empty shader on error. The start point for the gradient. The end point for the gradient. The array of colors to be distributed between the two points. The color space for the gradient colors. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. The tiling mode. The matrix to apply before applying the shader. Creates a shader that generates a linear gradient between the two specified points in a specified color space. Returns a new , or an empty shader on error. The shader to apply. The matrix to apply before applying the shader. Creates a shader that first applies the specified matrix and then applies the shader. Returns a new , or on error. The frequency in the x-direction in the range of 0..1. The frequency in the y-direction in the range of 0..1. The number of octaves, usually fairly small. The randomization seed. Creates a new shader that draws Perlin fractal noise. Returns a new , or an empty shader on error. Never returns . The frequency in the x-direction in the range of 0..1. The frequency in the y-direction in the range of 0..1. The number of octaves, usually fairly small. The randomization seed. The tile size used to modify the frequencies so that the noise will be tileable for the given size. Creates a new shader that draws Perlin fractal noise. Returns a new , or an empty shader on error. Never returns . The base frequency in the X direction. The base frequency in the Y direction. The number of octaves, usually a value between 1 and 10. The seed value used to initialize the random number generator. The tile size used to modify the frequencies for tiling. Creates a new shader that produces fractal Perlin noise with a specified tile size. Returns a new . The base frequency in the X direction. The base frequency in the Y direction. The number of octaves, usually a value between 1 and 10. The z-coordinate value used to produce 3D noise. Creates a new shader that produces improved Perlin noise. Returns a new . The frequency in the x-direction in the range of 0..1. The frequency in the y-direction in the range of 0..1. The number of octaves, usually fairly small. The randomization seed. Creates a new shader that draws Perlin turbulence noise. Returns a new , or an empty shader on error. Never returns . The frequency in the x-direction in the range of 0..1. The frequency in the y-direction in the range of 0..1. The number of octaves, usually fairly small. The randomization seed. The tile size used to modify the frequencies so that the noise will be tileable for the given size. Creates a new shader that draws Perlin turbulence noise. Returns a new , or an empty shader on error. Never returns . The base frequency in the X direction. The base frequency in the Y direction. The number of octaves, usually a value between 1 and 10. The seed value used to initialize the random number generator. The tile size used to modify the frequencies for tiling. Creates a new shader that produces Perlin noise turbulence with a specified tile size. Returns a new . The picture to use inside the shader. Creates a new shader that will draw with the specified picture. Returns a new . The picture to use inside the shader. The tiling mode to use when sampling the picture in the x-direction. The tiling mode to use when sampling the picture in the y-direction. Creates a new shader that will draw with the specified picture. Returns a new , or an empty shader on error. Never returns . The picture to use inside the shader. The tile mode in the X direction. The tile mode in the Y direction. The filter mode to use when sampling the picture. Creates a new shader that will draw with the specified picture and filter mode. Returns a new . The picture to use inside the shader. The tiling mode to use when sampling the picture in the x-direction. The tiling mode to use when sampling the picture in the y-direction. The tile rectangle in picture coordinates. Creates a new shader that will draw with the specified picture. Returns a new , or an empty shader on error. Never returns . The picture to use inside the shader. The tile mode in the X direction. The tile mode in the Y direction. The filter mode to use when sampling the picture. The tile rectangle in picture coordinates. Creates a new shader that will draw with the specified picture, filter mode, and tile rectangle. Returns a new . The picture to use inside the shader. The tiling mode to use when sampling the picture in the x-direction. The tiling mode to use when sampling the picture in the y-direction. The matrix to apply before applying the shader. The tile rectangle in picture coordinates. Creates a new shader that will draw with the specified picture. Returns a new , or an empty shader on error. Never returns . The picture to use inside the shader. The tile mode in the X direction. The tile mode in the Y direction. The filter mode to use when sampling the picture. The matrix to apply before applying the shader. The tile rectangle in picture coordinates. Creates a new shader that will draw with the specified picture, filter mode, transformation matrix, and tile rectangle. Returns a new . The center of the circle for this gradient. The positive radius of the circle for this gradient. The array colors to be distributed between the center and edge of the circle. The tiling mode. Creates a shader that generates a radial gradient given the center and radius. Returns a new , or an empty shader on error. Never returns . The center of the circle for this gradient. The positive radius of the circle for this gradient. The array colors to be distributed between the center and edge of the circle. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. The tiling mode. Creates a shader that generates a radial gradient given the center and radius. Returns a new , or an empty shader on error. Never returns . The center of the circle for this gradient. The positive radius of the circle for this gradient. The array of colors to be distributed between the center and edge of the circle. The color space for the gradient colors. The tiling mode. Creates a shader that generates a radial gradient in a specified color space. Returns a new , or an empty shader on error. The center of the circle for this gradient. The positive radius of the circle for this gradient. The array colors to be distributed between the center and edge of the circle. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. The tiling mode. The matrix to apply before applying the shader. Creates a shader that generates a radial gradient given the center and radius. Returns a new , or an empty shader on error. Never returns . The center of the circle for this gradient. The positive radius of the circle for this gradient. The array of colors to be distributed between the center and edge of the circle. The color space for the gradient colors. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. The tiling mode. Creates a shader that generates a radial gradient in a specified color space. Returns a new , or an empty shader on error. The center of the circle for this gradient. The positive radius of the circle for this gradient. The array of colors to be distributed between the center and edge of the circle. The color space for the gradient colors. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. The tiling mode. The matrix to apply before applying the shader. Creates a shader that generates a radial gradient in a specified color space. Returns a new , or an empty shader on error. The coordinates of the center of the sweep. The array colors to be distributed around the center. Creates a shader that generates a sweep gradient given a center. Returns a new , or an empty shader on error. Never returns . The coordinates of the center of the sweep. The array colors to be distributed around the center. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. Creates a shader that generates a sweep gradient given a center. Returns a new , or an empty shader on error. Never returns . The coordinates of the center of the sweep. The array of colors to be distributed around the center. The color space for the gradient colors. Creates a shader that generates a sweep gradient in a specified color space. Returns a new , or an empty shader on error. The coordinates of the center of the sweep. The array colors to be distributed around the center. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. The matrix to apply before applying the shader. Creates a shader that generates a sweep gradient given a center. Returns a new , or an empty shader on error. Never returns . The coordinates of the center of the sweep. The array of colors to be distributed around the center. The color space for the gradient colors. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. Creates a shader that generates a sweep gradient in a specified color space. Returns a new , or an empty shader on error. The coordinates of the center of the sweep. The array colors to be distributed around the center. The tiling mode. The start of the angular range. The end of the angular range. Creates a shader that generates a sweep gradient given a center. Returns a new , or an empty shader on error. Never returns . The coordinates of the center of the sweep. The array of colors to be distributed around the center. The color space for the gradient colors. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. The matrix to apply before applying the shader. Creates a shader that generates a sweep gradient in a specified color space. Returns a new , or an empty shader on error. The coordinates of the center of the sweep. The array colors to be distributed around the center. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. The tiling mode. The start of the angular range. The end of the angular range. Creates a shader that generates a sweep gradient given a center. Returns a new , or an empty shader on error. Never returns . The coordinates of the center of the sweep. The array of colors to be distributed around the center. The color space for the gradient colors. The tiling mode. The start of the angular range. The end of the angular range. Creates a shader that generates a sweep gradient with angular range in a specified color space. Returns a new , or an empty shader on error. The coordinates of the center of the sweep. The array colors to be distributed around the center. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. The tiling mode. The start of the angular range. The end of the angular range. The matrix to apply before applying the shader. Creates a shader that generates a sweep gradient given a center. Returns a new , or an empty shader on error. Never returns . The coordinates of the center of the sweep. The array of colors to be distributed around the center. The color space for the gradient colors. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. The tiling mode. The start of the angular range. The end of the angular range. Creates a shader that generates a sweep gradient with angular range in a specified color space. Returns a new , or an empty shader on error. The coordinates of the center of the sweep. The array of colors to be distributed around the center. The color space for the gradient colors. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. The tiling mode. The start of the angular range. The end of the angular range. The matrix to apply before applying the shader. Creates a shader that generates a sweep gradient with angular range in a specified color space. Returns a new , or an empty shader on error. The coordinates for the starting point. The radius at the starting point. The coordinates for the end point. The radius at the end point. The array colors to be distributed between the two points. The tiling mode. Creates a shader that generates a conical gradient given two circles. Returns a new , or on error. The coordinates for the starting point. The radius at the starting point. The coordinates for the end point. The radius at the end point. The array colors to be distributed between the two points. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. The tiling mode. Creates a shader that generates a conical gradient given two circles. Returns a new , or on error. The coordinates for the starting point. The radius at the starting point. The coordinates for the end point. The radius at the end point. The array of colors to be distributed between the two points. The color space for the gradient colors. The tiling mode. Creates a shader that generates a conical gradient in a specified color space. Returns a new , or an empty shader on error. The coordinates for the starting point. The radius at the starting point. The coordinates for the end point. The radius at the end point. The array colors to be distributed between the two points. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. The tiling mode. The matrix to apply before applying the shader. Creates a shader that generates a conical gradient given two circles. Returns a new , or an empty shader on error. Never returns . The coordinates for the starting point. The radius at the starting point. The coordinates for the end point. The radius at the end point. The array of colors to be distributed between the two points. The color space for the gradient colors. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. The tiling mode. Creates a shader that generates a conical gradient in a specified color space. Returns a new , or an empty shader on error. The coordinates for the starting point. The radius at the starting point. The coordinates for the end point. The radius at the end point. The array of colors to be distributed between the two points. The color space for the gradient colors. The positions (in the range of 0..1) of each corresponding color, or to evenly distribute the colors. The tiling mode. The matrix to apply before applying the shader. Creates a shader that generates a conical gradient in a specified color space. Returns a new , or an empty shader on error. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. The to apply to this shader's output. Returns a new shader that produces the same colors as this shader but with the specified color filter applied. Returns a new . The matrix to apply before applying the shader. Returns a new shader that produces the same colors as this shader but with the specified transformation matrix applied. Returns a new . Indications on how the shader should handle drawing outside the original bounds. Replicate the edge color. Only draw the shader's image in the original domain, returning transparent black elsewhere. Repeat the shader's image horizontally and vertically, alternating mirror images so that adjacent images always seam. Repeat the shader's image horizontally and vertically. Stores an ordered pair of floating-point numbers describing the width and height of a rectangle. The offset to use as the dimensions of the new point. Initializes a new instance of the struct from the offset of a point. The width. The height. Initializes a new instance of the struct with a given width and height. The first structure to add. The second structure to add. Adds the width and height of one structure to the width and height of another structure. A structure that is the result of the addition operation. Represents a new instance of the class with member data left uninitialized. The to test. Tests to see whether the specified object is a structure with the same dimensions as this structure. if has the same dimensions as this ; otherwise, . The to test. Tests to see whether the specified object is a structure with the same dimensions as this structure. if is a and has the same dimensions as this ; otherwise, . Returns a hash code for this structure. An integer value that specifies a hash value for this structure. Gets or sets the vertical component of this structure. The vertical component of this structure. Gets a value that indicates whether this structure has zero width and height. if both width and height are 0; otherwise, . The first structure to add. The second structure to add. Adds the width and height of one structure to the width and height of another structure. A structure that is the result of the addition operation. The structure on the left side of the equality operator. The structure on the right of the equality operator. Tests whether two structures are equal. if both structures have equal and ; otherwise, . The structure to be converted. Converts the specified structure to a structure. The structure structure to which this operator converts. The structure to be converted. Converts the specified structure to a structure. The structure structure to which this operator converts. The structure that is to the left of the inequality operator. The structure that is to the right of the inequality operator. Tests whether two structures are different. if either of the and properties of the two structures are unequal; otherwise, . The structure on the left side of the subtraction operator. The structure on the right side of the subtraction operator. Subtracts the width and height of one structure from the width and height of another structure. A that is the result of the subtraction operation. The structure on the left side of the subtraction operator. The structure on the right side of the subtraction operator. Subtracts the width and height of one structure from the width and height of another structure. A that is the result of the subtraction operation. Converts a structure to a structure. Returns a structure. Converts a structure to a structure. Returns a structure. Converts this to a human readable string. A string that represents this . Gets or sets the horizontal component of this structure. The horizontal component of this structure. Stores an ordered pair of integers describing the width and height of a rectangle. The offset to use as the dimensions of the new point. Initializes a new instance of the struct from the offset of a point. The width. The height. Initializes a new instance of the struct with a given width and height. The first structure to add. The second structure to add. Adds the width and height of one structure to the width and height of another structure. A structure that is the result of the addition operation. Represents a new instance of the class with member data left uninitialized. The to test. Tests to see whether the specified object is a structure with the same dimensions as this structure. if has the same dimensions as this ; otherwise, . The to test. Tests to see whether the specified object is a structure with the same dimensions as this structure. if is a and has the same dimensions as this ; otherwise, . Returns a hash code for this structure. An integer value that specifies a hash value for this structure. Gets or sets the vertical component of this structure. The vertical component of this structure. Gets a value that indicates whether this structure has zero width and height. if both width and height are 0; otherwise, . The first structure to add. The second structure to add. Adds the width and height of one structure to the width and height of another structure. A structure that is the result of the addition operation. The structure on the left side of the equality operator. The structure on the right of the equality operator. Tests whether two structures are equal. if both structures have equal and ; otherwise, . The structure to be converted. Converts the specified structure to a structure. The structure structure to which this operator converts. The structure that is to the left of the inequality operator. The structure that is to the right of the inequality operator. Tests whether two structures are different. if either of the and properties of the two structures are unequal; otherwise, . The structure on the left side of the subtraction operator. The structure on the right side of the subtraction operator. Subtracts the width and height of one structure from the width and height of another structure. A that is the result of the subtraction operation. The structure on the left side of the subtraction operator. The structure on the right side of the subtraction operator. Subtracts the width and height of one structure from the width and height of another structure. A that is the result of the subtraction operation. Converts a structure to a structure. Returns a structure. Converts this to a human readable string. A string that represents this . Gets or sets the horizontal component of this structure. The horizontal component of this structure. An abstraction for a source of bytes, which can be backed by memory, or a file, or something else. Returns the memory address of the data if the stream is a memory stream. Returns the memory address of the data, or IntPtr.Zero if the stream is not a memory stream. Gets a value indicating whether this stream can report its total length. if the stream can report its total length; otherwise, . Gets a value indicating whether this stream can report its current position. if the stream can report its current position; otherwise, . Gets a value indicating whether all the bytes in the stream have been read. if all the bytes have been read; otherwise, . This property may return if there was an error, and the stream cannot be read anymore. Gets the total length of the stream. If this is not supported, the length will be reported as 0. The total length of the stream, or 0 if not supported. The relative offset. Seeks to an relative offset in the stream. if seeking is supported and the seek was successful; otherwise, . If an attempt is made to move to a position outside the stream, the position will be set to the closest point within the stream (beginning or end). The relative offset. Seeks to an relative offset in the stream. if seeking is supported and the seek was successful; otherwise, . If an attempt is made to move to a position outside the stream, the position will be set to the closest point within the stream (beginning or end). The buffer to read into. The number of bytes to read. Attempt to peek at bytes. Returns the number of bytes actually peeked/copied. Gets the current position in the stream. If this is not supported, the position will be reported as 0. The current position in the stream, or 0 if not supported. The buffer to read into. The number of bytes to read. Reads a copy of the specified number of bytes into the provided buffer. Returns the number of bytes actually read. The buffer to read into. The number of bytes to read. Reads a copy of the specified number of bytes into the provided buffer. Returns the number of bytes actually read. Read a single boolean. Returns the boolean that was read. The boolean that was read. Read a single boolean. if the read was successful; otherwise, . Read a single byte. Returns the byte that was read. The byte that was read. Read a single byte. if the read was successful; otherwise, . Read a single 16-bit integer. Returns the 16-bit integer that was read. The 16-bit integer that was read. Read a single 16-bit integer. if the read was successful; otherwise, . Read a single 32-bit integer. Returns the 32-bit integer that was read. The 32-bit integer that was read. Read a single 32-bit integer. if the read was successful; otherwise, . Read a single, signed byte. Returns the signed byte that was read. The signed byte that was read. Read a single, signed byte. if the read was successful; otherwise, . Read a single, unsigned 16-bit integer. Returns the unsigned 16-bit integer that was read. The unsigned 16-bit integer that was read. Read a single, unsigned 16-bit integer. if the read was successful; otherwise, . Read a single, unsigned 32-bit integer. Returns the unsigned 32-bit integer that was read. The unsigned 32-bit integer that was read. Read a single, unsigned 32-bit integer. if the read was successful; otherwise, . Rewinds to the beginning of the stream. if the stream is known to be at the beginning after this call returns. The absolute position. Seeks to an absolute position in the stream. if seeking is supported and the seek was successful; otherwise, . If an attempt is made to move to a position outside the stream, the position will be set to the closest point within the stream (beginning or end). The number of bytes to skip. Moves the current position on by the specified number of bytes. Returns the actual number bytes that could be skipped. An abstract, seekable stream with a known length. An abstract, memory-based stream. An abstract, rewindable stream. An abstract, rewindable stream that supports the seek operation. Various options for . This is the treatment that is applied to the beginning and end of each non-closed contour (e.g. lines). Begin/end contours with no extension. Begin/end contours with a semi-circle extension. Begin/end contours with a half square extension. Join style for stroking operations. This is the treatment that is applied to corners in paths and rectangles. Connect path segments with a flat bevel join. Connect path segments with a sharp join. Connect path segments with a round join. Represents the backend/results of drawing to a canvas. canvas, the surface stores the recorded commands. The surface always has non-zero dimensions. If there is a request for a new surface, and either of the requested dimensions are zero, then will be returned. Once you create a surface with one of its methods, you can draw into the canvas returned by the property. Once the drawing is complete, you can retrieve an by calling the method. ## Examples ```csharp var info = new SKImageInfo(256, 256); using (var surface = SKSurface.Create(info)) { SKCanvas canvas = surface.Canvas; canvas.Clear(SKColors.White); // configure our brush var redBrush = new SKPaint { Color = new SKColor(0xff, 0, 0), IsStroke = true }; var blueBrush = new SKPaint { Color = new SKColor(0, 0, 0xff), IsStroke = true }; for (int i = 0; i < 64; i += 8) { var rect = new SKRect(i, i, 256 - i - 1, 256 - i - 1); canvas.DrawRect(rect, (i % 16 == 0) ? redBrush : blueBrush); } } ``` The example above produces the following: ![SKSurface](~/images/surface-rects.png "SKSurface") ]]> Gets the canvas for this surface which can be used for drawing into it. The canvas for this surface. Gets the GPU recording context associated with this surface. The GPU recording context, or if not GPU-accelerated. Contains the image configuration parameters. Creates a new surface with the specified image parameters. Returns the new surface if it could be created and the configuration is supported, otherwise . This will create a buffer with the parameters specified in . The pixmap. Creates a new surface with the specified pixmap. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing render target. Wraps a pre-existing 3D API render target as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing texture. Wraps a pre-existing 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing OpenGL texture. Wraps a pre-existing OpenGL texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The image configuration parameters. The surface property configuration. Creates a new surface from the specified image parameters and surface properties. Returns the new surface if it could be created and the configuration is supported, otherwise . This will create a buffer with the parameters specified in and the properties specified in . The image configuration parameters. The surface property configuration. Creates a new surface from the specified image parameters and surface properties. Returns the new surface if it could be created and the configuration is supported, otherwise . This will create a buffer with the parameters specified in and the properties specified in . The image configuration parameters. The number of bytes per row in the pixel buffer. Creates a new surface from the specified image parameters. Returns the new surface if it could be created and the configuration is supported, otherwise . This will create a buffer with the parameters specified in . The image configuration parameters. The pointer to an in memory-buffer that can hold the image as specified. Creates a new surface with the specified image parameters using a provided buffer. Returns the new surface if it could be created and the configuration is supported, otherwise . The pixmap. The surface property configuration. Creates a new surface with the specified pixmap and surface properties. Returns the new surface if it could be created and the configuration is supported, otherwise . The pixmap. The surface property configuration. Creates a new surface with the specified pixmap and surface properties. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing render target. The color type to use for the surface. Wraps a pre-existing 3D API render target as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing render target. The surface property configuration. Wraps a pre-existing 3D API render target as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing texture. The color type to use for the surface. Wraps a pre-existing 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing texture. The surface property configuration. Wraps a pre-existing 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing OpenGL texture. The surface property configuration. Wraps a pre-existing OpenGL texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. Whether an allocation should count against a cache budget. The image configuration parameters. Creates a new surface whose contents will be drawn to an offscreen render target, allocated by the surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The GPU recording context. The backend render target to wrap. The color type of the surface. Creates a surface that wraps a GPU backend render target. A new , or on failure. The GPU recording context. The backend texture to wrap. The color type of the surface. Creates a surface that wraps a GPU backend texture. A new , or on failure. The GPU recording context. Whether the surface should count against the GPU resource budget. The image info describing the surface dimensions and format. Creates a GPU-accelerated surface with the specified image info. A new , or on failure. The image configuration parameters. The number of bytes per row in the pixel buffer. The surface property configuration. Creates a new surface from the specified image parameters and surface properties. Returns the new surface if it could be created and the configuration is supported, otherwise . This will create a buffer with the parameters specified in and the properties specified in . The image configuration parameters. The pointer to an in memory-buffer that can hold the image as specified. The surface property configuration. Creates a new surface from the specified image parameters and surface properties. Returns the new surface if it could be created and the configuration is supported, otherwise . This will create a buffer with the parameters specified in and the properties specified in . The image configuration parameters. The pointer to an in memory-buffer that can hold the image as specified. The number of bytes per row in the pixel buffer. Creates a new surface with the specified image parameters using a provided buffer. Returns the new surface if it could be created and the configuration is supported, otherwise . This will create a buffer that will be backend by the in-memory buffer provided in . The graphics context. The description of the existing render target. The origin of the texture. The color type to use for the surface. Wraps a pre-existing backend 3D API render target as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing render target. The color type to use for the surface. The surface property configuration. Wraps a pre-existing backend 3D API render target as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing texture. The origin of the texture. The color type to use for the surface. Wraps a pre-existing backend 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing texture. The color type to use for the surface. The surface property configuration. Wraps a pre-existing backend 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. Whether an allocation should count against a cache budget. The image configuration parameters. The surface property configuration. Creates a new surface whose contents will be drawn to an offscreen render target, allocated by the surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. Whether an allocation should count against a cache budget. The image configuration parameters. The number of samples. Creates a new surface whose contents will be drawn to an offscreen render target, allocated by the surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The GPU recording context. The backend render target to wrap. The origin of the surface texture. The color type of the surface. Creates a surface that wraps a GPU backend render target with the specified origin. A new , or on failure. The GPU recording context. The backend render target to wrap. The color type of the surface. The surface properties. Creates a surface that wraps a GPU backend render target with surface properties. A new , or on failure. The GPU recording context. The backend texture to wrap. The origin of the surface texture. The color type of the surface. Creates a surface that wraps a GPU backend texture with the specified origin. A new , or on failure. The GPU recording context. The backend texture to wrap. The color type of the surface. The surface properties. Creates a surface that wraps a GPU backend texture with surface properties. A new , or on failure. The GPU recording context. Whether the surface should count against the GPU resource budget. The image info describing the surface dimensions and format. The surface properties. Creates a GPU-accelerated surface with the specified image info and properties. A new , or on failure. The GPU recording context. Whether the surface should count against the GPU resource budget. The image info describing the surface dimensions and format. The number of samples for MSAA rendering. Creates a GPU-accelerated surface with multisampling support. A new , or on failure. The image configuration parameters. The pointer to an in memory-buffer that can hold the image as specified. The number of bytes per row in the pixel buffer. The surface property configuration. Creates a new surface from the specified image parameters, the provided buffer and surface properties. Returns the new surface if it could be created and the configuration is supported, otherwise . This will create a buffer that will be backend by the in-memory buffer provided in . The image configuration parameters. The pointer to an in memory-buffer that can hold the image as specified. The number of bytes per row in the pixel buffer. The surface property configuration. Creates a new surface from the specified image parameters, the provided buffer and surface properties. Returns the new surface if it could be created and the configuration is supported, otherwise . This will create a buffer that will be backend by the in-memory buffer provided in . The desired width for the surface. The desired height for the surface. The color type to use for the surface. The transparency mode to use for the surface. Creates a new surface with the specified image parameters. Returns the new surface if it could be created and the configuration is supported, otherwise . This will create a buffer that will be backend by the in-memory buffer. The graphics context. The description of the existing render target. The origin of the texture. The color type to use for the surface. The colorspace to use for the surface. Wraps a pre-existing backend 3D API render target as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing render target. The origin of the texture. The color type to use for the surface. The surface property configuration. Wraps a pre-existing backend 3D API render target as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing texture. The origin of the texture. The color type to use for the surface. The surface property configuration. Wraps a pre-existing backend 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing texture. The origin of the texture. The number of samples per pixel. The color type to use for the surface. Wraps a pre-existing backend 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. Whether an allocation should count against a cache budget. The image configuration parameters. The number of samples per pixel. The origin of the texture. Creates a new surface whose contents will be drawn to an offscreen render target, allocated by the surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. Whether an allocation should count against a cache budget. The image configuration parameters. The number of samples. The surface property configuration. Creates a new surface whose contents will be drawn to an offscreen render target, allocated by the surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. Whether an allocation should count against a cache budget. The image configuration parameters. The number of samples. The surface property configuration. Creates a new surface whose contents will be drawn to an offscreen render target, allocated by the surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The GPU recording context. The backend render target to wrap. The origin of the surface texture. The color type of the surface. The color space of the surface. Creates a surface that wraps a GPU backend render target with color space. A new , or on failure. The GPU recording context. The backend render target to wrap. The origin of the surface texture. The color type of the surface. The surface properties. Creates a surface that wraps a GPU backend render target with origin and properties. A new , or on failure. The GPU recording context. The backend texture to wrap. The origin of the surface texture. The color type of the surface. The surface properties. Creates a surface that wraps a GPU backend texture with origin and properties. A new , or on failure. The GPU recording context. The backend texture to wrap. The origin of the surface texture. The number of samples for MSAA rendering. The color type of the surface. Creates a surface that wraps a GPU backend texture with multisampling. A new , or on failure. The GPU recording context. Whether the surface should count against the GPU resource budget. The image info describing the surface dimensions and format. The number of samples for MSAA rendering. The origin of the surface texture. Creates a GPU-accelerated surface with multisampling and specified origin. A new , or on failure. The GPU recording context. Whether the surface should count against the GPU resource budget. The image info describing the surface dimensions and format. The number of samples for MSAA rendering. The surface properties. Creates a GPU-accelerated surface with multisampling and properties. A new , or on failure. The image configuration parameters. The pointer to an in memory-buffer that can hold the image as specified. The number of bytes per row in the pixel buffer. The delegate to invoke when the surface is about to be disposed. The user data to use when invoking the delegate. Creates a new surface with the specified image parameters using a provided buffer. Returns the new surface if it could be created and the configuration is supported, otherwise . The desired width for the surface. The desired height for the surface. The color type to use for the surface. The transparency mode to use for the surface. The surface property configuration. Creates a new surface with the specified image parameters and surface properties. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing render target. The origin of the texture. The color type to use for the surface. The colorspace to use for the surface. The surface property configuration. Wraps a pre-existing backend 3D API render target as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing texture. The origin of the texture. The number of samples per pixel. The color type to use for the surface. The colorspace to use for the surface. Wraps a pre-existing backend 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing texture. The origin of the texture. The number of samples per pixel. The color type to use for the surface. The surface property configuration. Wraps a pre-existing backend 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The GPU recording context. The backend render target to wrap. The origin of the surface texture. The color type of the surface. The color space of the surface. The surface properties. Creates a surface that wraps a GPU backend render target with color space and properties. A new , or on failure. The GPU recording context. The backend texture to wrap. The origin of the surface texture. The number of samples for MSAA rendering. The color type of the surface. The color space of the surface. Creates a surface that wraps a GPU backend texture with multisampling and color space. A new , or on failure. The GPU recording context. The backend texture to wrap. The origin of the surface texture. The number of samples for MSAA rendering. The color type of the surface. The surface properties. Creates a surface that wraps a GPU backend texture with multisampling and properties. A new , or on failure. The image configuration parameters. The pointer to an in memory-buffer that can hold the image as specified. The number of bytes per row in the pixel buffer. The delegate to invoke when the surface is about to be disposed. The user data to use when invoking the delegate. The surface property configuration. Creates a new surface with the specified image parameters using a provided buffer. Returns the new surface if it could be created and the configuration is supported, otherwise . The desired width for the surface. The desired height for the surface. The color type to use for the surface. The transparency mode to use for the surface. The pointer to an in memory-buffer that can hold the image as specified. The number of bytes per row in the pixel buffer. Creates a new surface with the specified image parameters using a provided buffer. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing texture. The origin of the texture. The number of samples per pixel. The color type to use for the surface. The colorspace to use for the surface. The surface property configuration. Wraps a pre-existing backend 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. Whether an allocation should count against a cache budget. The image configuration parameters. The number of samples per pixel. The origin of the texture. The surface property configuration. A hint that the surface will host mip map images. Creates a new surface whose contents will be drawn to an offscreen render target, allocated by the surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The GPU recording context. The backend texture to wrap. The origin of the surface texture. The number of samples for MSAA rendering. The color type of the surface. The color space of the surface. The surface properties. Creates a surface that wraps a GPU backend texture with all options. A new , or on failure. The GPU recording context. Whether the surface should count against the GPU resource budget. The image info describing the surface dimensions and format. The number of samples for MSAA rendering. The origin of the surface texture. The surface properties. Whether to create mipmaps. Creates a GPU-accelerated surface with all options including mipmap support. A new , or on failure. The desired width for the surface. The desired height for the surface. The color type to use for the surface. The transparency mode to use for the surface. The pointer to an in memory-buffer that can hold the image as specified. The number of bytes per row in the pixel buffer. The surface property configuration. Creates a new surface with the specified image parameters using a provided buffer and surface properties. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing texture. Wraps a pre-existing backend 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The flag must be set on for this to succeed. The texture must remain valid for the lifetime of the surface. The graphics context. The description of the existing OpenGL texture. Wraps a pre-existing backend OpenGL texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The flag must be set on for this to succeed. The texture must remain valid for the lifetime of the surface. The graphics context. The description of the existing texture. The color type to use for the surface. Wraps a pre-existing backend 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing texture. The surface property configuration. Wraps a pre-existing backend 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The flag must be set on for this to succeed. The texture must remain valid for the lifetime of the surface. The graphics context. The description of the existing OpenGL texture. The surface property configuration. Wraps a pre-existing backend OpenGL texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The flag must be set on for this to succeed. The texture must remain valid for the lifetime of the surface. The graphics context. The description of the existing texture. The origin of the texture. The color type to use for the surface. Wraps a pre-existing backend 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing texture. The color type to use for the surface. The surface property configuration. Wraps a pre-existing backend 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing texture. The origin of the texture. The color type to use for the surface. The surface property configuration. Wraps a pre-existing backend 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing texture. The origin of the texture. The number of samples per pixel. The color type to use for the surface. Wraps a pre-existing backend 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing texture. The origin of the texture. The number of samples per pixel. The color type to use for the surface. The colorspace to use for the surface. Wraps a pre-existing backend 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing texture. The origin of the texture. The number of samples per pixel. The color type to use for the surface. The surface property configuration. Wraps a pre-existing backend 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The graphics context. The description of the existing texture. The origin of the texture. The number of samples per pixel. The color type to use for the surface. The colorspace to use for the surface. The surface property configuration. Wraps a pre-existing backend 3D API texture as a surface. Returns the new surface if it could be created and the configuration is supported, otherwise . The desired width for the surface. The desired height for the surface. Creates a new surface without any backing pixels. Returns the new surface if it could be created, otherwise . Drawing to the returned from has no effect. Calling on the returned returns . to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. The canvas to draw on. The destination x-coordinate for the surface. The destination y-coordinate for the surface. The paint to use when drawing the surface, or . Draws the current surface on the specified canvas. Ensures all pending draw operations are submitted to the GPU. Whether to submit the commands to the GPU. Whether to wait for the GPU to finish processing. Ensures all pending draw operations are submitted to the GPU with specified options. Returns the pixels, if they are available. Returns the pixels, if they are available, otherwise . If the pixels are available, then the surface is only valid until the surface changes in any way, in which case the pixmap becomes invalid. The pixmap to receive the pixel information. Returns the pixmap of the surface. Returns on success, or if the surface does not have access to pixel data. The image information describing the destination pixel buffer. The pixel buffer to read the pixel data into. The number of bytes in each row of in the destination buffer. The source x-coordinate to start reading from. The source y-coordinate to start reading from. Copies the pixels from the surface into the specified buffer. Returns if the pixels were read, or if there was an error. This method may return if the source rectangle [, , dstInfo.Width, dstInfo.Height] does not intersect the surface, or if the color type/alpha type could not be converted to the destination types. Takes a snapshot of the surface and returns it as an image. An that contains a snapshot of the current image. You can use this method to take an snapshot of the current state of the surface. The bounds of the area to capture. Creates an image from the specified area of the surface. A new containing the captured area. Gets the surface property configuration. The surface property configuration. Gets the surface property configuration. The surface property configuration. Describes properties and constraints of a given . The rendering engine can parse these during drawing, and can sometimes optimize its performance (e.g. disabling an expensive feature). The description of how the LCD strips are arranged for each pixel. Creates a new instance. The properties of the surface. Creates a new instance. The flags to use when creating the surface. The LCD geometry of each pixel on the surface. Creates a new instance. The flags to use when creating the surface. The LCD geometry of each pixel on the surface. Creates a new instance. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. Gets or sets the flags. The surface property flags. Gets a value indicating whether the surface should use device independent fonts. if the surface should use device independent fonts; otherwise, . Gets or sets the LCD geometry of each pixel on the surface. The LCD geometry of each pixel on the surface. Describes properties and constraints of a given . The rendering engine can parse these during drawing, and can sometimes optimize its performance (e.g. disabling an expensive feature). The to compare with this instance. Determines whether the specified is equal to this instance. if the specified object is equal to this instance; otherwise, . The object to compare with this instance. Determines whether the specified object is equal to this instance. if the specified object is equal to this instance; otherwise, . Gets or sets the flags. The surface property flags. Returns a hash code for this instance. A hash code for this instance. The first to compare. The second to compare. Determines whether two instances are equal. if the two instances are equal; otherwise, . The first to compare. The second to compare. Determines whether two instances are not equal. if the two instances are not equal; otherwise, . Gets or sets the LCD geometry of each pixel on the surface. The pixel geometry of the surface. Flags for the . Use default properties. Use device independent fonts. The memory address of the pixels being released. The user data that was provided when creating the surface. The delegate that is used when releasing the memory for a surface. A specialized which generates SVG commands from its draw calls. The canvas may buffer some drawing calls, so the output is not guaranteed to be valid or complete until the canvas instance is deleted. The initial SVG viewport (viewBox attribute on the root SVG element). The SkiaSharp stream to write the SVG data to. Creates a new which generates SVG commands and writes them to the specified stream. Returns the new SVG canvas. The canvas may buffer some drawing calls, so the output is not guaranteed to be valid or complete until the canvas instance is disposed. The stream must remain valid during the lifetime of the returned canvas. The initial SVG viewport (viewBox attribute on the root SVG element). The writer to receive the XML data. Creates a new instance of which writes to the specified XML writer. Returns the new canvas. Ownership of the XML writer is not transfered to the canvas, but it must stay valid during the lifetime of the returned canvas. The initial SVG viewport (viewBox attribute on the root SVG element). The .NET stream to write the SVG data to. Creates a new which generates SVG commands and writes them to the specified .NET stream. Returns the new SVG canvas. The canvas may buffer some drawing calls, so the output is not guaranteed to be valid or complete until the canvas instance is disposed. The stream must remain valid during the lifetime of the returned canvas. Various utility methods for when swizzling pixels. The pixel buffer to swizzle. Swizzles the byte order of 32-bit pixels, swapping R and B. (RGBA <-> BGRA) The pixel buffer to swizzle. The size of the pixel buffers. Swizzles the byte order of 32-bit pixels, swapping R and B. (RGBA <-> BGRA) The pixel buffer to swizzle. The size of the pixel buffers. Swizzles the byte order of 32-bit pixels, swapping R and B. (RGBA <-> BGRA) The destination pixel buffer. The source pixel buffer. The size of the pixel buffers. Swizzles the byte order of 32-bit pixels, swapping R and B. (RGBA <-> BGRA) The destination pixel buffer. The source pixel buffer. The size of the pixel buffers. Swizzles the byte order of 32-bit pixels, swapping R and B. (RGBA <-> BGRA) Possible text alignment values. Center the text. Left align the text. Right align the text. Represents multiple text runs of glyphs and positions. Gets the conservative blob bounding box. The bounding rectangle of the text blob. The upper Y bound of the horizontal band. The lower Y bound of the horizontal band. Optional paint used to modify the text blob's intercepts. Returns the number of intervals that intersect the specified bounds. The number of intercepts. The text to shape and render. The font used to shape the text. The origin point for the text blob. Creates a new text blob from the specified text. A new text blob, or if creation fails. The text to shape and render. The font used to shape the text. The origin point for the text blob. Creates a new text blob from the specified text. A new text blob, or if creation fails. The encoded text bytes to shape and render. The text encoding of the input text. The font used to shape the text. The origin point for the text blob. Creates a new text blob from the specified encoded text. A new text blob, or if creation fails. A pointer to the encoded text data. The length of the text data in bytes. The text encoding of the input text. The font used to shape the text. The origin point for the text blob. Creates a new text blob from the specified encoded text pointer. A new text blob, or if creation fails. The text to shape and render. The font used to shape the text. The horizontal X positions for each glyph. The vertical Y position for the text baseline. Creates a new horizontally-positioned text blob. A new text blob, or if creation fails. The text to shape and render. The font used to shape the text. The horizontal X positions for each glyph. The vertical Y position for the text baseline. Creates a new horizontally-positioned text blob. A new text blob, or if creation fails. The encoded text bytes to shape and render. The text encoding of the input text. The font used to shape the text. The horizontal X positions for each glyph. The vertical Y position for the text baseline. Creates a new horizontally-positioned text blob from encoded text. A new text blob, or if creation fails. A pointer to the encoded text data. The length of the text data in bytes. The text encoding of the input text. The font used to shape the text. The horizontal X positions for each glyph. The vertical Y position for the text baseline. Creates a new horizontally-positioned text blob from encoded text pointer. A new text blob, or if creation fails. The text to shape and render. The font used to shape the text. The path along which the text is positioned. The alignment of the text along the path. The starting point along the path. Creates a new text blob positioned along a path. A new text blob, or if creation fails. The text to shape and render. The font used to shape the text. The path along which the text is positioned. The alignment of the text along the path. The starting point along the path. Creates a new text blob positioned along a path. A new text blob, or if creation fails. The encoded text bytes to shape and render. The text encoding of the input text. The font used to shape the text. The path along which the text is positioned. The alignment of the text along the path. The starting point along the path. Creates a new text blob positioned along a path from encoded text. A new text blob, or if creation fails. A pointer to the encoded text data. The length of the text data in bytes. The text encoding of the input text. The font used to shape the text. The path along which the text is positioned. The alignment of the text along the path. The starting point along the path. Creates a new text blob positioned along a path from encoded text pointer. A new text blob, or if creation fails. The text to shape and render. The font used to shape the text. The positions for each glyph. Creates a new fully-positioned text blob. A new text blob, or if creation fails. The text to shape and render. The font used to shape the text. The positions for each glyph. Creates a new fully-positioned text blob. A new text blob, or if creation fails. The encoded text bytes to shape and render. The text encoding of the input text. The font used to shape the text. The positions for each glyph. Creates a new fully-positioned text blob from encoded text. A new text blob, or if creation fails. A pointer to the encoded text data. The length of the text data in bytes. The text encoding of the input text. The font used to shape the text. The positions for each glyph. Creates a new fully-positioned text blob from encoded text pointer. A new text blob, or if creation fails. The text to shape and render. The font used to shape the text. The rotation-scale matrices for each glyph. Creates a new text blob with rotation and scale transformations for each glyph. A new text blob, or if creation fails. The text to shape and render. The font used to shape the text. The rotation-scale matrices for each glyph. Creates a new text blob with rotation and scale transformations for each glyph. A new text blob, or if creation fails. The encoded text bytes to shape and render. The text encoding of the input text. The font used to shape the text. The rotation-scale matrices for each glyph. Creates a new text blob with rotation and scale transformations from encoded text. A new text blob, or if creation fails. A pointer to the encoded text data. The length of the text data in bytes. The text encoding of the input text. The font used to shape the text. The rotation-scale matrices for each glyph. Creates a new text blob with rotation and scale transformations from encoded text pointer. A new text blob, or if creation fails. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. The upper Y bound of the horizontal band. The lower Y bound of the horizontal band. Optional paint used to modify the text blob's intercepts. Returns the intervals that intersect the specified bounds. An array of intercept pairs (start, end) for the horizontal band. The upper Y bound of the horizontal band. The lower Y bound of the horizontal band. The span to receive the intercept pairs (start, end). Optional paint used to modify the text blob's intercepts. Fills the intervals span with the intercepts that intersect the specified bounds. Gets the unique, non-zero value representing the text blob. The unique identifier for this text blob. A builder object that is used to create a . Creates a new instance of . The font to be used for this run. The vertical offset within the blob. The glyphs for this run. The horizontal positions of each glyph. Adds a new horizontally-positioned run to the builder. The number of positions must be the same as the number of glyphs. The font to be used for this run. The vertical offset within the blob. The glyphs for this run. The horizontal positions of each glyph. Adds a new horizontally-positioned run to the builder. The number of positions must be the same as the number of glyphs. The glyph IDs for this run. The font used for this run. The horizontal X positions for each glyph. The vertical Y position for the text baseline. Adds a new horizontally-positioned run to the builder. The font to be used for this run. The vertical offset within the blob. The glyphs for this run. The horizontal positions of each glyph. The bounding box of the run, used when computing the blob bounds to avoid re-measuring. Adds a new horizontally-positioned run to the builder. The number of positions must be the same as the number of glyphs. The font to be used for this run. The vertical offset within the blob. The glyphs for this run. The horizontal positions of each glyph. The bounding box of the run, used when computing the blob bounds to avoid re-measuring. Adds a new horizontally-positioned run to the builder. The number of positions must be the same as the number of glyphs. The font to be used for this run. The vertical offset within the blob. The glyphs for this run. The horizontal positions of each glyph. The chacracter information for this run. The glyph's cluster information. Adds a new horizontally-positioned run to the builder. The number of positions, characters and clusters must be the same as the number of glyphs. The font to be used for this run. The vertical offset within the blob. The glyphs for this run. The horizontal positions of each glyph. The UTF-8 chacracter information for this run. The glyph's cluster information. Adds a new horizontally-positioned run to the builder. The number of positions, characters and clusters must be the same as the number of glyphs. The font to be used for this run. The vertical offset within the blob. The glyphs for this run. The horizontal positions of each glyph. The chacracter information for this run. The glyph's cluster information. Adds a new horizontally-positioned run to the builder. The number of positions, characters and clusters must be the same as the number of glyphs. The font to be used for this run. The vertical offset within the blob. The glyphs for this run. The horizontal positions of each glyph. The UTF-8 chacracter information for this run. The glyph's cluster information. The bounding box of the run, used when computing the blob bounds to avoid re-measuring. Adds a new horizontally-positioned run to the builder. The number of positions, characters and clusters must be the same as the number of glyphs. The font to be used for this run. The vertical offset within the blob. The glyphs for this run. The horizontal positions of each glyph. The UTF-8 chacracter information for this run. The glyph's cluster information. The bounding box of the run, used when computing the blob bounds to avoid re-measuring. Adds a new horizontally-positioned run to the builder. The number of positions, characters and clusters must be the same as the number of glyphs. The font to be used for this run. The vertical offset within the blob. The glyphs for this run. The horizontal positions of each glyph. The chacracter information for this run. The glyph's cluster information. The bounding box of the run, used when computing the blob bounds to avoid re-measuring. Adds a new horizontally-positioned run to the builder. The number of positions, characters and clusters must be the same as the number of glyphs. The glyph IDs for this run. The font used for this run. The widths for each glyph. The offsets for each glyph. The path along which glyphs are positioned. The text alignment along the path. Adds a new run positioned along a path. The font to be used for this run. The glyphs for this run. The positions of each glyph. Adds a new fully-positioned run to the builder. The number of positions must be the same as the number of glyphs. The font to be used for this run. The glyphs for this run. The positions of each glyph. Adds a new fully-positioned run to the builder. The number of positions must be the same as the number of glyphs. The glyph IDs for this run. The font used for this run. The positions for each glyph. Adds a new fully-positioned run to the builder. The font to be used for this run. The glyphs for this run. The positions of each glyph. The bounding box of the run, used when computing the blob bounds to avoid re-measuring. Adds a new fully-positioned run to the builder. The number of positions must be the same as the number of glyphs. The font to be used for this run. The glyphs for this run. The positions of each glyph. The bounding box of the run, used when computing the blob bounds to avoid re-measuring. Adds a new fully-positioned run to the builder. The number of positions must be the same as the number of glyphs. The font to be used for this run. The glyphs for this run. The positions of each glyph. The chacracter information for this run. The glyph's cluster information. Adds a new fully-positioned run to the builder. The number of positions, characters and clusters must be the same as the number of glyphs. The font to be used for this run. The glyphs for this run. The positions of each glyph. The UTF-8 chacracter information for this run. The glyph's cluster information. Adds a new fully-positioned run to the builder. The number of positions, characters and clusters must be the same as the number of glyphs. The font to be used for this run. The glyphs for this run. The positions of each glyph. The chacracter information for this run. The glyph's cluster information. Adds a new fully-positioned run to the builder. The number of positions, characters and clusters must be the same as the number of glyphs. The font to be used for this run. The glyphs for this run. The positions of each glyph. The UTF-8 chacracter information for this run. The glyph's cluster information. The bounding box of the run, used when computing the blob bounds to avoid re-measuring. Adds a new fully-positioned run to the builder. The number of positions, characters and clusters must be the same as the number of glyphs. The font to be used for this run. The glyphs for this run. The positions of each glyph. The UTF-8 chacracter information for this run. The glyph's cluster information. The bounding box of the run, used when computing the blob bounds to avoid re-measuring. Adds a new fully-positioned run to the builder. The number of positions, characters and clusters must be the same as the number of glyphs. The font to be used for this run. The glyphs for this run. The positions of each glyph. The chacracter information for this run. The glyph's cluster information. The bounding box of the run, used when computing the blob bounds to avoid re-measuring. Adds a new fully-positioned run to the builder. The number of positions, characters and clusters must be the same as the number of glyphs. The glyph IDs for this run. The font used for this run. The positions for each glyph. Adds a new run with rotation and scale transformations. The glyph IDs for this run. The font used for this run. The origin point for the run. Adds a new run to the builder at the specified origin. The font to be used for this run. The x-position of the origin of this run. The y-position of the origin of this run. The glyphs for this run. Adds a new deafult-positioned run to the builder. The font to be used for this run. The x-position of the origin of this run. The y-position of the origin of this run. The glyphs for this run. Adds a new deafult-positioned run to the builder. The font to be used for this run. The x-position of the origin of this run. The y-position of the origin of this run. The glyphs for this run. The bounding box of the run, used when computing the blob bounds to avoid re-measuring. Adds a new deafult-positioned run to the builder. The font to be used for this run. The x-position of the origin of this run. The y-position of the origin of this run. The glyphs for this run. The bounding box of the run, used when computing the blob bounds to avoid re-measuring. Adds a new deafult-positioned run to the builder. The font to be used for this run. The x-position of the origin of this run. The y-position of the origin of this run. The glyphs for this run. The UTF-8 chacracter information for this run. The glyph's cluster information. Adds a new deafult-positioned run to the builder. The number of characters and clusters must be the same as the number of glyphs. The font to be used for this run. The x-position of the origin of this run. The y-position of the origin of this run. The glyphs for this run. The UTF-8 chacracter information for this run. The glyph's cluster information. Adds a new deafult-positioned run to the builder. The number of characters and clusters must be the same as the number of glyphs. The font to be used for this run. The x-position of the origin of this run. The y-position of the origin of this run. The glyphs for this run. The chacracter information for this run. The glyph's cluster information. Adds a new deafult-positioned run to the builder. The number of characters and clusters must be the same as the number of glyphs. The font to be used for this run. The x-position of the origin of this run. The y-position of the origin of this run. The glyphs for this run. The UTF-8 chacracter information for this run. The glyph's cluster information. The bounding box of the run, used when computing the blob bounds to avoid re-measuring. Adds a new deafult-positioned run to the builder. The number of characters and clusters must be the same as the number of glyphs. The font to be used for this run. The x-position of the origin of this run. The y-position of the origin of this run. The glyphs for this run. The UTF-8 chacracter information for this run. The glyph's cluster information. The bounding box of the run, used when computing the blob bounds to avoid re-measuring. Adds a new deafult-positioned run to the builder. The number of characters and clusters must be the same as the number of glyphs. The font to be used for this run. The x-position of the origin of this run. The y-position of the origin of this run. The glyphs for this run. The chacracter information for this run. The glyph's cluster information. The bounding box of the run, used when computing the blob bounds to avoid re-measuring. Adds a new deafult-positioned run to the builder. The number of characters and clusters must be the same as the number of glyphs. The font used for this run. The number of glyphs to allocate in the buffer. The vertical Y position for the text baseline. Allocates a buffer for a horizontally-positioned run. A run buffer for writing glyph and position data. The font used for this run. The number of glyphs to allocate in the buffer. The vertical Y position for the text baseline. Optional bounds for the run. Allocates a buffer for a horizontally-positioned run. A run buffer for writing glyph and position data. The font used for this run. The number of glyphs to allocate in the buffer. The vertical Y position for the text baseline. The number of bytes to allocate for text storage. Allocates a buffer for a horizontally-positioned run with text data. A run buffer for writing glyph, position, and text data. The font used for this run. The number of glyphs to allocate in the buffer. The vertical Y position for the text baseline. Optional bounds for the run. Allocates a buffer for a horizontally-positioned run. A run buffer for writing glyph and position data. The font used for this run. The number of glyphs to allocate in the buffer. The vertical Y position for the text baseline. The number of bytes to allocate for text storage. Optional bounds for the run. Allocates a buffer for a horizontally-positioned text run with cluster data. A text run buffer for writing glyph, position, cluster, and text data. The font used for this run. The number of glyphs to allocate in the buffer. The vertical Y position for the text baseline. The number of bytes to allocate for text storage. Optional bounds for the run. Allocates a buffer for a fully-positioned run. A run buffer for writing glyph and position data. The font used for this run. The number of glyphs to allocate in the buffer. Allocates a buffer for a fully-positioned run. A run buffer for writing glyph and position data. The font used for this run. The number of glyphs to allocate in the buffer. Optional bounds for the run. Allocates a buffer for a fully-positioned run. A run buffer for writing glyph and position data. The font used for this run. The number of glyphs to allocate in the buffer. The number of bytes to allocate for text storage. Allocates a buffer for a positioned run with text storage. A run buffer for writing glyph and position data. The font used for this run. The number of glyphs to allocate in the buffer. Optional bounds for the run. Allocates a buffer for a fully-positioned run. A run buffer for writing glyph and position data. The font used for this run. The number of glyphs to allocate in the buffer. The number of bytes to allocate for text storage. Optional bounds for the run. Allocates a buffer for a fully-positioned text run with cluster data. A text run buffer for writing glyph, position, cluster, and text data. The font used for this run. The number of glyphs to allocate in the buffer. The number of bytes to allocate for text storage. Optional bounds for the run. Allocates a buffer for a positioned run with text storage. A run buffer for writing glyph and position data. The font used for this run. The number of glyphs to allocate in the buffer. The vertical Y position for the text baseline. Optional bounds for the run. Allocates a raw buffer for a horizontal run. A raw run buffer for writing glyph and X position data. The font used for this run. The number of glyphs to allocate in the buffer. The vertical Y position for the text baseline. The number of bytes to allocate for text storage. Optional bounds for the run. Allocates a raw buffer for a horizontally-positioned run with text storage. A raw buffer containing glyph IDs, horizontal positions, and text data. The font used for this run. The number of glyphs to allocate in the buffer. Optional bounds for the run. Allocates a raw buffer for a positioned run. A raw run buffer for writing glyph and position data. The font used for this run. The number of glyphs to allocate in the buffer. The number of bytes to allocate for text storage. Optional bounds for the run. Allocates a raw buffer for a positioned run with text storage. A raw run buffer for writing glyph and position data. The font used for this run. The number of glyphs to allocate in the buffer. Optional bounds for the run. Allocates a raw buffer for a rotation-scale run. A raw run buffer for writing glyph and rotation-scale matrix data. The font used for this run. The number of glyphs to allocate in the buffer. The number of bytes to allocate for text storage. Optional bounds for the run. Allocates a raw buffer for a rotation-scale run with text storage. A raw run buffer for writing glyph and rotation-scale matrix data. The font used for this run. The number of glyphs to allocate in the buffer. The horizontal X position for the origin. The vertical Y position for the text baseline. Optional bounds for the run. Allocates a raw buffer for a run at the specified position. A raw run buffer for writing glyph data. The font used for this run. The number of glyphs to allocate in the buffer. The horizontal X position for the origin. The vertical Y position for the text baseline. The number of bytes to allocate for text storage. Optional bounds for the run. Allocates a buffer for a rotation-scale run. A run buffer for writing glyph and rotation-scale matrix data. The font used for this run. The number of glyphs to allocate in the buffer. Allocates a buffer for a rotation-scale run. A run buffer for writing glyph and rotation-scale matrix data. The font used for this run. The number of glyphs to allocate in the buffer. Optional bounds for the run. Allocates a buffer for a rotation-scale text run with cluster data. A text run buffer for writing glyph, rotation-scale, cluster, and text data. The font used for this run. The number of glyphs to allocate in the buffer. The number of bytes to allocate for text storage. Optional bounds for the run. Allocates a buffer for a positioned run with text storage. A run buffer for writing glyph and position data. The font used for this run. The number of glyphs to allocate in the buffer. The horizontal X position for the origin. The vertical Y position for the text baseline. Allocates a buffer for a horizontally-positioned run. A run buffer for writing glyph and position data. The font used for this run. The number of glyphs to allocate in the buffer. The horizontal X position for the origin. The vertical Y position for the text baseline. Optional bounds for the run. Allocates a buffer for a run at a fixed origin. A run buffer for writing glyph data. The font used for this run. The number of glyphs to allocate in the buffer. The horizontal X position for the origin. The vertical Y position for the text baseline. The number of bytes to allocate for text storage. Allocates a buffer for a run with text storage at the specified position. A run buffer for writing glyph data. The font used for this run. The number of glyphs to allocate in the buffer. The horizontal X position for the origin. The vertical Y position for the text baseline. Optional bounds for the run. Allocates a buffer for a run at a fixed origin. A run buffer for writing glyph data. The font used for this run. The number of glyphs to allocate in the buffer. The horizontal X position for the origin. The vertical Y position for the text baseline. The number of bytes to allocate for text storage. Optional bounds for the run. Allocates a buffer for a text run at a fixed origin with cluster data. A text run buffer for writing glyph, cluster, and text data. The font used for this run. The number of glyphs to allocate in the buffer. The horizontal X position for the origin. The vertical Y position for the text baseline. The number of bytes to allocate for text storage. Optional bounds for the run. Allocates a buffer for a run with text storage at the specified position. A run buffer for writing glyph data. Create the from all the added runs. Returns the new if there were runs, otherwise . to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. Possible text encodings. The buffer contains glyph ids. The buffer contains UTF-16 encoded characters. The buffer contains UTF-32 encoded characters. The buffer contains UTF-8 encoded characters. A buffer for storing a text run with glyph IDs, positions, clusters, and text data. Gets the span of cluster indices that map glyphs to their source text positions. A span containing the cluster indices. The cluster indices to set. Sets the cluster indices that map glyphs to their source text positions. The UTF-8 encoded text bytes to set. Sets the source text bytes for the run. Gets the span of UTF-8 encoded source text bytes for the run. A span containing the UTF-8 text bytes. Gets the size of the text buffer in bytes. The size of the text buffer. An abstract base class for receiving memory tracing callbacks from Skia. Whether to include detailed memory information. Whether to include wrapped objects in the dump. Creates a new instance of . Releases the native resources associated with this object. The name of the memory dump entry. The name of the numeric value. The units of measurement for the value. The numeric value. Called when a numeric value is being dumped. The name of the memory dump entry. The name of the string value. The string value. Called when a string value is being dumped. Various flags to be used with . Premultiplies, unpremultiplies, and blends ignoring the transfer function. Pixels are treated as if they are linear, regardless of their transfer function encoding. Converts to a linear space before premultiplying, unpremultiplying, or blending. Represents the type of trimming to perform. Remove the path between the start and stop, preserving [0, start] and [stop, 1]. Trim the path around the start and stop, preserving [start, stop]. Represents a specific typeface and intrinsic style of a font. , , , and to specify how text appears when drawn (and measured). Typeface objects are immutable, and so they can be shared between threads. ]]> The string containing characters. Destination for the corresponding glyph IDs for each character. Retrieve the corresponding glyph IDs of a string of characters. The number of number of continuous non-zero glyph IDs computed from the beginning of the character codes. The buffer of character codes. The length of the buffer. How the character codes are encoded. Destination for the corresponding glyph IDs for each character. Retrieve the corresponding glyph IDs of a buffer containing character codes, of the specified encoding. The number of number of continuous non-zero glyph IDs computed from the beginning of the character codes. The Unicode codepoint to check. Determines whether this typeface contains a glyph for the specified Unicode codepoint. Returns if this typeface contains a glyph for the codepoint; otherwise, . The text to check. Determines whether this typeface contains glyphs for all characters in the specified text. Returns if this typeface contains glyphs for all characters; otherwise, . The Unicode codepoints to check. Determines whether this typeface contains glyphs for all the specified Unicode codepoints. Returns if this typeface contains glyphs for all codepoints; otherwise, . The text to check. Determines whether this typeface contains glyphs for all characters in the specified text. Returns if this typeface contains glyphs for all characters; otherwise, . The buffer containing character codes. The encoding of the character codes. Determines whether this typeface contains glyphs for all characters in the specified buffer. Returns if this typeface contains glyphs for all characters; otherwise, . The pointer to the buffer containing character codes. The length of the buffer in bytes. The encoding of the character codes. Determines whether this typeface contains glyphs for all characters in the specified buffer. Returns if this typeface contains glyphs for all characters; otherwise, . The text containing characters. Returns the number of glyphs in the text. The number of continuous non-zero glyph IDs computed from the beginning of the text. The string containing characters. Returns the number of glyphs in the string. The number of number of continuous non-zero glyph IDs computed from the beginning of string. The buffer containing character codes. How the character are encoded. Returns the number of glyphs in the buffer. The number of number of continuous non-zero glyph IDs computed from the beginning of the buffer. The buffer containing character codes. The encoding of the character codes. Returns the number of glyphs in the buffer. The number of continuous non-zero glyph IDs computed from the beginning of the buffer. The buffer containing character codes. How the character are encoded. Returns the number of glyphs in the buffer. The number of number of continuous non-zero glyph IDs computed from the beginning of the buffer. The buffer containing character codes. The encoding of the character codes. Returns the number of glyphs in the buffer. The number of continuous non-zero glyph IDs computed from the beginning of the buffer. The text containing characters. How the characters are to be encoded. Returns the number of glyphs on the string. The number of number of continuous non-zero glyph IDs computed from the beginning of chars. The buffer of character codes. The length of the buffer. How the characters are encoded. Returns the number of glyphs on the specified buffer with the specified length and encoding. The number of number of continuous non-zero glyph IDs computed from the beginning of chars. The pointer to the buffer containing character codes. The length of the buffer in bytes. The encoding of the character codes. Returns the number of glyphs in the specified buffer. The number of continuous non-zero glyph IDs computed from the beginning of the buffer. Creates a new which is the default, Normal typeface. The default typeface. This will never be . Gets the default, Normal typeface. The default typeface. This will never be . to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Gets the family name for the typeface. The family name for the typeface. The family name will always be returned encoded as UTF8, but the language of the name is whatever the host platform chooses. Gets the font slant for the typeface. One of the enumeration values that specifies the font slant. This may be one of the values in . Gets the font style for the typeface. The font style for the typeface. Gets the font weight for the typeface. The font weight for the typeface. This may be one of the values in . Gets the font width for the typeface. The font width for the typeface. This may be one of the values in . The input data. The font face index. Returns a new typeface given data. Returns a new typeface, or if the file does not exist, or is not a valid font file. The name of the font family. May be . Returns a new instance to a typeface that most closely matches the requested family name and style. Returns to the closest-matching typeface. The name of the font family. May be . The style (normal, bold, italic) of the typeface. Returns a new instance to a typeface that most closely matches the requested family name and style. Returns to the closest-matching typeface. The name of the font family. May be . The style (normal, bold, italic) of the typeface. Returns a new instance to a typeface that most closely matches the requested family name and style. Returns to the closest-matching typeface. The name of the font family. May be . The weight of the typeface. The width of the typeface. The slant of the typeface. Returns a new instance to a typeface that most closely matches the requested family name and style. Returns to the closest-matching typeface. The name of the font family. May be . The weight of the typeface. The width of the typeface. The slant of the typeface. Returns a new instance to a typeface that most closely matches the requested family name and style. Returns to the closest-matching typeface. The path of the file. The font face index. Returns a new typeface given a file. Returns a new typeface, or if the file does not exist, or is not a valid font file. The input stream. The font face index. Returns a new typeface given a stream. Ownership of the stream is transferred, so the caller must not reference it again. Returns a new typeface, or if the file does not exist, or is not a valid font file. The input stream. The font face index. Returns a new typeface given a stream. Ownership of the stream is transferred, so the caller must not reference it again. Returns a new typeface, or if the file does not exist, or is not a valid font file. The typeface to use for the family name. The style (normal, bold, italic) of the type face. Returns a new reference to the typeface that most closely matches the requested typeface and specified style. Returns to the closest-matching typeface. The Unicode codepoint. Returns the glyph ID for the specified Unicode codepoint. The glyph ID, or 0 if the typeface does not contain a glyph for this codepoint. The text containing characters. Returns the glyph IDs for the specified text. The corresponding glyph IDs for each character. The Unicode codepoints. Returns the glyph IDs for the specified Unicode codepoints. The corresponding glyph IDs for each codepoint. The string of characters. Retrieve the corresponding glyph IDs of a string of characters. Returns the corresponding glyph IDs for each character. The buffer of character codes. How the character codes are encoded. Retrieve the corresponding glyph IDs of a buffer containing character codes, of the specified encoding. Returns the corresponding glyph IDs for each character. The buffer of character codes. How the character codes are encoded. Retrieve the corresponding glyph IDs of a buffer containing character codes, of the specified encoding. Returns the corresponding glyph IDs for each character. The buffer containing character codes. The encoding of the character codes. Returns the glyph IDs for the specified buffer of character codes. The corresponding glyph IDs for each character. The string of characters. How the characters are to be encoded. Retrieve the corresponding glyph IDs of a string of characters, of the specified encoding. Returns the corresponding glyph IDs for each character. The string of characters. Destination for the corresponding glyph IDs for each character. Retrieve the corresponding glyph IDs of a string of characters. The number of number of continuous non-zero glyph IDs computed from the beginning of the character codes. The buffer of character codes. How the character codes are encoded. Destination for the corresponding glyph IDs for each character. Retrieve the corresponding glyph IDs of a buffer containing character codes, of the specified encoding. The number of number of continuous non-zero glyph IDs computed from the beginning of the character codes. The buffer of character codes. The length of the buffer. How the character codes are encoded. Retrieve the corresponding glyph IDs of a buffer containing character codes, of the specified encoding. Returns the corresponding glyph IDs for each character. The pointer to the buffer containing character codes. The length of the buffer in bytes. The encoding of the character codes. Returns the glyph IDs for the specified buffer of character codes. The corresponding glyph IDs for each character. The buffer of character codes. How the character codes are encoded. Destination for the corresponding glyph IDs for each character. Retrieve the corresponding glyph IDs of a buffer containing character codes, of the specified encoding. The number of number of continuous non-zero glyph IDs computed from the beginning of the character codes. The string of characters. How the characters are to be encoded. Destination for the corresponding glyph IDs for each character. Retrieve the corresponding glyph IDs of a string of characters. The number of number of continuous non-zero glyph IDs computed from the beginning of the character codes. The buffer of character codes. The length of the buffer. How the character codes are encoded. Destination for the corresponding glyph IDs for each character. Retrieve the corresponding glyph IDs of a buffer containing character codes, of the specified encoding. The number of number of continuous non-zero glyph IDs computed from the beginning of the character codes. The glyph IDs to get kerning adjustments for. Returns kerning pair adjustments for the specified glyphs. An array of kerning adjustments, one less than the number of glyphs. The glyph IDs to get kerning adjustments for. The destination span for the kerning adjustments. Gets the kerning pair adjustments for the specified glyphs. Returns if kerning data was found; otherwise, . The table tag to get the data for. Returns the contents of the table data for the specified tag. Returns the contents, if it exists, otherwise throws. The tag to retrieve. Returns the size of the data for the specified tag. Returns the size of the data. Returns the list of table tags in the font. An array of table tags. Gets the number of glyphs in this typeface. The total number of glyphs in the typeface. Gets a value indicating whether this typeface supports retrieving kerning pair adjustments. Returns if kerning pair adjustments can be retrieved; otherwise, . Gets a value indicating whether the typeface claims to be a bold typeface. if the typeface is bold; otherwise, . . ]]> Gets a value indicating whether the typeface claims to be fixed-pitch. if the typeface is fixed-pitch; otherwise, . Gets a value indicating whether the typeface claims to be slanted. if the typeface is italic or oblique; otherwise, . or . ]]> Returns a stream for the contents of the font data. Returns a stream for the contents of the font data, or on failure. The caller is responsible for deleting the stream. The TrueTypeCollection index of this typeface within the stream, or 0 if the stream is not a collection. Returns a stream for the contents of the font data. Returns a stream for the contents of the font data, or on failure. The caller is responsible for deleting the stream. Gets the PostScript name of this typeface. The PostScript name, or if the typeface does not have one. Gets the typeface's intrinsic style attributes. One of the enumeration values that specifies the typeface style. Gets the number of data tables in the typeface. The number of data tables. Creates a new from this typeface with default settings. A new instance using this typeface. The font size in points. The horizontal scale factor. The horizontal skew factor for synthetic italic. Creates a new from this typeface with the specified size and style parameters. A new instance using this typeface. The table tag to get the data for. The contents of the table data for the specified tag. Returns the contents of the table data for the specified tag. if the content exists; otherwise, . The table tag to get the data for. The offset of the data to fetch. The length of data to fetch. The contents of the table data for the specified tag. Returns the contents of the table data for the specified tag. if the content exists; otherwise, . The table tags. Returns the list of table tags in the font. if the tags could be fetched; otherwise, . Gets the units-per-em value for this typeface, or zero if there is an error. The units-per-em value, or zero if there is an error. Specifies the intrinsic style attributes of a given typeface. Bold style. Bold and Italic, convenience definition. Italic style. Normal style. Various mode with which to interpret triangles when invoking . The vertices are a triangle fan. The vertices are a triangle list. The vertices are a triangle strip. Represents an immutable set of vertex data that can be used with . How to interpret the array of vertices. The array of vertices for the mesh. The color for each vertex, to be interpolated across the triangle. May be . Creates a new instance, making a copy of the vertices and related data. Returns the new instance. How to interpret the array of vertices. The array of vertices for the mesh. The coordinates in texture space (not UV space) for each vertex. May be . The color for each vertex, to be interpolated across the triangle. May be . Creates a new instance, making a copy of the vertices and related data. Returns the new instance. How to interpret the array of vertices. The array of vertices for the mesh. The coordinates in texture space (not UV space) for each vertex. May be . The color for each vertex, to be interpolated across the triangle. May be . The array of indices to reference into the vertex (texture coordinates, colors) array. Creates a new instance, making a copy of the vertices and related data. Returns the new instance. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. The various types of compression for WEBP files. Compress the file without loosing data. Compress the files by reducing image quality. Options to control the WEBP encoding. The compression level. The quality of the encoding in the range 0.0 to 100.0. Creates a new instance of . The compression level. The quality of the encoding in the range 0.0 to 100.0. The unpremultiplication behavior. Creates a new instance of . Gets or sets the compression level. The compression level. Gets a new instance of with the values set to the defaults. The to compare with this instance. Determines whether this instance is equal to another instance. if the instances are equal; otherwise, . The object to compare with this instance. Determines whether this instance is equal to another object. if the object is an and is equal to this instance; otherwise, . Returns the hash code for this instance. A 32-bit signed integer hash code. The first instance to compare. The second instance to compare. Determines whether two instances are equal. if the instances are equal; otherwise, . The first instance to compare. The second instance to compare. Determines whether two instances are not equal. if the instances are not equal; otherwise, . Gets or sets the quality of the encoding. The quality of the encoding in the range 0.0 to 100.0. If the compression is lossy, then the quality corresponds to the visual quality. Lower values are smaller, but will have reduced quality. If the compression is lossless, then the quality corresponds effort put into compressing the file. Lower values are faster, but higher values have smaller files. Gets or sets the unpremultiplication behavior if the input is premultiplied. The unpremultiplication behavior. An abstraction for writing a stream of bytes, which can be backed by memory, or a file, or something else. Gets the number of bytes written so far. The number of bytes written. Flush the buffer to the underlying destination. The value to store. Returns the number of bytes in the stream required to store the specified value. Returns the number of bytes required. Write a newline character to the stream, if one was not already written. if the write succeeded; otherwise, . If the last character was a newline character, this method does nothing. The data buffer to write. The number of bytes from the buffer to write. Write the provided data to the stream. if the write succeeded; otherwise, . The unsigned 16-bit integer to write. Write a single, unsigned 16-bit integer to the stream. if the write succeeded; otherwise, . The unsigned 32-bit integer to write. Write a single, unsigned 32-bit integer to the stream. if the write succeeded; otherwise, . The byte to write. Write a single byte to the stream. if the write succeeded; otherwise, . The 64-bit integer to write. The number of digits (length) to use when writing. Write a single 64-bit integer to the stream as a string. if the write succeeded; otherwise, . The boolean to write. Write a single boolean to the stream. if the write succeeded; otherwise, . The 32-bit integer to write. Write a 32-bit integer to the stream as a string. if the write succeeded; otherwise, . The unsigned, 32-bit integer to write. The number of digits (length) to use when writing. Write an unsigned, 32-bit integer to the stream as a hexadecimal string. if the write succeeded; otherwise, . The unsigned 32-bit integer to write. Write a single, unsigned 32-bit integer to the stream in the smallest space possible. if the write succeeded; otherwise, . The floating-point number to write. Write a single, floating-point number to the stream. if the write succeeded; otherwise, . The floating-point number to write. Write a single, floating-point number to the stream as text. if the write succeeded; otherwise, . The stream to write. The number of bytes to write. Write the contents of the specified stream to this stream. if the write succeeded; otherwise, . The string to write. Write a string to the stream as a string. if the write succeeded; otherwise, . A stream-based XML writer. The stream to write the XML to. Creates a new instance of which writes to the provided stream. to release both managed and unmanaged resources; to release only unmanaged resources. Releases the unmanaged resources used by the and optionally releases the managed resources. Always dispose the object before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the finalizer. Implemented by derived types to destroy any native objects. An abstract, XML writer. Specifies whether the memory passed to (or one of the overloads that accepts a ) is zero initialized. The memory passed has not been initialized to zero, so the codec must write all zeros to memory. The memory passed is zero initialized, so the codec may take advantage of this by skipping writing zeroes. Various utility methods for when working with strings and text. The text to encode. The encoding to use. Encodes the specified text using the encoding as a byte array. Returns the encoded text as a byte array. The text to encode. The encoding to use. Encodes the specified string using the encoding as a byte array. Returns the encoded text as a byte array. The text to encode. The encoding to use. Encodes the specified string using the encoding as a byte array. Returns the encoded text as a byte array. The bytes representing text. The encoding to use. Decodes the specified bytes as a string. Returns the decoded text. The bytes representing text. The encoding to use. Decodes the specified bytes as a string. Returns the decoded text. The pointer to the bytes representing text. The number of bytes to decode. The encoding to use. Decodes the specified bytes as a string. Returns the decoded text. The bytes representing text. The index to start decoding. The number of bytes to decode. The encoding to use. Encodes the specified string using the encoding as a byte array. Returns the decoded text. The bytes representing text. The index to start decoding. The number of bytes to decode. The encoding to use. Decodes the specified bytes as a string. Returns the decoded text. The character to get the Unicode character code. The encoding of the string. Returns the Unicode character code for the specified character. Returns the Unicode character code. Defines a platform-specific reader-writer lock for thread synchronization. Acquires a read lock, allowing multiple concurrent readers. Acquires an upgradeable read lock that can later be upgraded to a write lock. Acquires a write lock, providing exclusive access. Releases the read lock. Releases the upgradeable read lock. Releases the write lock. Provides properties to detect the current platform and architecture for native library loading. Gets a value indicating whether the current process is running as 64-bit. if the process is 64-bit; otherwise, . Gets a value indicating whether the current process is running on an ARM architecture. if the architecture is ARM or ARM64; otherwise, . Gets a value indicating whether the current Linux system uses glibc. if running on a glibc-based Linux system; otherwise, . Gets a value indicating whether the current operating system is Linux. if the operating system is Linux; otherwise, . Gets a value indicating whether the current operating system is macOS. if the operating system is macOS; otherwise, . Gets a value indicating whether the current operating system is Unix-based. if the operating system is Unix-based (Linux, macOS, or other Unix variants); otherwise, . Gets a value indicating whether the current operating system is Windows. if the operating system is Windows; otherwise, . Gets or sets the Linux distribution flavor identifier used for native library resolution. The Linux flavor identifier, such as "glibc" or "musl". Provides a factory for creating platform-specific synchronization locks. Creates a new platform lock instance using the current factory. A new instance. Creates a new platform lock instance using the default implementation. A new instance using the default reader-writer lock. Gets or sets the factory function used to create new platform lock instances. A function that creates instances.