Aliases for simple cairo enums and structs. Theses aliases provide D-like names when using the cairoD API.
Exception thrown by cairoD if an error occurs.
* Devices are the abstraction Cairo employs for the rendering system used * by a Surface. You can get the device of a surface using * Surface.getDevice(). * * Devices are created using custom functions specific to the rendering * system you want to use. See the documentation for the surface types * for those functions. * * An important function that devices fulfill is sharing access to the * rendering system between Cairo and your application. If you want to access * a device directly that you used to draw to with Cairo, you must first * call Device.flush() to ensure that Cairo finishes all operations * on the device and resets it to a clean state. * * Cairo also provides the functions Device.acquire() and * Device.release() to synchronize access to the rendering system * in a multithreaded environment. This is done internally, but can also * be used by applications. * * Note: * Please refer to the documentation of each backend for additional usage * requirements, guarantees provided, and interactions with existing surface * API of the device functions for surfaces of that type. * * Examples: * ------------------------- * void my_device_modifying_function(Device device) * { * // Ensure the device is properly reset * device.flush(); * try * { * // Try to acquire the device * device.acquire(); * } * catch(CairoException e) * { * writeln(""); * } * * // Release the device when done. * scope(exit) * device.release(); * * // Do the custom operations on the device here. * // But do not call any Cairo functions that might acquire devices. * * } * -------------------------
Base class for font faces
Base class for LinearGradient and RadialGradient.
Image Surfaces — Rendering to memory buffers
A linear gradient.
A Pattern represents a source when drawing onto a Surface. There are different subtypes of Pattern, for different types of sources; for example, SolidPattern.fromRGB creates a pattern for a solid opaque color.
A radial gradient.
Font face at particular size and options
A solid pattern.
Surface is the abstract type representing all different drawing targets that cairo can render to. The actual drawings are performed using a cairo context.
A surface pattern.
Cairo toy font api's FontFace
This function provides a stride value that will respect all alignment requirements of the accelerated image-rendering code within cairo.
Mainly used internally by cairoD. If status is CAIRO_STATUS_NO_MEMORY a OutOfMemoryError is thrown. If status is CAIRO_STATUS_SUCCESS nothing happens. For all other statuses, this functions throws a CairoException with the status value.
A simple struct representing a box. Used for Extents.
RandomAccessRange to iterate or index into Clips of a Cairo Region. This range keeps a reference to its Region object, so it can be passed around without thinking about memory management.
The cairo drawing context
FontOptions - How a font should be rendered
Wrapper for cairo's cairo_matrix_t. A cairo_matrix_t holds an affine transformation, such as a scale, rotation, shear, or a combination of those. The transformation of a point (x, y) is given by:
Reference counted wrapper around cairo_path_t. This struct can only be obtained from cairoD. It cannot be created manually.
ForwardRange to iterate a cairo path. This range keeps a reference to its Path object, so it can be passed around without thinking about memory management.
A simple struct to store the coordinates of a point as doubles or integers.
Struct representing a RGB color
Struct representing a RGBA color
A simple struct representing a rectangle with int or double values
A simple struct representing a resolution
A simple struct representing a size with only int or double values
The mapping between utf8 and glyphs is provided by an array of clusters. Each cluster covers a number of text bytes and glyphs, and neighboring clusters cover neighboring areas of utf8 and glyphs. The clusters should collectively cover utf8 and glyphs in entirety.
Cairo version information
This module contains wrappers for most of cairo's fuctionality. Additional wrappers for subsets of cairo are available in the cairo.* modules.
Note: Most cairoD functions could throw an OutOfMemoryError. This is therefore not explicitly stated in the functions' api documenation.