SharpDX.Direct2D1 [This documentation is preliminary and is subject to change.] ID2D1Bitmap1 Represents a bitmap that has been bound to an . ID2D1Bitmap [This documentation is preliminary and is subject to change.] ID2D1Image Represents a Direct2D drawing resource. ID2D1Resource Initializes a new instance of the class. The native pointer. Retrieves the factory associated with this resource. When this method returns, contains a reference to a reference to the factory that created this resource. This parameter is passed uninitialized. void ID2D1Resource::GetFactory([Out] ID2D1Factory** factory) Retrieves the factory associated with this resource. GetFactory void ID2D1Resource::GetFactory([Out] ID2D1Factory** factory) Initializes a new instance of the class. The native pointer. Creates a Direct2D bitmap from a pointer to in-memory source data. an instance of The dimension of the bitmap to create in pixels. HRESULT ID2D1RenderTarget::CreateBitmap([In] D2D_SIZE_U size,[In, Optional] const void* srcData,[In] unsigned int pitch,[In] const D2D1_BITMAP_PROPERTIES* bitmapProperties,[Out, Fast] ID2D1Bitmap** bitmap) Creates a Direct2D bitmap from a pointer to in-memory source data. an instance of The dimension of the bitmap to create in pixels. The pixel format and dots per inch (DPI) of the bitmap to create. HRESULT ID2D1RenderTarget::CreateBitmap([In] D2D_SIZE_U size,[In, Optional] const void* srcData,[In] unsigned int pitch,[In] const D2D1_BITMAP_PROPERTIES* bitmapProperties,[Out, Fast] ID2D1Bitmap** bitmap) Creates a Direct2D bitmap from a pointer to in-memory source data. an instance of The dimension of the bitmap to create in pixels. A pointer to the memory location of the image data, or NULL to create an uninitialized bitmap. The byte count of each scanline, which is equal to (the image width in pixels * the number of bytes per pixel) + memory padding. If srcData is NULL, this value is ignored. (Note that pitch is also sometimes called stride.) HRESULT ID2D1RenderTarget::CreateBitmap([In] D2D_SIZE_U size,[In, Optional] const void* srcData,[In] unsigned int pitch,[In] const D2D1_BITMAP_PROPERTIES* bitmapProperties,[Out, Fast] ID2D1Bitmap** bitmap) Creates a Direct2D bitmap from a pointer to in-memory source data. an instance of The dimension of the bitmap to create in pixels. A pointer to the memory location of the image data, or NULL to create an uninitialized bitmap. The byte count of each scanline, which is equal to (the image width in pixels * the number of bytes per pixel) + memory padding. If srcData is NULL, this value is ignored. (Note that pitch is also sometimes called stride.) The pixel format and dots per inch (DPI) of the bitmap to create. HRESULT ID2D1RenderTarget::CreateBitmap([In] D2D_SIZE_U size,[In, Optional] const void* srcData,[In] unsigned int pitch,[In] const D2D1_BITMAP_PROPERTIES* bitmapProperties,[Out, Fast] ID2D1Bitmap** bitmap) Creates an whose data is shared with another resource. an instance of An that contains the data to share with the new ID2D1Bitmap. For more information, see the Remarks section. HRESULT ID2D1RenderTarget::CreateSharedBitmap([In] const GUID& riid,[In] void* data,[In, Optional] const D2D1_BITMAP_PROPERTIES* bitmapProperties,[Out, Fast] ID2D1Bitmap** bitmap) Creates an whose data is shared with another resource. an instance of An that contains the data to share with the new ID2D1Bitmap. For more information, see the Remarks section. The pixel format and DPI of the bitmap to create . The portion of the pixel format must match the of data or the method will fail, but the alpha modes don't have to match. To prevent a mismatch, you can pass NULL or the value obtained from the {{D2D1::PixelFormat}} helper function. The DPI settings do not have to match those of data. If both dpiX and dpiY are 0.0f, the default DPI, 96, is used. HRESULT ID2D1RenderTarget::CreateSharedBitmap([In] const GUID& riid,[In] void* data,[In, Optional] const D2D1_BITMAP_PROPERTIES* bitmapProperties,[Out, Fast] ID2D1Bitmap** bitmap) Creates an whose data is shared with another resource. an instance of An that contains the data to share with the new ID2D1Bitmap. For more information, see the Remarks section. HRESULT ID2D1RenderTarget::CreateSharedBitmap([In] const GUID& riid,[In] void* data,[In, Optional] const D2D1_BITMAP_PROPERTIES* bitmapProperties,[Out, Fast] ID2D1Bitmap** bitmap) Creates an whose data is shared with another resource. an instance of An that contains the data to share with the new ID2D1Bitmap. For more information, see the Remarks section. The pixel format and DPI of the bitmap to create . The portion of the pixel format must match the of data or the method will fail, but the alpha modes don't have to match. To prevent a mismatch, you can pass NULL or the value obtained from the {{D2D1::PixelFormat}} helper function. The DPI settings do not have to match those of data. If both dpiX and dpiY are 0.0f, the default DPI, 96, is used. HRESULT ID2D1RenderTarget::CreateSharedBitmap([In] const GUID& riid,[In] void* data,[In, Optional] const D2D1_BITMAP_PROPERTIES* bitmapProperties,[Out, Fast] ID2D1Bitmap** bitmap) Creates a Bitmap from a wic bitmap. The render target. A reference to a wic bitmap. HRESULT ID2D1RenderTarget::CreateBitmapFromWicBitmap([In] IWICBitmapSource* wicBitmapSource,[In, Optional] const D2D1_BITMAP_PROPERTIES* bitmapProperties,[Out] ID2D1Bitmap** bitmap) Creates a Bitmap from a wic bitmap. The render target. The wic bitmap. The bitmap properties. HRESULT ID2D1RenderTarget::CreateBitmapFromWicBitmap([In] IWICBitmapSource* wicBitmapSource,[In, Optional] const D2D1_BITMAP_PROPERTIES* bitmapProperties,[Out] ID2D1Bitmap** bitmap) Copies the specified region from the specified bitmap into the current bitmap. This method does not update the size of the current bitmap. If the contents of the source bitmap do not fit in the current bitmap, this method fails. Also, note that this method does not perform format conversion, and will fail if the bitmap formats do not match. Calling this method may cause the current batch to flush if the bitmap is active in the batch. If the batch that was flushed does not complete successfully, this method fails. However, this method does not clear the error state of the render target on which the batch was flushed. The failing and tag state will be returned at the next call to {{EndDraw}} or {{Flush}}. The bitmap to copy from. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT ID2D1Bitmap::CopyFromBitmap([In, Optional] const D2D1_POINT_2U* destPoint,[In] ID2D1Bitmap* bitmap,[In, Optional] const D2D1_RECT_U* srcRect) Copies the specified region from the specified bitmap into the current bitmap. This method does not update the size of the current bitmap. If the contents of the source bitmap do not fit in the current bitmap, this method fails. Also, note that this method does not perform format conversion, and will fail if the bitmap formats do not match. Calling this method may cause the current batch to flush if the bitmap is active in the batch. If the batch that was flushed does not complete successfully, this method fails. However, this method does not clear the error state of the render target on which the batch was flushed. The failing and tag state will be returned at the next call to {{EndDraw}} or {{Flush}}. The bitmap to copy from. In the current bitmap, the upper-left corner of the area to which the region specified by srcRect is copied. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT ID2D1Bitmap::CopyFromBitmap([In, Optional] const D2D1_POINT_2U* destPoint,[In] ID2D1Bitmap* bitmap,[In, Optional] const D2D1_RECT_U* srcRect) Copies the specified region from the specified bitmap into the current bitmap. This method does not update the size of the current bitmap. If the contents of the source bitmap do not fit in the current bitmap, this method fails. Also, note that this method does not perform format conversion, and will fail if the bitmap formats do not match. Calling this method may cause the current batch to flush if the bitmap is active in the batch. If the batch that was flushed does not complete successfully, this method fails. However, this method does not clear the error state of the render target on which the batch was flushed. The failing and tag state will be returned at the next call to {{EndDraw}} or {{Flush}}. The bitmap to copy from. The area of bitmap to copy. In the current bitmap, the upper-left corner of the area to which the region specified by srcRect is copied. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT ID2D1Bitmap::CopyFromBitmap([In, Optional] const D2D1_POINT_2U* destPoint,[In] ID2D1Bitmap* bitmap,[In, Optional] const D2D1_RECT_U* srcRect) Copies the specified region from memory into the current bitmap. This method does not update the size of the current bitmap. If the contents of the source bitmap do not fit in the current bitmap, this method fails. Also, note that this method does not perform format conversion; the two bitmap formats should match. Passing this method invalid input, such as an invalid destination rectangle, can produce unpredictable results, such as a distorted image or device failure. Calling this method may cause the current batch to flush if the bitmap is active in the batch. If the batch that was flushed does not complete successfully, this method fails. However, this method does not clear the error state of the render target on which the batch was flushed. The failing and tag state will be returned at the next call to {{EndDraw}} or {{Flush}}. The data to copy. The stride, or pitch, of the source bitmap stored in srcData. The stride is the byte count of a scanline (one row of pixels in memory). The stride can be computed from the following formula: pixel width * bytes per pixel + memory padding. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT ID2D1Bitmap::CopyFromMemory([In, Optional] const D2D1_RECT_U* dstRect,[In] const void* srcData,[None] int pitch) Copies the specified region from memory into the current bitmap. This method does not update the size of the current bitmap. If the contents of the source bitmap do not fit in the current bitmap, this method fails. Also, note that this method does not perform format conversion; the two bitmap formats should match. Passing this method invalid input, such as an invalid destination rectangle, can produce unpredictable results, such as a distorted image or device failure. Calling this method may cause the current batch to flush if the bitmap is active in the batch. If the batch that was flushed does not complete successfully, this method fails. However, this method does not clear the error state of the render target on which the batch was flushed. The failing and tag state will be returned at the next call to {{EndDraw}} or {{Flush}}. The data to copy. The stride, or pitch, of the source bitmap stored in srcData. The stride is the byte count of a scanline (one row of pixels in memory). The stride can be computed from the following formula: pixel width * bytes per pixel + memory padding. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT ID2D1Bitmap::CopyFromMemory([In, Optional] const D2D1_RECT_U* dstRect,[In] const void* srcData,[None] int pitch) Copies the specified region from memory into the current bitmap. This method does not update the size of the current bitmap. If the contents of the source bitmap do not fit in the current bitmap, this method fails. Also, note that this method does not perform format conversion; the two bitmap formats should match. Passing this method invalid input, such as an invalid destination rectangle, can produce unpredictable results, such as a distorted image or device failure. Calling this method may cause the current batch to flush if the bitmap is active in the batch. If the batch that was flushed does not complete successfully, this method fails. However, this method does not clear the error state of the render target on which the batch was flushed. The failing and tag state will be returned at the next call to {{EndDraw}} or {{Flush}}. The data to copy. The stride, or pitch, of the source bitmap stored in srcData. The stride is the byte count of a scanline (one row of pixels in memory). The stride can be computed from the following formula: pixel width * bytes per pixel + memory padding. In the current bitmap, the upper-left corner of the area to which the region specified by srcRect is copied. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT ID2D1Bitmap::CopyFromMemory([In, Optional] const D2D1_RECT_U* dstRect,[In] const void* srcData,[None] int pitch) Copies the specified region from memory into the current bitmap. This method does not update the size of the current bitmap. If the contents of the source bitmap do not fit in the current bitmap, this method fails. Also, note that this method does not perform format conversion; the two bitmap formats should match. Passing this method invalid input, such as an invalid destination rectangle, can produce unpredictable results, such as a distorted image or device failure. Calling this method may cause the current batch to flush if the bitmap is active in the batch. If the batch that was flushed does not complete successfully, this method fails. However, this method does not clear the error state of the render target on which the batch was flushed. The failing and tag state will be returned at the next call to {{EndDraw}} or {{Flush}}. The data to copy. The stride, or pitch, of the source bitmap stored in srcData. The stride is the byte count of a scanline (one row of pixels in memory). The stride can be computed from the following formula: pixel width * bytes per pixel + memory padding. In the current bitmap, the upper-left corner of the area to which the region specified by srcRect is copied. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT ID2D1Bitmap::CopyFromMemory([In, Optional] const D2D1_RECT_U* dstRect,[In] const void* srcData,[None] int pitch) Copies the specified region from the specified render target into the current bitmap. This method does not update the size of the current bitmap. If the contents of the source bitmap do not fit in the current bitmap, this method fails. Also, note that this method does not perform format conversion, and will fail if the bitmap formats do not match. Calling this method may cause the current batch to flush if the bitmap is active in the batch. If the batch that was flushed does not complete successfully, this method fails. However, this method does not clear the error state of the render target on which the batch was flushed. The failing and tag state will be returned at the next call to {{EndDraw}} or {{Flush}}. All clips and layers must be popped off of the render target before calling this method. The method returns {{D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT}} if any clips or layers are currently applied to the render target. The render target that contains the region to copy. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT ID2D1Bitmap::CopyFromRenderTarget([In, Optional] const D2D1_POINT_2U* destPoint,[In] ID2D1RenderTarget* renderTarget,[In, Optional] const D2D1_RECT_U* srcRect) Copies the specified region from the specified render target into the current bitmap. This method does not update the size of the current bitmap. If the contents of the source bitmap do not fit in the current bitmap, this method fails. Also, note that this method does not perform format conversion, and will fail if the bitmap formats do not match. Calling this method may cause the current batch to flush if the bitmap is active in the batch. If the batch that was flushed does not complete successfully, this method fails. However, this method does not clear the error state of the render target on which the batch was flushed. The failing and tag state will be returned at the next call to {{EndDraw}} or {{Flush}}. All clips and layers must be popped off of the render target before calling this method. The method returns {{D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT}} if any clips or layers are currently applied to the render target. The render target that contains the region to copy. In the current bitmap, the upper-left corner of the area to which the region specified by srcRect is copied. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT ID2D1Bitmap::CopyFromRenderTarget([In, Optional] const D2D1_POINT_2U* destPoint,[In] ID2D1RenderTarget* renderTarget,[In, Optional] const D2D1_RECT_U* srcRect) Copies the specified region from the specified render target into the current bitmap. This method does not update the size of the current bitmap. If the contents of the source bitmap do not fit in the current bitmap, this method fails. Also, note that this method does not perform format conversion, and will fail if the bitmap formats do not match. Calling this method may cause the current batch to flush if the bitmap is active in the batch. If the batch that was flushed does not complete successfully, this method fails. However, this method does not clear the error state of the render target on which the batch was flushed. The failing and tag state will be returned at the next call to {{EndDraw}} or {{Flush}}. All clips and layers must be popped off of the render target before calling this method. The method returns {{D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT}} if any clips or layers are currently applied to the render target. The render target that contains the region to copy. In the current bitmap, the upper-left corner of the area to which the region specified by srcRect is copied. The area of renderTarget to copy. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT ID2D1Bitmap::CopyFromRenderTarget([In, Optional] const D2D1_POINT_2U* destPoint,[In] ID2D1RenderTarget* renderTarget,[In, Optional] const D2D1_RECT_U* srcRect) Copies the specified region from a stream into the current bitmap. This method does not update the size of the current bitmap. If the contents of the source bitmap do not fit in the current bitmap, this method fails. Also, note that this method does not perform format conversion; the two bitmap formats should match. Passing this method invalid input, such as an invalid destination rectangle, can produce unpredictable results, such as a distorted image or device failure. Calling this method may cause the current batch to flush if the bitmap is active in the batch. If the batch that was flushed does not complete successfully, this method fails. However, this method does not clear the error state of the render target on which the batch was flushed. The failing and tag state will be returned at the next call to {{EndDraw}} or {{Flush}}. The stream to copy the data from. Length in bytes of the data to copy from the stream. The stride, or pitch, of the source bitmap stored in srcData. The stride is the byte count of a scanline (one row of pixels in memory). The stride can be computed from the following formula: pixel width * bytes per pixel + memory padding. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT ID2D1Bitmap::CopyFromMemory([In, Optional] const D2D1_RECT_U* dstRect,[In] const void* srcData,[None] int pitch) Copies the specified region from a stream into the current bitmap. This method does not update the size of the current bitmap. If the contents of the source bitmap do not fit in the current bitmap, this method fails. Also, note that this method does not perform format conversion; the two bitmap formats should match. Passing this method invalid input, such as an invalid destination rectangle, can produce unpredictable results, such as a distorted image or device failure. Calling this method may cause the current batch to flush if the bitmap is active in the batch. If the batch that was flushed does not complete successfully, this method fails. However, this method does not clear the error state of the render target on which the batch was flushed. The failing and tag state will be returned at the next call to {{EndDraw}} or {{Flush}}. The stream to copy the data from. Length in bytes of the data to copy from the stream. The stride, or pitch, of the source bitmap stored in srcData. The stride is the byte count of a scanline (one row of pixels in memory). The stride can be computed from the following formula: pixel width * bytes per pixel + memory padding. In the current bitmap, the upper-left corner of the area to which the region specified by srcRect is copied. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT ID2D1Bitmap::CopyFromMemory([In, Optional] const D2D1_RECT_U* dstRect,[In] const void* srcData,[None] int pitch) Initializes a new instance of the class. The native pointer. Returns the size, in device-independent pixels (DIPs), of the bitmap. The size, in DIPs, of the bitmap. A DIP is 1/96?of an inch. To retrieve the size in device pixels, use the method. D2D_SIZE_F ID2D1Bitmap::GetSize() Returns the size, in device-dependent units (pixels), of the bitmap. The size, in pixels, of the bitmap. D2D_SIZE_U ID2D1Bitmap::GetPixelSize() Retrieves the pixel format and alpha mode of the bitmap. The pixel format and alpha mode of the bitmap. D2D1_PIXEL_FORMAT ID2D1Bitmap::GetPixelFormat() Return the dots per inch (DPI) of the bitmap. The horizontal DPI of the image. You must allocate storage for this parameter. The vertical DPI of the image. You must allocate storage for this parameter. void ID2D1Bitmap::GetDpi([Out] float* dpiX,[Out] float* dpiY) Copies the specified region from the specified bitmap into the current bitmap. In the current bitmap, the upper-left corner of the area to which the region specified by srcRect is copied. The bitmap to copy from. The area of bitmap to copy. If this method succeeds, it returns . Otherwise, it returns an error code. This method does not update the size of the current bitmap. If the contents of the source bitmap do not fit in the current bitmap, this method fails. Also, note that this method does not perform format conversion, and will fail if the bitmap formats do not match.Calling this method may cause the current batch to flush if the bitmap is active in the batch. If the batch that was flushed does not complete successfully, this method fails. However, this method does not clear the error state of the render target on which the batch was flushed. The failing and tag state will be returned at the next call to EndDraw or Flush. HRESULT ID2D1Bitmap::CopyFromBitmap([In, Optional] const D2D_POINT_2U* destPoint,[In] ID2D1Bitmap* bitmap,[In, Optional] const D2D_RECT_U* srcRect) Copies the specified region from the specified render target into the current bitmap. In the current bitmap, the upper-left corner of the area to which the region specified by srcRect is copied. The render target that contains the region to copy. The area of renderTarget to copy. If this method succeeds, it returns . Otherwise, it returns an error code. This method does not update the size of the current bitmap. If the contents of the source bitmap do not fit in the current bitmap, this method fails. Also, note that this method does not perform format conversion, and will fail if the bitmap formats do not match.Calling this method may cause the current batch to flush if the bitmap is active in the batch. If the batch that was flushed does not complete successfully, this method fails. However, this method does not clear the error state of the render target on which the batch was flushed. The failing and tag state will be returned at the next call to EndDraw or Flush.All clips and layers must be popped off of the render target before calling this method. The method returns D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT if any clips or layers are currently applied to the render target. HRESULT ID2D1Bitmap::CopyFromRenderTarget([In, Optional] const D2D_POINT_2U* destPoint,[In] ID2D1RenderTarget* renderTarget,[In, Optional] const D2D_RECT_U* srcRect) Copies the specified region from memory into the current bitmap. In the current bitmap, the upper-left corner of the area to which the region specified by srcRect is copied. The data to copy. The stride, or pitch, of the source bitmap stored in srcData. The stride is the byte count of a scanline (one row of pixels in memory). The stride can be computed from the following formula: pixel width * bytes per pixel + memory padding. If this method succeeds, it returns . Otherwise, it returns an error code. This method does not update the size of the current bitmap. If the contents of the source bitmap do not fit in the current bitmap, this method fails. Also, note that this method does not perform format conversion; the two bitmap formats should match.If this method is passed invalid input (such as an invalid destination rectangle), can produce unpredictable results, such as a distorted image or device failure.Calling this method may cause the current batch to flush if the bitmap is active in the batch. If the batch that was flushed does not complete successfully, this method fails. However, this method does not clear the error state of the render target on which the batch was flushed. The failing and tag state will be returned at the next call to EndDraw or Flush. HRESULT ID2D1Bitmap::CopyFromMemory([In, Optional] const D2D_RECT_U* dstRect,[In] const void* srcData,[In] unsigned int pitch) Return the dots per inch (DPI) of the bitmap. The dots per inch (DPI) of the bitma. Returns the size, in device-independent pixels (DIPs), of the bitmap. A DIP is 1/96?of an inch. To retrieve the size in device pixels, use the method. GetSize D2D_SIZE_F ID2D1Bitmap::GetSize() Returns the size, in device-dependent units (pixels), of the bitmap. GetPixelSize D2D_SIZE_U ID2D1Bitmap::GetPixelSize() Retrieves the pixel format and alpha mode of the bitmap. GetPixelFormat D2D1_PIXEL_FORMAT ID2D1Bitmap::GetPixelFormat() Creates a Direct2D bitmap from a pointer to in-memory source data. an instance of The dimension of the bitmap to create in pixels. HRESULT ID2D1DeviceContext::CreateBitmap([In] D2D_SIZE_U size,[In, Buffer, Optional] const void* sourceData,[In] unsigned int pitch,[In] const D2D1_BITMAP_PROPERTIES1* bitmapProperties,[Out, Fast] ID2D1Bitmap1** bitmap) Creates a Direct2D bitmap from a pointer to in-memory source data. an instance of The dimension of the bitmap to create in pixels. The pixel format and dots per inch (DPI) of the bitmap to create. HRESULT ID2D1DeviceContext::CreateBitmap([In] D2D_SIZE_U size,[In, Buffer, Optional] const void* sourceData,[In] unsigned int pitch,[In] const D2D1_BITMAP_PROPERTIES1* bitmapProperties,[Out, Fast] ID2D1Bitmap1** bitmap) Creates a Direct2D bitmap from a pointer to in-memory source data. an instance of The dimension of the bitmap to create in pixels. A pointer to the memory location of the image data, or NULL to create an uninitialized bitmap. The byte count of each scanline, which is equal to (the image width in pixels * the number of bytes per pixel) + memory padding. If srcData is NULL, this value is ignored. (Note that pitch is also sometimes called stride.) HRESULT ID2D1DeviceContext::CreateBitmap([In] D2D_SIZE_U size,[In, Buffer, Optional] const void* sourceData,[In] unsigned int pitch,[In] const D2D1_BITMAP_PROPERTIES1* bitmapProperties,[Out, Fast] ID2D1Bitmap1** bitmap) Creates a Direct2D bitmap from a pointer to in-memory source data. an instance of The dimension of the bitmap to create in pixels. A pointer to the memory location of the image data, or NULL to create an uninitialized bitmap. The byte count of each scanline, which is equal to (the image width in pixels * the number of bytes per pixel) + memory padding. If srcData is NULL, this value is ignored. (Note that pitch is also sometimes called stride.) The pixel format and dots per inch (DPI) of the bitmap to create. HRESULT ID2D1DeviceContext::CreateBitmap([In] D2D_SIZE_U size,[In, Buffer, Optional] const void* sourceData,[In] unsigned int pitch,[In] const D2D1_BITMAP_PROPERTIES1* bitmapProperties,[Out, Fast] ID2D1Bitmap1** bitmap) Creates an whose data is shared with another resource. an instance of An that contains the data to share with the new ID2D1Bitmap. For more information, see the Remarks section. HRESULT ID2D1DeviceContext::CreateBitmapFromDxgiSurface([In] IDXGISurface* surface,[In, Optional] const D2D1_BITMAP_PROPERTIES1* bitmapProperties,[Out, Fast] ID2D1Bitmap1** bitmap1) Creates an whose data is shared with another resource. an instance of An that contains the data to share with the new ID2D1Bitmap. For more information, see the Remarks section. The pixel format and DPI of the bitmap to create . The portion of the pixel format must match the of data or the method will fail, but the alpha modes don't have to match. To prevent a mismatch, you can pass NULL or the value obtained from the {{D2D1::PixelFormat}} helper function. The DPI settings do not have to match those of data. If both dpiX and dpiY are 0.0f, the default DPI, 96, is used. HRESULT ID2D1DeviceContext::CreateBitmapFromDxgiSurface([In] IDXGISurface* surface,[In, Optional] const D2D1_BITMAP_PROPERTIES1* bitmapProperties,[Out, Fast] ID2D1Bitmap1** bitmap1) Creates a Bitmap from a wic bitmap. The render target. A reference to a wic bitmap. HRESULT ID2D1DeviceContext::CreateBitmapFromWicBitmap([In] IWICBitmapSource* wicBitmapSource,[In, Optional] const D2D1_BITMAP_PROPERTIES1* bitmapProperties,[Out] ID2D1Bitmap1** bitmap) Creates a Bitmap from a wic bitmap. The render target. The wic bitmap. The bitmap properties. HRESULT ID2D1DeviceContext::CreateBitmapFromWicBitmap([In] IWICBitmapSource* wicBitmapSource,[In, Optional] const D2D1_BITMAP_PROPERTIES1* bitmapProperties,[Out] ID2D1Bitmap1** bitmap) Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] When this method returns, contains the address of a reference to the color context interface associated with the bitmap. If the bitmap was created without specifying a color context, the returned context is null. void ID2D1Bitmap1::GetColorContext([Out, Optional] ID2D1ColorContext** colorContext) [This documentation is preliminary and is subject to change.] This method returns the options used. D2D1_BITMAP_OPTIONS ID2D1Bitmap1::GetOptions() No documentation. No documentation. No documentation. HRESULT ID2D1Bitmap1::GetSurface([Out, Optional] IDXGISurface** dxgiSurface) [This documentation is preliminary and is subject to change.] The options used in mapping the bitmap into memory. When this method returns, contains a reference to the rectangle that is mapped into memory. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. E_INVALIDARGOne or more arguments are not valid D3DERR_DEVICELOSTThe device has been lost but cannot be reset at this time.? The bitmap must have been created with the flag specified.The caller should try to unmap the memory as quickly as is feasable to release occupied DMA aperture memory. HRESULT ID2D1Bitmap1::Map([In] D2D1_MAP_OPTIONS options,[Out] D2D1_MAPPED_RECT* mappedRect) [This documentation is preliminary and is subject to change.] The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. E_INVALIDARGOne or more arguments are not valid. E_POINTERPointer is not valid.? Any memory returned from the Map call is now invalid and may be reclaimed by the operating system or used for other purposes.The bitmap must have been previously mapped. HRESULT ID2D1Bitmap1::Unmap() [This documentation is preliminary and is subject to change.] If the bitmap was created without specifying a color context, the returned context is null. GetColorContext void ID2D1Bitmap1::GetColorContext([Out, Optional] ID2D1ColorContext** colorContext) [This documentation is preliminary and is subject to change.] GetOptions D2D1_BITMAP_OPTIONS ID2D1Bitmap1::GetOptions() No documentation. GetSurface HRESULT ID2D1Bitmap1::GetSurface([Out, Optional] IDXGISurface** dxgiSurface) No documentation. ID2D1BitmapBrush1 Paints an area with a bitmap. ID2D1BitmapBrush Defines an object that paints an area. Interfaces that derive from describe how the area is painted. ID2D1Brush Initializes a new instance of the class. The native pointer. Sets the degree of opacity of this brush. A value between zero and 1 that indicates the opacity of the brush. This value is a constant multiplier that linearly scales the alpha value of all pixels filled by the brush. The opacity values are clamped in the range 0?1 before they are multipled together. void ID2D1Brush::SetOpacity([In] float opacity) Sets the transformation applied to the brush. The transformation to apply to this brush. When you paint with a brush, it paints in the coordinate space of the render target. Brushes do not automatically position themselves to align with the object being painted; by default, they begin painting at the origin (0, 0) of the render target.You can "move" the gradient defined by an to a target area by setting its start point and end point. Likewise, you can move the gradient defined by an by changing its center and radii.To align the content of an to the area being painted, you can use the SetTransform method to translate the bitmap to the desired location. This transform only affects the brush; it does not affect any other content drawn by the render target.The following illustrations show the effect of using an to fill a rectangle located at (100, 100). The illustration on the left illustration shows the result of filling the rectangle without transforming the brush: the bitmap is drawn at the render target's origin. As a result, only a portion of the bitmap appears in the rectangle.The illustration on the right shows the result of transforming the so that its content is shifted 50 pixels to the right and 50 pixels down. The bitmap now fills the rectangle. void ID2D1Brush::SetTransform([In] const D2D_MATRIX_3X2_F* transform) Gets the degree of opacity of this brush. A value between zero and 1 that indicates the opacity of the brush. This value is a constant multiplier that linearly scales the alpha value of all pixels filled by the brush. The opacity values are clamped in the range 0?1 before they are multipled together. float ID2D1Brush::GetOpacity() Gets the transform applied to this brush. The transform applied to this brush. When the brush transform is the identity matrix, the brush appears in the same coordinate space as the render target in which it is drawn. void ID2D1Brush::GetTransform([Out] D2D_MATRIX_3X2_F* transform) Gets the degree of opacity of this brush. GetOpacity float ID2D1Brush::GetOpacity() Gets the transform applied to this brush. When the brush transform is the identity matrix, the brush appears in the same coordinate space as the render target in which it is drawn. GetTransform void ID2D1Brush::GetTransform([Out] D2D_MATRIX_3X2_F* transform) Creates an from the specified bitmap. an instance of The bitmap contents of the new brush. HRESULT ID2D1RenderTarget::CreateBitmapBrush([In] ID2D1Bitmap* bitmap,[In, Optional] const D2D1_BITMAP_BRUSH_PROPERTIES* bitmapBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[Out, Fast] ID2D1BitmapBrush** bitmapBrush) Creates an from the specified bitmap. an instance of The bitmap contents of the new brush. The extend modes and interpolation mode of the new brush, or NULL. If this parameter is NULL, the brush defaults to the horizontal and vertical extend modes and the interpolation mode. HRESULT ID2D1RenderTarget::CreateBitmapBrush([In] ID2D1Bitmap* bitmap,[In, Optional] const D2D1_BITMAP_BRUSH_PROPERTIES* bitmapBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[Out, Fast] ID2D1BitmapBrush** bitmapBrush) Creates an from the specified bitmap. an instance of The bitmap contents of the new brush. The opacity and transform of the new brush, or NULL. If this parameter is NULL, the brush defaults to an opacity of 1.0f and its transform is the identity matrix. HRESULT ID2D1RenderTarget::CreateBitmapBrush([In] ID2D1Bitmap* bitmap,[In, Optional] const D2D1_BITMAP_BRUSH_PROPERTIES* bitmapBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[Out, Fast] ID2D1BitmapBrush** bitmapBrush) Creates an from the specified bitmap. an instance of The bitmap contents of the new brush. The extend modes and interpolation mode of the new brush, or NULL. If this parameter is NULL, the brush defaults to the horizontal and vertical extend modes and the interpolation mode. The opacity and transform of the new brush, or NULL. If this parameter is NULL, the brush defaults to an opacity of 1.0f and its transform is the identity matrix. HRESULT ID2D1RenderTarget::CreateBitmapBrush([In] ID2D1Bitmap* bitmap,[In, Optional] const D2D1_BITMAP_BRUSH_PROPERTIES* bitmapBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[Out, Fast] ID2D1BitmapBrush** bitmapBrush) Initializes a new instance of the class. The native pointer. Specifies how the brush horizontally tiles those areas that extend past its bitmap. A value that specifies how the brush horizontally tiles those areas that extend past its bitmap. Sometimes, the bitmap for a bitmap brush doesn't completely fill the area being painted. When this happens, Direct2D uses the brush's horizontal (SetExtendModeX) and vertical (SetExtendModeY) extend mode settings to determine how to fill the remaining area.The following illustration shows the results from every possible combination of the extend modes for an ID2D1BitmapBrush: (CLAMP), (WRAP), and D2D1_EXTEND_MIRROR (MIRROR). void ID2D1BitmapBrush::SetExtendModeX([In] D2D1_EXTEND_MODE extendModeX) Specifies how the brush vertically tiles those areas that extend past its bitmap. A value that specifies how the brush vertically tiles those areas that extend past its bitmap. Sometimes, the bitmap for a bitmap brush doesn't completely fill the area being painted. When this happens, Direct2D uses the brush's horizontal (SetExtendModeX) and vertical (SetExtendModeY) extend mode settings to determine how to fill the remaining area.The following illustration shows the results from every possible combination of the extend modes for an ID2D1BitmapBrush: (CLAMP), (WRAP), and D2D1_EXTEND_MIRROR (MIRROR). void ID2D1BitmapBrush::SetExtendModeY([In] D2D1_EXTEND_MODE extendModeY) Specifies the interpolation mode used when the brush bitmap is scaled or rotated. The interpolation mode used when the brush bitmap is scaled or rotated. This method sets the interpolation mode for a bitmap, which is an enum value that is specified in the enumeration type. represents nearest neighbor filtering. It looks up the nearest bitmap pixel to the current rendering pixel and chooses its exact color. represents linear filtering, and interpolates a color from the four nearest bitmap pixels.The interpolation mode of a bitmap also affects subpixel translations. In a subpixel translation, bilinear interpolation positions the bitmap more precisely to the application requests, but blurs the bitmap in the process. void ID2D1BitmapBrush::SetInterpolationMode([In] D2D1_BITMAP_INTERPOLATION_MODE interpolationMode) Specifies the bitmap source that this brush uses to paint. The bitmap source used by the brush. This method specifies the bitmap source that this brush uses to paint. The bitmap is not resized or rescaled automatically to fit the geometry that it fills. The bitmap stays at its native size. To resize or translate the bitmap, use the SetTransform method to apply a transform to the brush.The native size of a bitmap is the width and height in bitmap pixels, divided by the bitmap DPI. This native size forms the base tile of the brush. To tile a subregion of the bitmap, you must generate a new bitmap containing this subregion and use SetBitmap to apply it to the brush. void ID2D1BitmapBrush::SetBitmap([In] ID2D1Bitmap* bitmap) Gets the method by which the brush horizontally tiles those areas that extend past its bitmap. A value that specifies how the brush horizontally tiles those areas that extend past its bitmap. Like all brushes, defines an infinite plane of content. Because bitmaps are finite, it relies on an extend mode to determine how the plane is filled horizontally and vertically. D2D1_EXTEND_MODE ID2D1BitmapBrush::GetExtendModeX() Gets the method by which the brush vertically tiles those areas that extend past its bitmap. A value that specifies how the brush vertically tiles those areas that extend past its bitmap. Like all brushes, defines an infinite plane of content. Because bitmaps are finite, it relies on an extend mode to determine how the plane is filled horizontally and vertically. D2D1_EXTEND_MODE ID2D1BitmapBrush::GetExtendModeY() Gets the interpolation method used when the brush bitmap is scaled or rotated. The interpolation method used when the brush bitmap is scaled or rotated. This method gets the interpolation mode of a bitmap, which is specified by the enumeration type. represents nearest neighbor filtering. It looks up the bitmap pixel nearest to the current rendering pixel and chooses its exact color. represents linear filtering, and interpolates a color from the four nearest bitmap pixels.The interpolation mode of a bitmap also affects subpixel translations. In a subpixel translation, linear interpolation positions the bitmap more precisely to the application request, but blurs the bitmap in the process. D2D1_BITMAP_INTERPOLATION_MODE ID2D1BitmapBrush::GetInterpolationMode() Gets the bitmap source that this brush uses to paint. When this method returns, contains the address to a reference to the bitmap with which this brush paints. void ID2D1BitmapBrush::GetBitmap([Out] ID2D1Bitmap** bitmap) Gets the method by which the brush horizontally tiles those areas that extend past its bitmap. Like all brushes, defines an infinite plane of content. Because bitmaps are finite, it relies on an extend mode to determine how the plane is filled horizontally and vertically. GetExtendModeX D2D1_EXTEND_MODE ID2D1BitmapBrush::GetExtendModeX() Gets the method by which the brush vertically tiles those areas that extend past its bitmap. Like all brushes, defines an infinite plane of content. Because bitmaps are finite, it relies on an extend mode to determine how the plane is filled horizontally and vertically. GetExtendModeY D2D1_EXTEND_MODE ID2D1BitmapBrush::GetExtendModeY() Gets the interpolation method used when the brush bitmap is scaled or rotated. This method gets the interpolation mode of a bitmap, which is specified by the enumeration type. represents nearest neighbor filtering. It looks up the bitmap pixel nearest to the current rendering pixel and chooses its exact color. represents linear filtering, and interpolates a color from the four nearest bitmap pixels.The interpolation mode of a bitmap also affects subpixel translations. In a subpixel translation, linear interpolation positions the bitmap more precisely to the application request, but blurs the bitmap in the process. GetInterpolationMode D2D1_BITMAP_INTERPOLATION_MODE ID2D1BitmapBrush::GetInterpolationMode() Gets the bitmap source that this brush uses to paint. GetBitmap void ID2D1BitmapBrush::GetBitmap([Out] ID2D1Bitmap** bitmap) Creates an from the specified bitmap. an instance of The bitmap contents of the new brush. HRESULT ID2D1DeviceContext::CreateBitmapBrush([In] ID2D1Bitmap* bitmap,[In, Optional] const D2D1_BITMAP_BRUSH_PROPERTIES1* bitmapBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[Out, Fast] ID2D1BitmapBrush1** bitmapBrush) Creates an from the specified bitmap. an instance of The bitmap contents of the new brush. The extend modes and interpolation mode of the new brush, or NULL. If this parameter is NULL, the brush defaults to the horizontal and vertical extend modes and the interpolation mode. HRESULT ID2D1DeviceContext::CreateBitmapBrush([In] ID2D1Bitmap* bitmap,[In, Optional] const D2D1_BITMAP_BRUSH_PROPERTIES1* bitmapBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[Out, Fast] ID2D1BitmapBrush1** bitmapBrush) Creates an from the specified bitmap. an instance of The bitmap contents of the new brush. The opacity and transform of the new brush, or NULL. If this parameter is NULL, the brush defaults to an opacity of 1.0f and its transform is the identity matrix. HRESULT ID2D1DeviceContext::CreateBitmapBrush([In] ID2D1Bitmap* bitmap,[In, Optional] const D2D1_BITMAP_BRUSH_PROPERTIES1* bitmapBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[Out, Fast] ID2D1BitmapBrush1** bitmapBrush) Creates an from the specified bitmap. an instance of The bitmap contents of the new brush. The extend modes and interpolation mode of the new brush, or NULL. If this parameter is NULL, the brush defaults to the horizontal and vertical extend modes and the interpolation mode. The opacity and transform of the new brush, or NULL. If this parameter is NULL, the brush defaults to an opacity of 1.0f and its transform is the identity matrix. HRESULT ID2D1DeviceContext::CreateBitmapBrush([In] ID2D1Bitmap* bitmap,[In, Optional] const D2D1_BITMAP_BRUSH_PROPERTIES1* bitmapBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[Out, Fast] ID2D1BitmapBrush1** bitmapBrush) Initializes a new instance of the class. The native pointer. No documentation. No documentation. void ID2D1BitmapBrush1::SetInterpolationMode1([In] D2D1_INTERPOLATION_MODE interpolationMode) No documentation. No documentation. D2D1_INTERPOLATION_MODE ID2D1BitmapBrush1::GetInterpolationMode1() No documentation. GetInterpolationMode1 D2D1_INTERPOLATION_MODE ID2D1BitmapBrush1::GetInterpolationMode1() No documentation. D2D1_BITMAP_PROPERTIES1 Initializes a new instance of the class. Initializes a new instance of the struct. The pixel format. Initializes a new instance of the struct. The pixel format. The dpi X. The dpi Y. Initializes a new instance of the class. The pixel format. The dpi X. The dpi Y. The bitmap options. Initializes a new instance of the class. The pixel format. The dpi X. The dpi Y. The bitmap options. The color context. No documentation. D2D1_PIXEL_FORMAT pixelFormat No documentation. float dpiX No documentation. float dpiY No documentation. D2D1_BITMAP_OPTIONS bitmapOptions No documentation. ID2D1ColorContext* colorContext Gets or sets the color context. The color context. [This documentation is preliminary and is subject to change.] ID2D1CommandList Initializes a new instance of the class. The device context. Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] The sink into which the command list will be streamed. If the method succeeds, it returns . If it fails, it returns an error code. Sample use: Class MyCommandSink : public { public: // All of the methods implemented here. }; StreamToMyCommandSink( __in *pCommandList ) { hr = ; MyCommandSink *pCommandSink = new MyCommandSink(); hr = pCommandSink ? : E_OUTOFMEMORY; if (SUCCEEDED(hr)) { // Receive the contents of the command sink streamed to the sink. hr = pCommandList->Stream(pCommandSink); } SafeRelease(&pCommandSink); return hr; } HRESULT ID2D1CommandList::Stream([In] ID2D1CommandSink* sink) No documentation. No documentation. HRESULT ID2D1CommandList::Close() [This documentation is preliminary and is subject to change.] ID2D1Effect [This documentation is preliminary and is subject to change.] ID2D1Properties Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] This method returns the number of custom (non-system) properties that can be accessed by the object. This method returns the number of custom properties on the interface. System properties and sub-properties are part of a closed set, and are enumerable by iterating over this closed set. unsigned int ID2D1Properties::GetPropertyCount() [This documentation is preliminary and is subject to change.] The index of the property for which the name is being returned. When this method returns, contains the name being retrieved. The number of characters in the name buffer. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. HRESULT_FROM_WIN32()The supplied buffer was too small to accomodate the data. D2DERR_INVALID_PROPERTYThe specified property does not exist.? This method returns an empty string if index is invalid. If the method returns RESULT_FROM_WIN32(), name will still be filled and truncated. HRESULT ID2D1Properties::GetPropertyName([In] unsigned int index,[Out, Buffer] wchar_t* name,[In] unsigned int nameCount) No documentation. No documentation. No documentation. unsigned int ID2D1Properties::GetPropertyNameLength([In] unsigned int index) [This documentation is preliminary and is subject to change.] No documentation. This method returns the type of the selected property. If the property does not exist, the method returns . D2D1_PROPERTY_TYPE ID2D1Properties::GetType([In] unsigned int index) [This documentation is preliminary and is subject to change.] The name of the property to retrieve. The index of the corresponding property name. If the property does not exist, this method returns D2D1_INVALID_PROPERTY_INDEX. This reserved value will never map to a valid index and will cause null or sentinel values to be returned from other parts of the property interface. unsigned int ID2D1Properties::GetPropertyIndex([In] const wchar_t* name) [This documentation is preliminary and is subject to change.] The name of the property to set. The data to set. The number of bytes in the data to set. No documentation. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. D2DERR_INVALID_PROPERTYThe specified property does not exist. E_OUTOFMEMORYFailed to allocate necessary memory. D3DERR_OUT_OF_VIDEO_MEMORYFailed to allocate required video memory. E_INVALIDARGOne or more arguments are invalid. E_FAILUnspecified failure.? If the property does not exist, the request is ignored and the method returns D2DERR_INVALID_PROPERTY.Any error not in the standard set returned by a property implementation will be mapped into the standard error range. HRESULT ID2D1Properties::SetValueByName([In] const wchar_t* name,[In] D2D1_PROPERTY_TYPE type,[In, Buffer] const unsigned char* data,[In] unsigned int dataSize) [This documentation is preliminary and is subject to change.] The index of the property to set. The data to set. The number of bytes in the data to set. No documentation. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. D2DERR_INVALID_PROPERTYThe specified property does not exist. E_OUTOFMEMORYFailed to allocate necessary memory. D3DERR_OUT_OF_VIDEO_MEMORYFailed to allocate required video memory. E_INVALIDARGOne or more arguments are invalid. E_FAILUnspecified failure.? If the property does not exist, the request is ignored and D2DERR_INVALID_PROPERTY is returned.Any error not in the standard set returned by a property implementation will be mapped into the standard error range. HRESULT ID2D1Properties::SetValue([In] unsigned int index,[In] D2D1_PROPERTY_TYPE type,[In, Buffer] const unsigned char* data,[In] unsigned int dataSize) No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1Properties::GetValueByName([In] const wchar_t* name,[In] D2D1_PROPERTY_TYPE type,[Out, Buffer] unsigned char* data,[In] unsigned int dataSize) [This documentation is preliminary and is subject to change.] The index of the property from which the data is to be obtained. When this method returns, contains a reference to the data requested. The number of bytes in the data to be retrieved. No documentation. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. D2DERR_INVALID_PROPERTYThe specified property does not exist. E_OUTOFMEMORYFailed to allocate necessary memory. D3DERR_OUT_OF_VIDEO_MEMORYFailed to allocate required video memory. E_INVALIDARGOne or more arguments are invalid. E_FAILUnspecified failure.? HRESULT ID2D1Properties::GetValue([In] unsigned int index,[In] D2D1_PROPERTY_TYPE type,[Out, Buffer] unsigned char* data,[In] unsigned int dataSize) [This documentation is preliminary and is subject to change.] The index of the property. This method returns size of the value in bytes, using the property index This method returns zero if index does not exist. unsigned int ID2D1Properties::GetValueSize([In] unsigned int index) [This documentation is preliminary and is subject to change.] The index of the sub-properties to be retrieved. When this method returns, contains the address of a reference to the sub-properties. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. D2DERR_NO_SUBPROPERTIESThe specified property does not exist.? If there are no sub-properties, subProperties will be null, and D2DERR_NO_SUBPROPERTIES will be returned. HRESULT ID2D1Properties::GetSubProperties([In] unsigned int index,[Out, Optional] ID2D1Properties** subProperties) [This documentation is preliminary and is subject to change.] This method returns the number of custom properties on the interface. System properties and sub-properties are part of a closed set, and are enumerable by iterating over this closed set. GetPropertyCount unsigned int ID2D1Properties::GetPropertyCount() Initializes a new instance of the class. The device context. The class ID of the effect to create. If no sufficient memory to complete the call, or if it does not have enough display memory to perform the operation, or if the specified effect is not registered by the system. The created effect does not increment the reference count for the dynamic-link library (DLL) from which the effect was created. If the application deletes an effect while that effect is loaded, the resulting behavior will be unpredictable. HRESULT ID2D1DeviceContext::CreateEffect([In] const GUID& effectId,[Out, Fast] ID2D1Effect** effect) Initializes a new instance of the class. The native pointer. Constant DisplacementMap. CLSID_D2D1DisplacementMap Constant Border. CLSID_D2D1Border Constant Saturation. CLSID_D2D1Saturation Constant ConvolveMatrix. CLSID_D2D1ConvolveMatrix Constant GammaTransfer. CLSID_D2D1GammaTransfer Constant Morphology. CLSID_D2D1Morphology Constant Histogram. CLSID_D2D1Histogram Constant Turbulence. CLSID_D2D1Turbulence Constant SpotDiffuse. CLSID_D2D1SpotDiffuse Constant HueRotation. CLSID_D2D1HueRotation Constant ColorMatrix. CLSID_D2D1ColorMatrix Constant LuminanceToAlpha. CLSID_D2D1LuminanceToAlpha Constant DistantSpecular. CLSID_D2D1DistantSpecular Constant Atlas. CLSID_D2D1Atlas Constant Brightness. CLSID_D2D1Brightness Constant Premultiply. CLSID_D2D1Premultiply Constant HighQualityScale. CLSID_D2D1HighQualityScale Constant Tile. CLSID_D2D1Tile Constant GaussianBlur. CLSID_D2D1GaussianBlur Constant Blend. CLSID_D2D1Blend Constant TableTransfer. CLSID_D2D1TableTransfer Constant LinearTransfer. CLSID_D2D1LinearTransfer Constant ColorManagement. CLSID_D2D1ColorManagement Constant Shadow. CLSID_D2D1Shadow Constant ArithmeticComposite. CLSID_D2D1ArithmeticComposite Constant DpiCompensation. CLSID_D2D1DpiCompensation Constant BitmapSource. CLSID_D2D1BitmapSource Constant PointDiffuse. CLSID_D2D1PointDiffuse Constant InfiniteDiffuse. CLSID_D2D1InfiniteDiffuse Constant Crop. CLSID_D2D1Crop Constant DirectionalBlur. CLSID_D2D1DirectionalBlur Constant SpotSpecular. CLSID_D2D1SpotSpecular Constant Flood. CLSID_D2D1Flood Constant DiscreteTransfer. CLSID_D2D1DiscreteTransfer Constant Composite. CLSID_D2D1Composite Constant PointSpecular. CLSID_D2D1PointSpecular Constant UnPremultiply. CLSID_D2D1UnPremultiply Constant AffineTransform2D. CLSID_D2D12DAffineTransform Constant PerspectiveTransform3D. CLSID_D2D13DPerspectiveTransform Constant Transform3D. CLSID_D2D13DTransform No documentation. No documentation. No documentation. No documentation. void ID2D1Effect::SetInput([In] unsigned int index,[In, Optional] ID2D1Image* input,[In] BOOL invalidate) No documentation. No documentation. No documentation. HRESULT ID2D1Effect::SetInputCount([In] unsigned int inputCount) [This documentation is preliminary and is subject to change.] The index of the image to retrieve. When this method returns, contains the address of a reference to the image that is identified by Index. If the input index is out of range, the returned image will be null. void ID2D1Effect::GetInput([In] unsigned int index,[Out, Optional] ID2D1Image** input) [This documentation is preliminary and is subject to change.] This method returns the number of inputs to the effect. unsigned int ID2D1Effect::GetInputCount() [This documentation is preliminary and is subject to change.] When this method returns, contains the address of a reference to the output image for the effect. The output image can be set as an input to another effect, or can be directly passed into the in order to render the effect.It is also possible to use QueryInterface to retreive the same output image. void ID2D1Effect::GetOutput([Out] ID2D1Image** outputImage) [This documentation is preliminary and is subject to change.] GetInputCount unsigned int ID2D1Effect::GetInputCount() [This documentation is preliminary and is subject to change.] The output image can be set as an input to another effect, or can be directly passed into the in order to render the effect.It is also possible to use QueryInterface to retreive the same output image. GetOutput void ID2D1Effect::GetOutput([Out] ID2D1Image** outputImage) [This documentation is preliminary and is subject to change.] ID2D1Factory1 Creates Direct2D resources. ID2D1Factory Initializes a new instance of the class. The native pointer. Forces the factory to refresh any system defaults that it might have changed since factory creation. If this method succeeds, it returns . Otherwise, it returns an error code. You should call this method before calling the GetDesktopDpi method, to ensure that the system DPI is current. HRESULT ID2D1Factory::ReloadSystemMetrics() Retrieves the current desktop dots per inch (DPI). To refresh this value, call ReloadSystemMetrics. No documentation. No documentation. Use this method to obtain the system DPI when setting physical pixel values, such as when you specify the size of a window. void ID2D1Factory::GetDesktopDpi([Out] float* dpiX,[Out] float* dpiY) Creates an . No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT ID2D1Factory::CreateRectangleGeometry([In] const D2D_RECT_F* rectangle,[Out, Fast] ID2D1RectangleGeometry** rectangleGeometry) Creates an . No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT ID2D1Factory::CreateRoundedRectangleGeometry([In] const D2D1_ROUNDED_RECT* roundedRectangle,[Out, Fast] ID2D1RoundedRectangleGeometry** roundedRectangleGeometry) Creates an . No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT ID2D1Factory::CreateEllipseGeometry([In] const D2D1_ELLIPSE* ellipse,[Out, Fast] ID2D1EllipseGeometry** ellipseGeometry) Creates an , which is an object that holds other geometries. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. Geometry groups are a convenient way to group several geometries simultaneously so all figures of several distinct geometries are concatenated into one. To create a object, call the CreateGeometryGroup method on the object, passing in the fillMode with possible values of (alternate) and , an array of geometry objects to add to the geometry group, and the number of elements in this array. HRESULT ID2D1Factory::CreateGeometryGroup([In] D2D1_FILL_MODE fillMode,[In, Buffer] ID2D1Geometry** geometries,[In] unsigned int geometriesCount,[Out, Fast] ID2D1GeometryGroup** geometryGroup) Creates an , which is an object that holds other geometries. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. Geometry groups are a convenient way to group several geometries simultaneously so all figures of several distinct geometries are concatenated into one. To create a object, call the CreateGeometryGroup method on the object, passing in the fillMode with possible values of (alternate) and , an array of geometry objects to add to the geometry group, and the number of elements in this array. HRESULT ID2D1Factory::CreateGeometryGroup([In] D2D1_FILL_MODE fillMode,[In, Buffer] ID2D1Geometry** geometries,[In] unsigned int geometriesCount,[Out, Fast] ID2D1GeometryGroup** geometryGroup) Transforms the specified geometry and stores the result as an object. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. Like other resources, a transformed geometry the inherits the resource space and threading policy of the factory that created it. This object is immutable.When stroking a transformed geometry with the DrawGeometry method, the stroke width is not affected by the transform applied to the geometry. The stroke width is only affected by the world transform. HRESULT ID2D1Factory::CreateTransformedGeometry([In] ID2D1Geometry* sourceGeometry,[In] const D2D_MATRIX_3X2_F* transform,[Out, Fast] ID2D1TransformedGeometry** transformedGeometry) Creates an empty . No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT ID2D1Factory::CreatePathGeometry([Out, Fast] ID2D1PathGeometry** pathGeometry) Creates an that describes start cap, dash pattern, and other features of a stroke. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1Factory::CreateStrokeStyle([In] const D2D1_STROKE_STYLE_PROPERTIES* strokeStyleProperties,[In, Buffer, Optional] const float* dashes,[In] unsigned int dashesCount,[Out, Fast] ID2D1StrokeStyle** strokeStyle) Creates an that can be used with the SaveDrawingState and RestoreDrawingState methods of a render target. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT ID2D1Factory::CreateDrawingStateBlock([In, Optional] const D2D1_DRAWING_STATE_DESCRIPTION* drawingStateDescription,[In, Optional] IDWriteRenderingParams* textRenderingParams,[Out, Fast] ID2D1DrawingStateBlock** drawingStateBlock) Creates a render target that renders to a Microsoft Windows Imaging Component (WIC) bitmap. The bitmap that receives the rendering output of the render target. The rendering mode, pixel format, remoting options, DPI information, and the minimum DirectX support required for hardware rendering. For information about supported pixel formats, see Supported Pixel Formats and Alpha Modes. When this method returns, contains the address of the reference to the object created by this method. If this method succeeds, it returns . Otherwise, it returns an error code. Your application should create render targets once and hold onto them for the life of the application or until the D2DERR_RECREATE_TARGET error is received. When you receive this error, you need to recreate the render target (and any resources it created). HRESULT ID2D1Factory::CreateWicBitmapRenderTarget([In] IWICBitmap* target,[In] const D2D1_RENDER_TARGET_PROPERTIES* renderTargetProperties,[Out, Fast] ID2D1RenderTarget** renderTarget) Creates an , a render target that renders to a window. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. When you create a render target and hardware acceleration is available, you allocate resources on the computer's GPU. By creating a render target once and retaining it as long as possible, you gain performance benefits. Your application should create render targets once and hold onto them for the life of the application or until the D2DERR_RECREATE_TARGET error is received. When you receive this error, you need to recreate the render target (and any resources it created). HRESULT ID2D1Factory::CreateHwndRenderTarget([In] const D2D1_RENDER_TARGET_PROPERTIES* renderTargetProperties,[In] const D2D1_HWND_RENDER_TARGET_PROPERTIES* hwndRenderTargetProperties,[Out, Fast] ID2D1HwndRenderTarget** hwndRenderTarget) Creates a render target that draws to a DirectX Graphics Infrastructure (DXGI) surface. The to which the render target will draw. The rendering mode, pixel format, remoting options, DPI information, and the minimum DirectX support required for hardware rendering. For information about supported pixel formats, see Supported Pixel Formats and Alpha Modes. When this method returns, contains the address of the reference to the object created by this method. If this method succeeds, it returns . Otherwise, it returns an error code. To write to a Direct3D surface, you obtain an and pass it to the CreateDxgiSurfaceRenderTarget method to create a DXGI surface render target; you can then use the DXGI surface render target to draw 2-D content to the DXGI surface.A DXGI surface render target is a type of . Like other Direct2D render targets, you can use it to create resources and issue drawing commands.The DXGI surface render target and the DXGI surface must use the same DXGI format. If you specify the DXGI_FORMAT_UNKOWN format when you create the render target, it will automatically use the surface's format.The DXGI surface render target does not perform DXGI surface synchronization.For more information about creating and using DXGI surface render targets, see the Direct2D and Direct3D Interoperability Overview.To work with Direct2D, the Direct3D device that provides the must be created with the flag.When you create a render target and hardware acceleration is available, you allocate resources on the computer's GPU. By creating a render target once and retaining it as long as possible, you gain performance benefits. Your application should create render targets once and hold onto them for the life of the application or until the render target's EndDraw method returns the D2DERR_RECREATE_TARGET error. When you receive this error, you need to recreate the render target (and any resources it created). HRESULT ID2D1Factory::CreateDxgiSurfaceRenderTarget([In] IDXGISurface* dxgiSurface,[In] const D2D1_RENDER_TARGET_PROPERTIES* renderTargetProperties,[Out, Fast] ID2D1RenderTarget** renderTarget) Creates a render target that draws to a Windows Graphics Device Interface (GDI) device context. The rendering mode, pixel format, remoting options, DPI information, and the minimum DirectX support required for hardware rendering. To enable the device context (DC) render target to work with GDI, set the DXGI format to and the alpha mode to or . For more information about pixel formats, see Supported Pixel Formats and Alpha Modes. When this method returns, dcRenderTarget contains the address of the reference to the created by the method. If this method succeeds, it returns . Otherwise, it returns an error code. Before you can render with a DC render target, you must use the render target's BindDC method to associate it with a GDI DC. Do this for each different DC and whenever there is a change in the size of the area you want to draw to.To enable the DC render target to work with GDI, set the render target's DXGI format to and alpha mode to or .Your application should create render targets once and hold on to them for the life of the application or until the render target's EndDraw method returns the D2DERR_RECREATE_TARGET error. When you receive this error, recreate the render target (and any resources it created). HRESULT ID2D1Factory::CreateDCRenderTarget([In] const D2D1_RENDER_TARGET_PROPERTIES* renderTargetProperties,[Out, Fast] ID2D1DCRenderTarget** dcRenderTarget) Default Constructor for a . Default Constructor for a . Default Constructor for a . Retrieves the current desktop dots per inch (DPI). To refresh this value, call {{ReloadSystemMetrics}}. Use this method to obtain the system DPI when setting physical pixel values, such as when you specify the size of a window. Default Constructor for a . Default Constructor for a . Default Constructor for a . Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] The object used when creating the . The requested object. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. E_OUTOFMEMORYDirect2D could not allocate sufficient memory to complete the call. E_INVALIDARGAn invalid parameter was passed to the returning function. D3DERR_OUTOFVIDEOMEMORYDirect3D does not have enough display memory to perform the operation.? Each call to CreateDevice returns a unique object.The object is obtained by calling QueryInterface on an or an . HRESULT ID2D1Factory1::CreateDevice([In] IDXGIDevice* dxgiDevice,[Out] ID2D1Device** d2dDevice) [This documentation is preliminary and is subject to change.] No documentation. No documentation. No documentation. No documentation. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. E_OUTOFMEMORYDirect2D could not allocate sufficient memory to complete the call. E_INVALIDARGAn invalid value was passed to the method.? It is valid to specify a dash array only if is also specified. HRESULT ID2D1Factory1::CreateStrokeStyle([In] const D2D1_STROKE_STYLE_PROPERTIES1* strokeStyleProperties,[In, Buffer, Optional] const float* dashes,[In] unsigned int dashesCount,[Out] ID2D1StrokeStyle1** strokeStyle) [This documentation is preliminary and is subject to change.] No documentation. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. E_OUTOFMEMORYDirect2D could not allocate sufficient memory to complete the call.? HRESULT ID2D1Factory1::CreatePathGeometry([Out] ID2D1PathGeometry1** pathGeometry) No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1Factory1::CreateDrawingStateBlock([In, Optional] const D2D1_DRAWING_STATE_DESCRIPTION1* drawingStateDescription,[In, Optional] IDWriteRenderingParams* textRenderingParams,[Out] ID2D1DrawingStateBlock1** drawingStateBlock) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1Factory1::CreateGdiMetafile([In] IStream* metafileStream,[Out] ID2D1GdiMetafile** metafile) No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1Factory1::RegisterEffectFromStream([In] const GUID& classId,[In] IStream* propertyXml,[In, Buffer, Optional] const D2D1_PROPERTY_BINDING* bindings,[In] unsigned int bindingsCount,[In] const __function__stdcall* effectFactory) No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1Factory1::RegisterEffectFromString([In] const GUID& classId,[In] const wchar_t* propertyXml,[In, Buffer, Optional] const D2D1_PROPERTY_BINDING* bindings,[In] unsigned int bindingsCount,[In] const __function__stdcall* effectFactory) [This documentation is preliminary and is subject to change.] The identifier of the effect to be unregistered. D2DERR_EFFECT_IS_NOT_REGISTERED if the effect is not registered, otherwise. In order for the effect to be fully unloaded, you must call UnregisterEffect the same number of times that you have registered the effect.The UnregisterEffect method unregisters only those effects that are registered on the same factory. It cannot be used to unregister a built-in effect. HRESULT ID2D1Factory1::UnregisterEffect([In] const GUID& classId) [This documentation is preliminary and is subject to change.] When this method returns, contains an array of effects. null if no effects are retrieved. The capacity of the effects array. When this method returns, contains the number of effects copied into effects. When this method returns, contains the number of effects currently registered in the system. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. E_OUTOFMEMORYDirect2D could not allocate sufficient memory to complete the call. HRESULT_FROM_WIN32()effectsRegistered is larger than effectCount.? The set of class IDs will be atomically returned by the API. The set will not be interrupted by other threads registering or unregistering effects.If effectsRegistered is larger than effectCount, the supplied array will still be filled to capacity with the current set of registered effects. This method returns the CLSIDs for all global effects and all effects registered to this factory. HRESULT ID2D1Factory1::GetRegisteredEffects([Out, Buffer, Optional] GUID* effects,[In] unsigned int effectsCount,[Out, Optional] unsigned int* effectsReturned,[Out, Optional] unsigned int* effectsRegistered) [This documentation is preliminary and is subject to change.] The ID of the effect to retrieve properties from. When this method returns, contains the address of a reference to the property interface that can be used to query the metadata of the effect. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. D2DERR_EFFECT_IS_NOT_REGISTEREDThe requested effect could not be found. E_OUTOFMEMORYDirect2D could not allocate sufficient memory to complete the call.? The returned effect properties will have all the mutable properties for the effect set to a default of null, or an empty value.Value types will be zero-filled. Blob and string types will be zero-length. Array types will have length 1 and the element of the array will conform to the previous rules.This method cannot be used to return the properties for any effect not visible to . HRESULT ID2D1Factory1::GetEffectProperties([In] const GUID& effectId,[Out] ID2D1Properties** properties) [This documentation is preliminary and is subject to change.] ID2D1Device Initializes a new instance of the class. The device. HRESULT D2D1CreateDevice([In] IDXGIDevice* dxgiDevice,[In, Optional] const D2D1_CREATION_PROPERTIES* creationProperties,[Out] ID2D1Device** d2dDevice) Initializes a new instance of the class. The device. The creation properties. HRESULT D2D1CreateDevice([In] IDXGIDevice* dxgiDevice,[In, Optional] const D2D1_CREATION_PROPERTIES* creationProperties,[Out] ID2D1Device** d2dDevice) Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] The options to be applied to the created device context. When this method returns, contains the address of a reference to the new device context. If the method succeeds, it returns . If it fails, it returns an error code. The new device context will not have a selected target bitmap. The caller must create and select a bitmap as the target surface of the context. HRESULT ID2D1Device::CreateDeviceContext([In] D2D1_DEVICE_CONTEXT_OPTIONS options,[Out, Fast] ID2D1DeviceContext** deviceContext) No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1Device::CreatePrintControl([In] IWICImagingFactory* wicFactory,[In] IPrintDocumentPackageTarget* documentTarget,[In, Optional] const D2D1_PRINT_CONTROL_PROPERTIES* printControlProperties,[Out, Fast] ID2D1PrintControl** printControl) No documentation. No documentation. void ID2D1Device::SetMaximumTextureMemory([In] unsigned longlong maximumInBytes) No documentation. No documentation. unsigned longlong ID2D1Device::GetMaximumTextureMemory() [This documentation is preliminary and is subject to change.] The type of resource to release. This defaults to buffer resouces. This method clears resources that are cached but not in use. For example, it will clear the contents of all caching effects and all allocated intermediate rendering buffers. It will also unload all shaders used for imaging effects.If the application is keeping a resource active, the resource will not be cleared. The application is responsible for independently releasing active resources.This method deletes resources accumulated by the imaging API. void ID2D1Device::ClearResources([In] unsigned int millisecondsSinceUse) No documentation. GetMaximumTextureMemory unsigned longlong ID2D1Device::GetMaximumTextureMemory() [This documentation is preliminary and is subject to change.] ID2D1DeviceContext Represents an object that can receive drawing commands. Interfaces that inherit from render the drawing commands they receive in different ways. ID2D1RenderTarget Default stroke width used for all methods that are not explicitly using it. Default is set to 1.0f. Initializes a new instance of the class. The native pointer. Creates a Direct2D bitmap from a reference to in-memory source data. The dimension of the bitmap to create in pixels. A reference to the memory location of the image data, or null to create an uninitialized bitmap. The byte count of each scanline, which is equal to (the image width in pixels ? the number of bytes per pixel) + memory padding. If srcData is null, this value is ignored. (Note that pitch is also sometimes called stride.) The pixel format and dots per inch (DPI) of the bitmap to create. When this method returns, contains a reference to a reference to the new bitmap. This parameter is passed uninitialized. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT ID2D1RenderTarget::CreateBitmap([In] D2D_SIZE_U size,[In, Optional] const void* srcData,[In] unsigned int pitch,[In] const D2D1_BITMAP_PROPERTIES* bitmapProperties,[Out, Fast] ID2D1Bitmap** bitmap) Creates an by copying the specified Microsoft Windows Imaging Component (WIC) bitmap. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. Before Direct2D can load a WIC bitmap, that bitmap must be converted to a supported pixel format and alpha mode. For a list of supported pixel formats and alpha modes, see Supported Pixel Formats and Alpha Modes. HRESULT ID2D1RenderTarget::CreateBitmapFromWicBitmap([In] IWICBitmapSource* wicBitmapSource,[In, Optional] const D2D1_BITMAP_PROPERTIES* bitmapProperties,[Out] ID2D1Bitmap** bitmap) Creates an whose data is shared with another resource. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. The CreateSharedBitmap method is useful for efficiently reusing bitmap data and can also be used to provide interoperability with Direct3D.Sharing an By passing an created by a render target that is resource-compatible, you can share a bitmap with that render target; both the original and the new created by this method will point to the same bitmap data. For more information about when render target resources can be shared, see the Sharing Render Target Resources section of the Resources Overview.You may also use this method to reinterpret the data of an existing bitmap and specify a new DPI or alpha mode. For example, in the case of a bitmap atlas, an may contain multiple sub-images, each of which should be rendered with a different ( or ). You could use the CreateSharedBitmap method to reinterpret the bitmap using the desired alpha mode without having to load a separate copy of the bitmap into memory.Sharing an When using a DXGI surface render target (an object created by the CreateDxgiSurfaceRenderTarget method), you can pass an surface to the CreateSharedBitmap method to share video memory with Direct3D and manipulate Direct3D content as an . As described in the Resources Overview, the render target and the must be using the same Direct3D device.Note also that the must use one of the supported pixel formats and alpha modes described in Supported Pixel Formats and Alpha Modes.For more information about interoperability with Direct3D, see the Direct2D and Direct3D Interoperability Overview.Sharing an An stores the content of a WIC bitmap and shields it from simultaneous accesses. By passing an to the CreateSharedBitmap method, you can create an that points to the bitmap data already stored in the .To use an with the CreateSharedBitmap method, the render target must use software rendering. To force a render target to use software rendering, set to the type field of the structure that you use to create the render target. To check whether an existing render target uses software rendering, use the IsSupported method. HRESULT ID2D1RenderTarget::CreateSharedBitmap([In] const GUID& riid,[In] void* data,[In, Optional] const D2D1_BITMAP_PROPERTIES* bitmapProperties,[Out, Fast] ID2D1Bitmap** bitmap) Creates an from the specified bitmap. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1RenderTarget::CreateBitmapBrush([In] ID2D1Bitmap* bitmap,[In, Optional] const D2D1_BITMAP_BRUSH_PROPERTIES* bitmapBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[Out, Fast] ID2D1BitmapBrush** bitmapBrush) Creates a new that can be used to paint areas with a solid color. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1RenderTarget::CreateSolidColorBrush([In] const D2D_COLOR_F* color,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[Out, Fast] ID2D1SolidColorBrush** solidColorBrush) Creates an from the specified gradient stops, color interpolation gamma, and extend mode. No documentation. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT ID2D1RenderTarget::CreateGradientStopCollection([In, Buffer] const D2D1_GRADIENT_STOP* gradientStops,[In] unsigned int gradientStopsCount,[In] D2D1_GAMMA colorInterpolationGamma,[In] D2D1_EXTEND_MODE extendMode,[Out, Fast] ID2D1GradientStopCollection** gradientStopCollection) Creates an that contains the specified gradient stops and has the specified transform and base opacity. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT ID2D1RenderTarget::CreateLinearGradientBrush([In] const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES* linearGradientBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[In] ID2D1GradientStopCollection* gradientStopCollection,[Out, Fast] ID2D1LinearGradientBrush** linearGradientBrush) Creates an that contains the specified gradient stops, has no transform, and has a base opacity of 1.0. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT ID2D1RenderTarget::CreateRadialGradientBrush([In] const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES* radialGradientBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[In] ID2D1GradientStopCollection* gradientStopCollection,[Out, Fast] ID2D1RadialGradientBrush** radialGradientBrush) Creates a new bitmap render target for use during intermediate offscreen drawing that is compatible with the current render target . No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1RenderTarget::CreateCompatibleRenderTarget([In, Optional] const D2D_SIZE_F* desiredSize,[In, Optional] const D2D_SIZE_U* desiredPixelSize,[In, Optional] const D2D1_PIXEL_FORMAT* desiredFormat,[In] D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options,[Out, Fast] ID2D1BitmapRenderTarget** bitmapRenderTarget) Creates a layer resource that can be used with this render target and its compatible render targets. When the method returns, contains a reference to a reference to the new layer. This parameter is passed uninitialized. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. The layer automatically resizes itself, as needed. HRESULT ID2D1RenderTarget::CreateLayer([In, Optional] const D2D_SIZE_F* size,[Out, Fast] ID2D1Layer** layer) Create a mesh that uses triangles to describe a shape. When this method returns, contains a reference to a reference to the new mesh. If this method succeeds, it returns . Otherwise, it returns an error code. To populate a mesh, use its Open method to obtain an . To draw the mesh, use the render target's FillMesh method. HRESULT ID2D1RenderTarget::CreateMesh([Out, Fast] ID2D1Mesh** mesh) Draws a line between the specified points using the specified stroke style. The start point of the line, in device-independent pixels. The end point of the line, in device-independent pixels. The brush used to paint the line's stroke. A value greater than or equal to 0.0f that specifies the width of the stroke. If this parameter isn't specified, it defaults to 1.0f. The stroke is centered on the line. The style of stroke to paint, or null to paint a solid line. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as DrawLine) failed, check the result returned by the or methods. void ID2D1RenderTarget::DrawLine([In] D2D_POINT_2F point0,[In] D2D_POINT_2F point1,[In] ID2D1Brush* brush,[In] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) Draws the outline of a rectangle that has the specified dimensions and stroke style. The dimensions of the rectangle to draw, in device-independent pixels. The brush used to paint the rectangle's stroke. A value greater than or equal to 0.0f that specifies the width of the rectangle's stroke. The stroke is centered on the rectangle's outline. The style of stroke to paint, or null to paint a solid stroke. When this method fails, it does not return an error code. To determine whether a drawing method (such as DrawRectangle) failed, check the result returned by the or method. void ID2D1RenderTarget::DrawRectangle([In] const D2D_RECT_F* rect,[In] ID2D1Brush* brush,[In] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) Paints the interior of the specified rectangle. The dimension of the rectangle to paint, in device-independent pixels. The brush used to paint the rectangle's interior. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as FillRectangle) failed, check the result returned by the or methods. void ID2D1RenderTarget::FillRectangle([In] const D2D_RECT_F* rect,[In] ID2D1Brush* brush) Draws the outline of the specified rounded rectangle using the specified stroke style. The dimensions of the rounded rectangle to draw, in device-independent pixels. The brush used to paint the rounded rectangle's outline. The width of the rounded rectangle's stroke. The stroke is centered on the rounded rectangle's outline. The default value is 1.0f. The style of the rounded rectangle's stroke, or null to paint a solid stroke. The default value is null. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as DrawRoundedRectangle) failed, check the result returned by the or methods. void ID2D1RenderTarget::DrawRoundedRectangle([In] const D2D1_ROUNDED_RECT* roundedRect,[In] ID2D1Brush* brush,[In] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) Paints the interior of the specified rounded rectangle. The dimensions of the rounded rectangle to paint, in device independent pixels. The brush used to paint the interior of the rounded rectangle. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as FillRoundedRectangle) failed, check the result returned by the or methods. void ID2D1RenderTarget::FillRoundedRectangle([In] const D2D1_ROUNDED_RECT* roundedRect,[In] ID2D1Brush* brush) Draws the outline of the specified ellipse using the specified stroke style. The position and radius of the ellipse to draw, in device-independent pixels. The brush used to paint the ellipse's outline. The thickness of the ellipse's stroke. The stroke is centered on the ellipse's outline. The style of stroke to apply to the ellipse's outline, or null to paint a solid stroke. The DrawEllipse method doesn't return an error code if it fails. To determine whether a drawing operation (such as DrawEllipse) failed, check the result returned by the or methods. void ID2D1RenderTarget::DrawEllipse([In] const D2D1_ELLIPSE* ellipse,[In] ID2D1Brush* brush,[In] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) Paints the interior of the specified ellipse. The position and radius, in device-independent pixels, of the ellipse to paint. The brush used to paint the interior of the ellipse. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as FillEllipse) failed, check the result returned by the or methods. void ID2D1RenderTarget::FillEllipse([In] const D2D1_ELLIPSE* ellipse,[In] ID2D1Brush* brush) Draws the outline of the specified geometry using the specified stroke style. The geometry to draw. The brush used to paint the geometry's stroke. The thickness of the geometry's stroke. The stroke is centered on the geometry's outline. The style of stroke to apply to the geometry's outline, or null to paint a solid stroke. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as DrawGeometry) failed, check the result returned by the or methods. void ID2D1RenderTarget::DrawGeometry([In] ID2D1Geometry* geometry,[In] ID2D1Brush* brush,[In] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) Paints the interior of the specified geometry. The geometry to paint. The brush used to paint the geometry's interior. The opacity mask to apply to the geometry, or null for no opacity mask. If an opacity mask (the opacityBrush parameter) is specified, brush must be an that has its x- and y-extend modes set to . For more information, see the Remarks section. If the opacityBrush parameter is not null, the alpha value of each pixel of the mapped opacityBrush is used to determine the resulting opacity of each corresponding pixel of the geometry. Only the alpha value of each color in the brush is used for this processing; all other color information is ignored. The alpha value specified by the brush is multiplied by the alpha value of the geometry after the geometry has been painted by brush.When this method fails, it does not return an error code. To determine whether a drawing operation (such as FillGeometry) failed, check the result returned by the or method. void ID2D1RenderTarget::FillGeometry([In] ID2D1Geometry* geometry,[In] ID2D1Brush* brush,[In, Optional] ID2D1Brush* opacityBrush) Paints the interior of the specified mesh. The mesh to paint. The brush used to paint the mesh. The current antialias mode of the render target must be when FillMesh is called. To change the render target's antialias mode, use the SetAntialiasMode method.FillMesh does not expect a particular winding order for the triangles in the ; both clockwise and counter-clockwise will work.This method doesn't return an error code if it fails. To determine whether a drawing operation (such as FillMesh) failed, check the result returned by the or methods. void ID2D1RenderTarget::FillMesh([In] ID2D1Mesh* mesh,[In] ID2D1Brush* brush) Applies the opacity mask described by the specified bitmap to a brush and uses that brush to paint a region of the render target. No documentation. No documentation. No documentation. No documentation. No documentation. For this method to work properly, the render target must be using the antialiasing mode. You can set the antialiasing mode by calling the method.This method doesn't return an error code if it fails. To determine whether a drawing operation (such as FillOpacityMask) failed, check the result returned by the or methods. void ID2D1RenderTarget::FillOpacityMask([In] ID2D1Bitmap* opacityMask,[In] ID2D1Brush* brush,[In] D2D1_OPACITY_MASK_CONTENT content,[In, Optional] const D2D_RECT_F* destinationRectangle,[In, Optional] const D2D_RECT_F* sourceRectangle) Draws the specified bitmap after scaling it to the size of the specified rectangle. The bitmap to render. The size and position, in device-independent pixels in the render target's coordinate space, of the area to which the bitmap is drawn. If the rectangle is not well-ordered, nothing is drawn, but the render target does not enter an error state. A value between 0.0f and 1.0f, inclusive, that specifies the opacity value to be applied to the bitmap; this value is multiplied against the alpha values of the bitmap's contents. Default is 1.0f. The interpolation mode to use if the bitmap is scaled or rotated by the drawing operation. The default value is . The size and position, in device-independent pixels in the bitmap's coordinate space, of the area within the bitmap to draw; null to draw the entire bitmap. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as DrawBitmap) failed, check the result returned by the or methods. void ID2D1RenderTarget::DrawBitmap([In] ID2D1Bitmap* bitmap,[In, Optional] const D2D_RECT_F* destinationRectangle,[In] float opacity,[In] D2D1_BITMAP_INTERPOLATION_MODE interpolationMode,[In, Optional] const D2D_RECT_F* sourceRectangle) Draws the specified text using the format information provided by an object. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. To draw text with Direct2D, use the method for text that has a single format, or the method when you need multiple formats, advanced OpenType features, or hit testing. These methods use the DirectWrite API to provide high-quality text display.This method doesn't return an error code if it fails. To determine whether a drawing operation (such as DrawText) failed, check the result returned by the or methods. void ID2D1RenderTarget::DrawTextW([In, Buffer] const wchar_t* string,[In] unsigned int stringLength,[In] IDWriteTextFormat* textFormat,[In] const D2D_RECT_F* layoutRect,[In] ID2D1Brush* defaultForegroundBrush,[In] D2D1_DRAW_TEXT_OPTIONS options,[In] DWRITE_MEASURING_MODE measuringMode) Draws the formatted text described by the specified object. No documentation. No documentation. No documentation. No documentation. When drawing the same text repeatedly, using the DrawTextLayout method is more efficient than using the DrawText method because the text doesn't need to be formatted and the layout processed with each call.This method doesn't return an error code if it fails. To determine whether a drawing operation (such as DrawTextLayout) failed, check the result returned by the or methods. void ID2D1RenderTarget::DrawTextLayout([In] D2D_POINT_2F origin,[In] IDWriteTextLayout* textLayout,[In] ID2D1Brush* defaultForegroundBrush,[In] D2D1_DRAW_TEXT_OPTIONS options) Draws the specified glyphs. The origin, in device-independent pixels, of the glyphs' baseline. The glyphs to render. The brush used to paint the specified glyphs. A value that indicates how glyph metrics are used to measure text when it is formatted. The default value is . This method doesn't return an error code if it fails. To determine whether a drawing operation (such as DrawGlyphRun) failed, check the result returned by the or methods. void ID2D1RenderTarget::DrawGlyphRun([In] D2D_POINT_2F baselineOrigin,[In] const DWRITE_GLYPH_RUN* glyphRun,[In] ID2D1Brush* foregroundBrush,[In] DWRITE_MEASURING_MODE measuringMode) Applies the specified transform to the render target, replacing the existing transformation. All subsequent drawing operations occur in the transformed space. No documentation. void ID2D1RenderTarget::SetTransform([In] const D2D_MATRIX_3X2_F* transform) Gets the current transform of the render target. When this returns, contains the current transform of the render target. This parameter is passed uninitialized. void ID2D1RenderTarget::GetTransform([Out] D2D_MATRIX_3X2_F* transform) Sets the antialiasing mode of the render target. The antialiasing mode applies to all subsequent drawing operations, excluding text and glyph drawing operations. The antialiasing mode for future drawing operations. To specify the antialiasing mode for text and glyph operations, use the SetTextAntialiasMode method. void ID2D1RenderTarget::SetAntialiasMode([In] D2D1_ANTIALIAS_MODE antialiasMode) Retrieves the current antialiasing mode for nontext drawing operations. The current antialiasing mode for nontext drawing operations. D2D1_ANTIALIAS_MODE ID2D1RenderTarget::GetAntialiasMode() Specifies the antialiasing mode to use for subsequent text and glyph drawing operations. The antialiasing mode to use for subsequent text and glyph drawing operations. void ID2D1RenderTarget::SetTextAntialiasMode([In] D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode) Gets the current antialiasing mode for text and glyph drawing operations. The current antialiasing mode for text and glyph drawing operations. D2D1_TEXT_ANTIALIAS_MODE ID2D1RenderTarget::GetTextAntialiasMode() Specifies text rendering options to be applied to all subsequent text and glyph drawing operations. The text rendering options to be applied to all subsequent text and glyph drawing operations; null to clear current text rendering options. If the settings specified by textRenderingParams are incompatible with the render target's text antialiasing mode (specified by SetTextAntialiasMode), subsequent text and glyph drawing operations will fail and put the render target into an error state. void ID2D1RenderTarget::SetTextRenderingParams([In, Optional] IDWriteRenderingParams* textRenderingParams) Retrieves the render target's current text rendering options. When this method returns, textRenderingParamscontains the address of a reference to the render target's current text rendering options. If the settings specified by textRenderingParams are incompatible with the render target's text antialiasing mode (specified by SetTextAntialiasMode), subsequent text and glyph drawing operations will fail and put the render target into an error state. void ID2D1RenderTarget::GetTextRenderingParams([Out, Optional] IDWriteRenderingParams** textRenderingParams) Specifies a label for subsequent drawing operations. A label to apply to subsequent drawing operations. A label to apply to subsequent drawing operations. The labels specified by this method are printed by debug error messages. If no tag is set, the default value for each tag is 0. void ID2D1RenderTarget::SetTags([In] unsigned longlong tag1,[In] unsigned longlong tag2) Gets the label for subsequent drawing operations. When this method returns, contains the first label for subsequent drawing operations. This parameter is passed uninitialized. If null is specified, no value is retrieved for this parameter. When this method returns, contains the second label for subsequent drawing operations. This parameter is passed uninitialized. If null is specified, no value is retrieved for this parameter. If the same address is passed for both parameters, both parameters receive the value of the second tag. void ID2D1RenderTarget::GetTags([Out, Optional] unsigned longlong* tag1,[Out, Optional] unsigned longlong* tag2) Adds the specified layer to the render target so that it receives all subsequent drawing operations until PopLayer is called. No documentation. No documentation. The PushLayer method allows a caller to begin redirecting rendering to a layer. All rendering operations are valid in a layer. The location of the layer is affected by the world transform set on the render target.Each PushLayer must have a matching PopLayer call. If there are more PopLayer calls than PushLayer calls, the render target is placed into an error state. If Flush is called before all outstanding layers are popped, the render target is placed into an error state, and an error is returned. The error state can be cleared by a call to EndDraw.A particular resource can be active only at one time. In other words, you cannot call a PushLayer method, and then immediately follow with another PushLayer method with the same layer resource. Instead, you must call the second PushLayer method with different layer resources.This method doesn't return an error code if it fails. To determine whether a drawing operation (such as PushLayer) failed, check the result returned by the or methods. void ID2D1RenderTarget::PushLayer([In] const D2D1_LAYER_PARAMETERS* layerParameters,[In, Optional] ID2D1Layer* layer) Stops redirecting drawing operations to the layer that is specified by the last PushLayer call. A PopLayer must match a previous PushLayer call.This method doesn't return an error code if it fails. To determine whether a drawing operation (such as PopLayer) failed, check the result returned by the or methods. void ID2D1RenderTarget::PopLayer() Executes all pending drawing commands. When this method returns, contains the tag for drawing operations that caused errors or 0 if there were no errors. This parameter is passed uninitialized. When this method returns, contains the tag for drawing operations that caused errors or 0 if there were no errors. This parameter is passed uninitialized. If the method succeeds, it returns . Otherwise, it returns an error code and sets tag1 and tag2 to the tags that were active when the error occurred. If no error occurred, this method sets the error tag state to be (0,0). This command does not flush the device that is associated with the render target.Calling this method resets the error state of the render target. HRESULT ID2D1RenderTarget::Flush([Out, Optional] unsigned longlong* tag1,[Out, Optional] unsigned longlong* tag2) Saves the current drawing state to the specified . No documentation. void ID2D1RenderTarget::SaveDrawingState([InOut] ID2D1DrawingStateBlock* drawingStateBlock) Sets the render target's drawing state to that of the specified . No documentation. void ID2D1RenderTarget::RestoreDrawingState([In] ID2D1DrawingStateBlock* drawingStateBlock) Specifies a rectangle to which all subsequent drawing operations are clipped. The size and position of the clipping area, in device-independent pixels. The antialiasing mode that is used to draw the edges of clip rects that have subpixel boundaries, and to blend the clip with the scene contents. The blending is performed once when the PopAxisAlignedClip method is called, and does not apply to each primitive within the layer. The clipRect is transformed by the current world transform set on the render target. After the transform is applied to the clipRect that is passed in, the axis-aligned bounding box for the clipRect is computed. For efficiency, the contents are clipped to this axis-aligned bounding box and not to the original clipRect that is passed in.The following diagrams show how a rotation transform is applied to the render target, the resulting clipRect, and a calculated axis-aligned bounding box.Assume the rectangle in the following illustration is a render target that is aligned to the screen pixels. Apply a rotation transform to the render target. In the following illustration, the black rectangle represents the original render target and the red dashed rectangle represents the transformed render target. After calling PushAxisAlignedClip, the rotation transform is applied to the clipRect. In the following illustration, the blue rectangle represents the transformed clipRect. The axis-aligned bounding box is calculated. The green dashed rectangle represents the bounding box in the following illustration. All contents are clipped to this axis-aligned bounding box. Note??If rendering operations fail or if PopAxisAlignedClip is not called, clip rects may cause some artifacts on the render target. PopAxisAlignedClip can be considered a drawing operation that is designed to fix the borders of a clipping region. Without this call, the borders of a clipped area may be not antialiased or otherwise corrected.The PushAxisAlignedClip and PopAxisAlignedClip must match. Otherwise, the error state is set. For the render target to continue receiving new commands, you can call Flush to clear the error.A PushAxisAlignedClip and PopAxisAlignedClip pair can occur around or within a PushLayer and PopLayer, but cannot overlap. For example, the sequence of PushAxisAlignedClip, PushLayer, PopLayer, PopAxisAlignedClip is valid, but the sequence of PushAxisAlignedClip, PushLayer, PopAxisAlignedClip, PopLayer is invalid.This method doesn't return an error code if it fails. To determine whether a drawing operation (such as PushAxisAlignedClip) failed, check the result returned by the or methods. void ID2D1RenderTarget::PushAxisAlignedClip([In] const D2D_RECT_F* clipRect,[In] D2D1_ANTIALIAS_MODE antialiasMode) Removes the last axis-aligned clip from the render target. After this method is called, the clip is no longer applied to subsequent drawing operations. A PushAxisAlignedClip/PopAxisAlignedClip pair can occur around or within a PushLayer/PopLayer pair, but may not overlap. For example, a PushAxisAlignedClip, PushLayer, PopLayer, PopAxisAlignedClip sequence is valid, but a PushAxisAlignedClip, PushLayer, PopAxisAlignedClip, PopLayer sequence is not.PopAxisAlignedClip must be called once for every call to PushAxisAlignedClip.For an example, see How to Clip with an Axis-Aligned Clip Rectangle.This method doesn't return an error code if it fails. To determine whether a drawing operation (such as PopAxisAlignedClip) failed, check the result returned by the or methods. void ID2D1RenderTarget::PopAxisAlignedClip() Clears the drawing area to the specified color. The color to which the drawing area is cleared. Direct2D interprets the clearColor as straight alpha (not premultiplied). If the render target's alpha mode is , the alpha channel of clearColor is ignored and replaced with 1.0f (fully opaque).If the render target has an active clip (specified by PushAxisAlignedClip), the clear command is applied only to the area within the clip region. void ID2D1RenderTarget::Clear([In, Optional] const D2D_COLOR_F* clearColor) Initiates drawing on this render target. Drawing operations can only be issued between a BeginDraw and EndDraw call.BeginDraw and EndDraw are used to indicate that a render target is in use by the Direct2D system. Different implementations of might behave differently when BeginDraw is called. An may be locked between BeginDraw/EndDraw calls, a DXGI surface render target might be acquired on BeginDraw and released on EndDraw, while an may begin batching at BeginDraw and may present on EndDraw, for example.The BeginDraw method must be called before rendering operations can be called, though state-setting and state-retrieval operations can be performed even outside of BeginDraw/EndDraw.After BeginDraw is called, a render target will normally build up a batch of rendering commands, but defer processing of these commands until either an internal buffer is full, the Flush method is called, or until EndDraw is called. The EndDraw method causes any batched drawing operations to complete, and then returns an indicating the success of the operations and, optionally, the tag state of the render target at the time the error occurred. The EndDraw method always succeeds: it should not be called twice even if a previous EndDraw resulted in a failing .If EndDraw is called without a matched call to BeginDraw, it returns an error indicating that BeginDraw must be called before EndDraw. Calling BeginDraw twice on a render target puts the target into an error state where nothing further is drawn, and returns an appropriate and error information when EndDraw is called. void ID2D1RenderTarget::BeginDraw() Ends drawing operations on the render target and indicates the current error state and associated tags. When this method returns, contains the tag for drawing operations that caused errors or 0 if there were no errors. This parameter is passed uninitialized. When this method returns, contains the tag for drawing operations that caused errors or 0 if there were no errors. This parameter is passed uninitialized. If the method succeeds, it returns . Otherwise, it returns an error code and sets tag1 and tag2 to the tags that were active when the error occurred. Drawing operations can only be issued between a BeginDraw and EndDraw call.BeginDraw and EndDraw are use to indicate that a render target is in use by the Direct2D system. Different implementations of might behave differently when BeginDraw is called. An may be locked between BeginDraw/EndDraw calls, a DXGI surface render target might be acquired on BeginDraw and released on EndDraw, while an may begin batching at BeginDraw and may present on EndDraw, for example.The BeginDraw method must be called before rendering operations can be called, though state-setting and state-retrieval operations can be performed even outside of BeginDraw/EndDraw.After BeginDraw is called, a render target will normally build up a batch of rendering commands, but defer processing of these commands until either an internal buffer is full, the Flush method is called, or until EndDraw is called. The EndDraw method causes any batched drawing operations to complete, and then returns an indicating the success of the operations and, optionally, the tag state of the render target at the time the error occurred. The EndDraw method always succeeds: it should not be called twice even if a previous EndDraw resulted in a failing .If EndDraw is called without a matched call to BeginDraw, it returns an error indicating that BeginDraw must be called before EndDraw. Calling BeginDraw twice on a render target puts the target into an error state where nothing further is drawn, and returns an appropriate and error information when EndDraw is called. HRESULT ID2D1RenderTarget::EndDraw([Out, Optional] unsigned longlong* tag1,[Out, Optional] unsigned longlong* tag2) Retrieves the pixel format and alpha mode of the render target. The pixel format and alpha mode of the render target. D2D1_PIXEL_FORMAT ID2D1RenderTarget::GetPixelFormat() Sets the dots per inch (DPI) of the render target. A value greater than or equal to zero that specifies the horizontal DPI of the render target. A value greater than or equal to zero that specifies the vertical DPI of the render target. This method specifies the mapping from pixel space to device-independent space for the render target. If both dpiX and dpiY are 0, the factory-read system DPI is chosen. If one parameter is zero and the other unspecified, the DPI is not changed.For , the DPI defaults to the most recently factory-read system DPI. The default value for all other render targets is 96 DPI. void ID2D1RenderTarget::SetDpi([In] float dpiX,[In] float dpiY) Return the render target's dots per inch (DPI). When this method returns, contains the horizontal DPI of the render target. This parameter is passed uninitialized. When this method returns, contains the vertical DPI of the render target. This parameter is passed uninitialized. This method indicates the mapping from pixel space to device-independent space for the render target.For , the DPI defaults to the most recently factory-read system DPI. The default value for all other render targets is 96 DPI. void ID2D1RenderTarget::GetDpi([Out] float* dpiX,[Out] float* dpiY) Returns the size of the render target in device-independent pixels. The current size of the render target in device-independent pixels. D2D_SIZE_F ID2D1RenderTarget::GetSize() Returns the size of the render target in device pixels. The size of the render target in device pixels. D2D_SIZE_U ID2D1RenderTarget::GetPixelSize() Gets the maximum size, in device-dependent units (pixels), of any one bitmap dimension supported by the render target. The maximum size, in pixels, of any one bitmap dimension supported by the render target. unsigned int ID2D1RenderTarget::GetMaximumBitmapSize() Indicates whether the render target supports the specified properties. The render target properties to test. TRUE if the specified render target properties are supported by this render target; otherwise, . This method does not evaluate the DPI settings specified by the renderTargetProperties parameter. BOOL ID2D1RenderTarget::IsSupported([In] const D2D1_RENDER_TARGET_PROPERTIES* renderTargetProperties) Creates a render target that draws to a DirectX Graphics Infrastructure (DXGI) surface. To write to a Direct3D surface, you obtain an and pass it to the {{CreateDxgiSurfaceRenderTarget}} method to create a DXGI surface render target; you can then use the DXGI surface render target to draw 2-D content to the DXGI surface. A DXGI surface render target is a type of . Like other Direct2D render targets, you can use it to create resources and issue drawing commands. The DXGI surface render target and the DXGI surface must use the same DXGI format. If you specify the {{DXGI_FORMAT_UNKOWN}} format when you create the render target, it will automatically use the surface's format.The DXGI surface render target does not perform DXGI surface synchronization. To work with Direct2D, the Direct3D device that provides the must be created with the D3D10_CREATE_DEVICE_BGRA_SUPPORT flag.For more information about creating and using DXGI surface render targets, see the {{Direct2D and Direct3D Interoperability Overview}}.When you create a render target and hardware acceleration is available, you allocate resources on the computer's GPU. By creating a render target once and retaining it as long as possible, you gain performance benefits. Your application should create render targets once and hold onto them for the life of the application or until the render target's {{EndDraw}} method returns the {{D2DERR_RECREATE_TARGET}} error. When you receive this error, you need to recreate the render target (and any resources it created). an instance of The dxgi surface to bind this render target to The rendering mode, pixel format, remoting options, DPI information, and the minimum DirectX support required for hardware rendering. For information about supported pixel formats, see {{Supported Pixel Formats and Alpha Modes}}. Draws the specified bitmap after scaling it to the size of the specified rectangle. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as {{DrawBitmap}}) failed, check the result returned by the or methods. The bitmap to render. A value between 0.0f and 1.0f, inclusive, that specifies an opacity value to apply to the bitmap; this value is multiplied against the alpha values of the bitmap's contents. The default value is 1.0f. The interpolation mode to use if the bitmap is scaled or rotated by the drawing operation. The default value is . void ID2D1RenderTarget::DrawBitmap([In] ID2D1Bitmap* bitmap,[In, Optional] const D2D1_RECT_F* destinationRectangle,[None] float opacity,[None] D2D1_BITMAP_INTERPOLATION_MODE interpolationMode,[In, Optional] const D2D1_RECT_F* sourceRectangle) Draws the specified bitmap after scaling it to the size of the specified rectangle. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as {{DrawBitmap}}) failed, check the result returned by the or methods. The bitmap to render. The size and position, in device-independent pixels in the render target's coordinate space, of the area to which the bitmap is drawn; NULL to draw the selected portion of the bitmap at the origin of the render target. If the rectangle is specified but not well-ordered, nothing is drawn, but the render target does not enter an error state. A value between 0.0f and 1.0f, inclusive, that specifies an opacity value to apply to the bitmap; this value is multiplied against the alpha values of the bitmap's contents. The default value is 1.0f. The interpolation mode to use if the bitmap is scaled or rotated by the drawing operation. The default value is . void ID2D1RenderTarget::DrawBitmap([In] ID2D1Bitmap* bitmap,[In, Optional] const D2D1_RECT_F* destinationRectangle,[None] float opacity,[None] D2D1_BITMAP_INTERPOLATION_MODE interpolationMode,[In, Optional] const D2D1_RECT_F* sourceRectangle) Draws the specified bitmap after scaling it to the size of the specified rectangle. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as {{DrawBitmap}}) failed, check the result returned by the or methods. The bitmap to render. A value between 0.0f and 1.0f, inclusive, that specifies an opacity value to apply to the bitmap; this value is multiplied against the alpha values of the bitmap's contents. The default value is 1.0f. The interpolation mode to use if the bitmap is scaled or rotated by the drawing operation. The default value is . The size and position, in device-independent pixels in the bitmap's coordinate space, of the area within the bitmap to be drawn; NULL to draw the entire bitmap. void ID2D1RenderTarget::DrawBitmap([In] ID2D1Bitmap* bitmap,[In, Optional] const D2D1_RECT_F* destinationRectangle,[None] float opacity,[None] D2D1_BITMAP_INTERPOLATION_MODE interpolationMode,[In, Optional] const D2D1_RECT_F* sourceRectangle) Draws the outline of the specified ellipse using the specified stroke style. The {{DrawEllipse}} method doesn't return an error code if it fails. To determine whether a drawing operation (such as DrawEllipse) failed, check the result returned by the or methods. The position and radius of the ellipse to draw, in device-independent pixels. The brush used to paint the ellipse's outline. void ID2D1RenderTarget::DrawEllipse([In] const D2D1_ELLIPSE* ellipse,[In] ID2D1Brush* brush,[None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) Draws the outline of the specified ellipse using the specified stroke style. The {{DrawEllipse}} method doesn't return an error code if it fails. To determine whether a drawing operation (such as DrawEllipse) failed, check the result returned by the or methods. The position and radius of the ellipse to draw, in device-independent pixels. The brush used to paint the ellipse's outline. The thickness of the ellipse's stroke. The stroke is centered on the ellipse's outline. void ID2D1RenderTarget::DrawEllipse([In] const D2D1_ELLIPSE* ellipse,[In] ID2D1Brush* brush,[None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) Draws the outline of the specified geometry. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as DrawGeometry) failed, check the result returned by the or methods. The geometry to draw. The brush used to paint the geometry's stroke. void ID2D1RenderTarget::DrawGeometry([In] ID2D1Geometry* geometry,[In] ID2D1Brush* brush,[None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) Draws the outline of the specified geometry. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as DrawGeometry) failed, check the result returned by the or methods. The geometry to draw. The brush used to paint the geometry's stroke. The thickness of the geometry's stroke. The stroke is centered on the geometry's outline. void ID2D1RenderTarget::DrawGeometry([In] ID2D1Geometry* geometry,[In] ID2D1Brush* brush,[None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) Draws a line between the specified points. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as DrawLine) failed, check the result returned by the or methods. The start point of the line, in device-independent pixels. The end point of the line, in device-independent pixels. The brush used to paint the line's stroke. void ID2D1RenderTarget::DrawLine([None] D2D1_POINT_2F point0,[None] D2D1_POINT_2F point1,[In] ID2D1Brush* brush,[None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) Draws a line between the specified points. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as DrawLine) failed, check the result returned by the or methods. The start point of the line, in device-independent pixels. The end point of the line, in device-independent pixels. The brush used to paint the line's stroke. A value greater than or equal to 0.0f that specifies the width of the stroke. If this parameter isn't specified, it defaults to 1.0f. The stroke is centered on the line. void ID2D1RenderTarget::DrawLine([None] D2D1_POINT_2F point0,[None] D2D1_POINT_2F point1,[In] ID2D1Brush* brush,[None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) Draws the outline of a rectangle that has the specified dimensions. When this method fails, it does not return an error code. To determine whether a drawing method (such as {{DrawRectangle}}) failed, check the result returned by the or method. The dimensions of the rectangle to draw, in device-independent pixels. The brush used to paint the rectangle's stroke. void ID2D1RenderTarget::DrawRectangle([In] const D2D1_RECT_F* rect,[In] ID2D1Brush* brush,[None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) Draws the outline of a rectangle that has the specified dimensions and stroke style. When this method fails, it does not return an error code. To determine whether a drawing method (such as {{DrawRectangle}}) failed, check the result returned by the or method. The dimensions of the rectangle to draw, in device-independent pixels. The brush used to paint the rectangle's stroke. A value greater than or equal to 0.0f that specifies the width of the rectangle's stroke. The stroke is centered on the rectangle's outline. void ID2D1RenderTarget::DrawRectangle([In] const D2D1_RECT_F* rect,[In] ID2D1Brush* brush,[None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) Draws the outline of the specified rounded rectangle. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as {{DrawRoundedRectangle}}) failed, check the result returned by the or methods. The dimensions of the rounded rectangle to draw, in device-independent pixels. The brush used to paint the rounded rectangle's outline. void ID2D1RenderTarget::DrawRoundedRectangle([In] const D2D1_ROUNDED_RECT* roundedRect,[In] ID2D1Brush* brush,[None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) Draws the outline of the specified rounded rectangle. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as {{DrawRoundedRectangle}}) failed, check the result returned by the or methods. The dimensions of the rounded rectangle to draw, in device-independent pixels. The brush used to paint the rounded rectangle's outline. The width of the rounded rectangle's stroke. The stroke is centered on the rounded rectangle's outline. The default value is 1.0f. void ID2D1RenderTarget::DrawRoundedRectangle([In] const D2D1_ROUNDED_RECT* roundedRect,[In] ID2D1Brush* brush,[None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) Draws the outline of the specified rounded rectangle using the specified stroke style. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as {{DrawRoundedRectangle}}) failed, check the result returned by the or methods. The dimensions of the rounded rectangle to draw, in device-independent pixels. The brush used to paint the rounded rectangle's outline. The width of the rounded rectangle's stroke. The stroke is centered on the rounded rectangle's outline. The default value is 1.0f. The style of the rounded rectangle's stroke, or NULL to paint a solid stroke. The default value is NULL. void ID2D1RenderTarget::DrawRoundedRectangle([In] const D2D1_ROUNDED_RECT* roundedRect,[In] ID2D1Brush* brush,[None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) Draws the specified text using the format information provided by an object. To create an object, create an and call its {{CreateTextFormat}} method. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as {{DrawText}}) failed, check the result returned by the or methods. A reference to an array of Unicode characters to draw. An object that describes formatting details of the text to draw, such as the font, the font size, and flow direction. The size and position of the area in which the text is drawn. The brush used to paint the text. void ID2D1RenderTarget::DrawTextA([In, Buffer] const wchar_t* string,[None] int stringLength,[In] IDWriteTextFormat* textFormat,[In] const D2D1_RECT_F* layoutRect,[In] ID2D1Brush* defaultForegroundBrush,[None] D2D1_DRAW_TEXT_OPTIONS options,[None] DWRITE_MEASURING_MODE measuringMode) Draws the specified text using the format information provided by an object. To create an object, create an and call its {{CreateTextFormat}} method. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as {{DrawText}}) failed, check the result returned by the or methods. A reference to an array of Unicode characters to draw. An object that describes formatting details of the text to draw, such as the font, the font size, and flow direction. The size and position of the area in which the text is drawn. The brush used to paint the text. A value that indicates whether the text should be snapped to pixel boundaries and whether the text should be clipped to the layout rectangle. The default value is , which indicates that text should be snapped to pixel boundaries and it should not be clipped to the layout rectangle. void ID2D1RenderTarget::DrawTextA([In, Buffer] const wchar_t* string,[None] int stringLength,[In] IDWriteTextFormat* textFormat,[In] const D2D1_RECT_F* layoutRect,[In] ID2D1Brush* defaultForegroundBrush,[None] D2D1_DRAW_TEXT_OPTIONS options,[None] DWRITE_MEASURING_MODE measuringMode) Draws the specified text using the format information provided by an object. To create an object, create an and call its {{CreateTextFormat}} method. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as {{DrawText}}) failed, check the result returned by the or methods. A reference to an array of Unicode characters to draw. An object that describes formatting details of the text to draw, such as the font, the font size, and flow direction. The size and position of the area in which the text is drawn. The brush used to paint the text. A value that indicates whether the text should be snapped to pixel boundaries and whether the text should be clipped to the layout rectangle. The default value is , which indicates that text should be snapped to pixel boundaries and it should not be clipped to the layout rectangle. A value that indicates how glyph metrics are used to measure text when it is formatted. The default value is DWRITE_MEASURING_MODE_NATURAL. void ID2D1RenderTarget::DrawTextA([In, Buffer] const wchar_t* string,[None] int stringLength,[In] IDWriteTextFormat* textFormat,[In] const D2D1_RECT_F* layoutRect,[In] ID2D1Brush* defaultForegroundBrush,[None] D2D1_DRAW_TEXT_OPTIONS options,[None] DWRITE_MEASURING_MODE measuringMode) Draws the formatted text described by the specified object. When drawing the same text repeatedly, using the DrawTextLayout method is more efficient than using the {{DrawText}} method because the text doesn't need to be formatted and the layout processed with each call. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as DrawTextLayout) failed, check the result returned by the or methods. The point, described in device-independent pixels, at which the upper-left corner of the text described by textLayout is drawn. The formatted text to draw. Any drawing effects that do not inherit from are ignored. If there are drawing effects that inherit from ID2D1Resource that are not brushes, this method fails and the render target is put in an error state. The brush used to paint any text in textLayout that does not already have a brush associated with it as a drawing effect (specified by the method). void ID2D1RenderTarget::DrawTextLayout([None] D2D1_POINT_2F origin,[In] IDWriteTextLayout* textLayout,[In] ID2D1Brush* defaultForegroundBrush,[None] D2D1_DRAW_TEXT_OPTIONS options) Ends drawing operations on the render target and indicates the current error state and associated tags. Drawing operations can only be issued between a {{BeginDraw}} and EndDraw call.BeginDraw and EndDraw are use to indicate that a render target is in use by the Direct2D system. Different implementations of might behave differently when {{BeginDraw}} is called. An may be locked between BeginDraw/EndDraw calls, a DXGI surface render target might be acquired on BeginDraw and released on EndDraw, while an may begin batching at BeginDraw and may present on EndDraw, for example. The BeginDraw method must be called before rendering operations can be called, though state-setting and state-retrieval operations can be performed even outside of {{BeginDraw}}/EndDraw. After {{BeginDraw}} is called, a render target will normally build up a batch of rendering commands, but defer processing of these commands until either an internal buffer is full, the {{Flush}} method is called, or until EndDraw is called. The EndDraw method causes any batched drawing operations to complete, and then returns an HRESULT indicating the success of the operations and, optionally, the tag state of the render target at the time the error occurred. The EndDraw method always succeeds: it should not be called twice even if a previous EndDraw resulted in a failing HRESULT. If EndDraw is called without a matched call to {{BeginDraw}}, it returns an error indicating that BeginDraw must be called before EndDraw. Calling BeginDraw twice on a render target puts the target into an error state where nothing further is drawn, and returns an appropriate HRESULT and error information when EndDraw is called. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code and sets tag1 and tag2 to the tags that were active when the error occurred. Paints the interior of the specified geometry. If the opacityBrush parameter is not NULL, the alpha value of each pixel of the mapped opacityBrush is used to determine the resulting opacity of each corresponding pixel of the geometry. Only the alpha value of each color in the brush is used for this processing; all other color information is ignored. The alpha value specified by the brush is multiplied by the alpha value of the geometry after the geometry has been painted by brush. When this method fails, it does not return an error code. To determine whether a drawing operation (such as FillGeometry) failed, check the result returned by the or method. The geometry to paint. The brush used to paint the geometry's interior. void FillGeometry([In] ID2D1Geometry* geometry,[In] ID2D1Brush* brush,[In, Optional] ID2D1Brush* opacityBrush) Applies the opacity mask described by the specified bitmap to a brush and uses that brush to paint a region of the render target. For this method to work properly, the render target must be using the antialiasing mode. You can set the antialiasing mode by calling the method. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as {{FillOpacityMask}}) failed, check the result returned by the or methods. The opacity mask to apply to the brush. The alpha value of each pixel in the region specified by sourceRectangle is multiplied with the alpha value of the brush after the brush has been mapped to the area defined by destinationRectangle. The brush used to paint the region of the render target specified by destinationRectangle. The type of content the opacity mask contains. The value is used to determine the color space in which the opacity mask is blended. void ID2D1RenderTarget::FillOpacityMask([In] ID2D1Bitmap* opacityMask,[In] ID2D1Brush* brush,[None] D2D1_OPACITY_MASK_CONTENT content,[In, Optional] const D2D1_RECT_F* destinationRectangle,[In, Optional] const D2D1_RECT_F* sourceRectangle) Paints the interior of the specified rounded rectangle. This method doesn't return an error code if it fails. To determine whether a drawing operation (such as {{FillRoundedRectangle}}) failed, check the result returned by the or methods. The dimensions of the rounded rectangle to paint, in device-independent pixels. The brush used to paint the interior of the rounded rectangle. void ID2D1RenderTarget::FillRoundedRectangle([In] const D2D1_ROUNDED_RECT* roundedRect,[In] ID2D1Brush* brush) Executes all pending drawing commands. This command does not flush the device that is associated with the render target. Calling this method resets the error state of the render target. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code and sets tag1 and tag2 to the tags that were active when the error occurred. If no error occurred, this method sets the error tag state to be (0,0). HRESULT ID2D1RenderTarget::Flush([Out, Optional] D2D1_TAG* tag1,[Out, Optional] D2D1_TAG* tag2) Gets the current transform of the render target. GetTransform void ID2D1RenderTarget::GetTransform([Out] D2D_MATRIX_3X2_F* transform) Retrieves the current antialiasing mode for nontext drawing operations. GetAntialiasMode D2D1_ANTIALIAS_MODE ID2D1RenderTarget::GetAntialiasMode() Gets the current antialiasing mode for text and glyph drawing operations. GetTextAntialiasMode D2D1_TEXT_ANTIALIAS_MODE ID2D1RenderTarget::GetTextAntialiasMode() Retrieves the render target's current text rendering options. If the settings specified by textRenderingParams are incompatible with the render target's text antialiasing mode (specified by SetTextAntialiasMode), subsequent text and glyph drawing operations will fail and put the render target into an error state. GetTextRenderingParams void ID2D1RenderTarget::GetTextRenderingParams([Out, Optional] IDWriteRenderingParams** textRenderingParams) Retrieves the pixel format and alpha mode of the render target. GetPixelFormat D2D1_PIXEL_FORMAT ID2D1RenderTarget::GetPixelFormat() Returns the size of the render target in device-independent pixels. GetSize D2D_SIZE_F ID2D1RenderTarget::GetSize() Returns the size of the render target in device pixels. GetPixelSize D2D_SIZE_U ID2D1RenderTarget::GetPixelSize() Gets the maximum size, in device-dependent units (pixels), of any one bitmap dimension supported by the render target. GetMaximumBitmapSize unsigned int ID2D1RenderTarget::GetMaximumBitmapSize() Get or set the default stroke width used for all methods that are not explicitly using it. Default is set to 1.0f. Get or sets the dots per inch (DPI) of the render target. This method specifies the mapping from pixel space to device-independent space for the render target. If both dpiX and dpiY are 0, the factory-read system DPI is chosen. If one parameter is zero and the other unspecified, the DPI is not changed. For , the DPI defaults to the most recently factory-read system DPI. The default value for all other render targets is 96 DPI. void ID2D1RenderTarget::SetDpi([None] float dpiX,[None] float dpiY) Initializes a new instance of the class. The surface. HRESULT D2D1CreateDeviceContext([In] IDXGISurface* dxgiSurface,[In, Optional] const D2D1_CREATION_PROPERTIES* creationProperties,[Out] ID2D1DeviceContext** d2dDeviceContext) Initializes a new instance of the class. The surface. The creation properties. HRESULT D2D1CreateDeviceContext([In] IDXGISurface* dxgiSurface,[In, Optional] const D2D1_CREATION_PROPERTIES* creationProperties,[Out] ID2D1DeviceContext** d2dDeviceContext) Initializes a new instance of the class using an existing . The device. The options to be applied to the created device context. The new device context will not have a selected target bitmap. The caller must create and select a bitmap as the target surface of the context. HRESULT ID2D1Device::CreateDeviceContext([In] D2D1_DEVICE_CONTEXT_OPTIONS options,[Out] ID2D1DeviceContext** deviceContext) Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] No documentation. No documentation. No documentation. No documentation. No documentation. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. E_OUTOFMEMORYDirect2D could not allocate sufficient memory to complete the call. E_INVALIDARGAn invalid value was passed to the method. D3DERR_OUTOFVIDEOMEMORYDirect3D does not have enough display memory to perform the operation.? The new bitmap can be used as a target for SetTarget if it is created with . HRESULT ID2D1DeviceContext::CreateBitmap([In] D2D_SIZE_U size,[In, Buffer, Optional] const void* sourceData,[In] unsigned int pitch,[In] const D2D1_BITMAP_PROPERTIES1* bitmapProperties,[Out, Fast] ID2D1Bitmap1** bitmap) No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1DeviceContext::CreateBitmapFromWicBitmap([In] IWICBitmapSource* wicBitmapSource,[In, Optional] const D2D1_BITMAP_PROPERTIES1* bitmapProperties,[Out] ID2D1Bitmap1** bitmap) [This documentation is preliminary and is subject to change.] The space of color context to create. A buffer containing the ICC profile bytes used to initialize the color context when space is . For other types, the parameter is ignored and should be set to null. The size in bytes of Profile. When this method returns, contains the address of a reference to a new color context object. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. E_OUTOFMEMORYDirect2D could not allocate sufficient memory to complete the call. E_INVALIDARGAn invalid value was passed to the method.? The new color context can be used in D2D1_BITMAP1_PROPERTIES to initialize the color context of a created bitmap.When space is , profile and profileSize must be specified. Otherwise, these parameters should be set to null and zero respectively. When the space is , the model field of the profile header is inspected to determine if this profile is sRGB or scRGB and the color space is updated respectively. Otherwise the space remains custom. HRESULT ID2D1DeviceContext::CreateColorContext([In] D2D1_COLOR_SPACE space,[In, Buffer, Optional] const unsigned char* profile,[In] unsigned int profileSize,[Out, Fast] ID2D1ColorContext** colorContext) [This documentation is preliminary and is subject to change.] The path to the file containing the profile bytes to initialize the color context with. When this method returns, contains the address of a reference to a new color context. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. E_OUTOFMEMORYDirect2D could not allocate sufficient memory to complete the call. E_INVALIDARGAn invalid value was passed to the method.? The new color context can be used in D2D1_BITMAP1_PROPERTIES to initialize the color context of a created bitmap. The model field of the profile header is inspected to determine whether this profile is sRGB or scRGB and the color space is updated respectively. Otherwise the space is custom.Additional References, HRESULT ID2D1DeviceContext::CreateColorContextFromFilename([In] const wchar_t* filename,[Out, Fast] ID2D1ColorContext** colorContext) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1DeviceContext::CreateColorContextFromWicColorContext([In] IWICColorContext* wicColorContext,[Out, Fast] ID2D1ColorContext** colorContext) No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1DeviceContext::CreateBitmapFromDxgiSurface([In] IDXGISurface* surface,[In, Optional] const D2D1_BITMAP_PROPERTIES1* bitmapProperties,[Out, Fast] ID2D1Bitmap1** bitmap1) [This documentation is preliminary and is subject to change.] The class ID of the effect to create. When this method returns, contains the address of a reference to a new effect. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. E_OUTOFMEMORYDirect2D could not allocate sufficient memory to complete the call. E_INVALIDARGAn invalid value was passed to the method. D3DERR_OUTOFVIDEOMEMORYDirect3D does not have enough display memory to perform the operation. D2DERR_EFFECT_IS_NOT_REGISTEREDThe specified effect is not registered by the system.? The created effect does not increment the reference count for the dynamic-link library (DLL) from which the effect was created. If the application deletes an effect while that effect is loaded, the resulting behavior will be unpredictable. HRESULT ID2D1DeviceContext::CreateEffect([In] const GUID& effectId,[Out, Fast] ID2D1Effect** effect) [This documentation is preliminary and is subject to change.] An array of color values and offsets. The number of elements in the gradientStops array. Specifies both the input color space and the space in which the color interpolation occurs. The color space that colors will be converted to after interpolation occurs. The precision of the texture used to hold interpolated values. Defines how colors outside of the range defined by the stop collection are determined. The new gradient stop collection. No documentation. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. E_OUTOFMEMORYDirect2D could not allocate sufficient memory to complete the call. E_INVALIDARGAn invalid value was passed to the method.? This method linearly interpolates between the color stops. An optional color space conversion is applied after interpolation. Whether and how this gamma conversion is applied is determined before and after interpolation. This method will fail if the device context does not support the requested buffer precision.Additional ReferencesD2D1_GRADIENT_STOP, D2D1_GAMMA_CONVERSION, , , RequirementsMinimum supported operating systemSame as Interface / Class Highest IRQL levelN/A (user mode) Callable from DlllMain()No Callable from services and session 0Yes Callable from UI threadYes? HRESULT ID2D1DeviceContext::CreateGradientStopCollection([In, Buffer] const D2D1_GRADIENT_STOP* straightAlphaGradientStops,[In] unsigned int straightAlphaGradientStopsCount,[In] D2D1_COLOR_SPACE preInterpolationSpace,[In] D2D1_COLOR_SPACE postInterpolationSpace,[In] D2D1_BUFFER_PRECISION bufferPrecision,[In] D2D1_EXTEND_MODE extendMode,[In] D2D1_COLOR_INTERPOLATION_MODE colorInterpolationMode,[Out, Fast] ID2D1GradientStopCollection1** gradientStopCollection1) No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1DeviceContext::CreateImageBrush([In] ID2D1Image* image,[In] const D2D1_IMAGE_BRUSH_PROPERTIES* imageBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[Out, Fast] ID2D1ImageBrush** imageBrush) No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1DeviceContext::CreateBitmapBrush([In] ID2D1Bitmap* bitmap,[In, Optional] const D2D1_BITMAP_BRUSH_PROPERTIES1* bitmapBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[Out, Fast] ID2D1BitmapBrush1** bitmapBrush) No documentation. No documentation. No documentation. HRESULT ID2D1DeviceContext::CreateCommandList([Out, Fast] ID2D1CommandList** commandList) No documentation. No documentation. No documentation. BOOL ID2D1DeviceContext::IsDxgiFormatSupported([In] DXGI_FORMAT format) No documentation. No documentation. No documentation. BOOL ID2D1DeviceContext::IsBufferPrecisionSupported([In] D2D1_BUFFER_PRECISION bufferPrecision) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1DeviceContext::GetImageLocalBounds([In] ID2D1Image* image,[Out] D2D_RECT_F* localBounds) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1DeviceContext::GetImageWorldBounds([In] ID2D1Image* image,[Out] D2D_RECT_F* worldBounds) No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1DeviceContext::GetGlyphRunWorldBounds([In] D2D_POINT_2F baselineOrigin,[In] const DWRITE_GLYPH_RUN* glyphRun,[In] DWRITE_MEASURING_MODE measuringMode,[Out] D2D_RECT_F* bounds) [This documentation is preliminary and is subject to change.] When this method returns, contains the address of a reference to a Direct2D device associated with this device context. The application can retrieve the device even if it is created from an earlier render target code-path. The application must use an interface and then call GetDevice. Some functionality for controlling all of the resources for a set of device contexts is maintained only on an object. void ID2D1DeviceContext::GetDevice([Out] ID2D1Device** device) [This documentation is preliminary and is subject to change.] The DXGI surface to be set as the target. This method allows the device context to target a DXGI surface. This is equivalent to calling CreateBitmapFromDxgiSurface followed by SetTarget. The created bitmap can be a source for drawing and a target bitmap. The alpha mode of the created bitmap will be . The DPI of the created bitmap will be (96,96). The created bitmap will inherit the bind flags of the DXG surface.If Surface is null, this is equivalent to using SetTargetBitmap(null);.If the provided surface does not support being bound as a render target, the context will return D2DERR_BITMAP_IS_NOT_A_TARGET.If the surface is not associated with the same device as this device context, the context will return D2DERR_WRONG_RESOURCE_DOMAIN. void ID2D1DeviceContext::SetTarget([In, Optional] ID2D1Image* image) [This documentation is preliminary and is subject to change.] When this method returns, contains the address of a reference to the target currently associated with the device context. If a target is not associated with the device context, target will contain null when the methods returns.If the currently selected target is a bitmap rather than a command list, the application can gain access to the initial bitmaps created by using one of the following methods:CreateHwndRenderTarget CreateDxgiSurfaceRenderTarget CreateWicBitmapRenderTarget CreateDCRenderTarget CreateCompatibleRenderTargetIt is not possible for an application to destroy these bitmaps. All of these bitmaps are bindable as bitmap targets. However not all of these bitmaps can be used as bitmap sources for methods.CreateDxgiSurfaceRenderTarget will create a bitmap that is usable as a bitmap source if the DXGI surface is bindable as a shader resource view.CreateCompatibleRenderTarget will always create bitmaps that are usable as a bitmap source. will copy from the to the original bitmap associated with it. will copy from the original bitmap to the . objects will be locked in the following circumstances:BeginDraw has been called and the currently selected target bitmap is a WIC bitmap. A WIC bitmap is set as the target of a device context after BeginDraw has been called and before EndDraw has been called. Any of the ID2D1Bitmap::Copy* methods are called with a WIC bitmap as either the source or destination.IWICBitmap objects will be unlocked in the following circumstances:EndDraw is called and the currently selected target bitmap is a WIC bitmap. A WIC bitmap is removed as the target of a device context between the calls to BeginDraw and EndDraw. Any of the ID2D1Bitmap::Copy* methods are called with a WIC bitmap as either the source or destination.Direct2D will only lock bitmaps that are not currently locked.Calling QueryInterface for will always succeed. will return a device context corresponding to the currently bound target bitmap. GetDC will fail if the target bitmap was not created with the GDI_COMPATIBLE flag set. will return if there are any outstanding references to the original target bitmap associated with the render target.Although the target can be a command list, it cannot be any other type of image. It cannot be the output image of an effect. void ID2D1DeviceContext::GetTarget([Out, Optional] ID2D1Image** image) No documentation. No documentation. void ID2D1DeviceContext::SetRenderingControls([In] const D2D1_RENDERING_CONTROLS* renderingControls) No documentation. No documentation. void ID2D1DeviceContext::GetRenderingControls([Out] D2D1_RENDERING_CONTROLS* renderingControls) No documentation. No documentation. void ID2D1DeviceContext::SetPrimitiveBlend([In] D2D1_PRIMITIVE_BLEND primitiveBlend) No documentation. No documentation. D2D1_PRIMITIVE_BLEND ID2D1DeviceContext::GetPrimitiveBlend() No documentation. No documentation. void ID2D1DeviceContext::SetUnitMode([In] D2D1_UNIT_MODE unitMode) [This documentation is preliminary and is subject to change.] The unit mode. D2D1_UNIT_MODE ID2D1DeviceContext::GetUnitMode() [This documentation is preliminary and is subject to change.] Origin of first glyph in the series. Glyph information including glyph indices, advances, and offsets. Supplementary glyph series information. The brush that defines the text color. The measuring mode of the glyph series, used to determine the advances and offsets. The default value is . The glyphRunDescription is ignored when rendering, but can be useful for printing and serialization of rendering commands, such as to an XPS or SVG file. This extends , which lacked the glyph run description. void ID2D1DeviceContext::DrawGlyphRun([In] D2D_POINT_2F baselineOrigin,[In] const DWRITE_GLYPH_RUN* glyphRun,[In, Optional] const DWRITE_GLYPH_RUN_DESCRIPTION* glyphRunDescription,[In] ID2D1Brush* foregroundBrush,[In] DWRITE_MEASURING_MODE measuringMode) No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. void ID2D1DeviceContext::DrawImage([In] ID2D1Image* image,[In, Optional] const D2D_POINT_2F* targetOffset,[In, Optional] const D2D_RECT_F* imageRectangle,[In] D2D1_INTERPOLATION_MODE interpolationMode,[In] D2D1_COMPOSITE_MODE compositeMode) No documentation. No documentation. No documentation. void ID2D1DeviceContext::DrawGdiMetafile([In] ID2D1GdiMetafile* gdiMetafile,[In, Optional] const D2D_POINT_2F* targetOffset) No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. void ID2D1DeviceContext::DrawBitmap([In] ID2D1Bitmap* bitmap,[In, Optional] const D2D_RECT_F* destinationRectangle,[In] float opacity,[In] D2D1_INTERPOLATION_MODE interpolationMode,[In, Optional] const D2D_RECT_F* sourceRectangle) No documentation. No documentation. No documentation. void ID2D1DeviceContext::PushLayer([In] const D2D1_LAYER_PARAMETERS1* layerParameters,[In, Optional] ID2D1Layer* layer) No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1DeviceContext::InvalidateEffectInputRectangle([In] ID2D1Effect* effect,[In] unsigned int input,[In] const D2D_RECT_F* inputRectangle) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1DeviceContext::GetEffectInvalidRectangleCount([In] ID2D1Effect* effect,[Out] unsigned int* rectangleCount) No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1DeviceContext::GetEffectInvalidRectangles([In] ID2D1Effect* effect,[Out, Buffer] D2D_RECT_F* rectangles,[In] unsigned int rectanglesCount) No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1DeviceContext::GetEffectRequiredInputRectangles([In] ID2D1Effect* renderEffect,[In, Optional] const D2D_RECT_F* renderImageRectangle,[In, Buffer] const D2D1_EFFECT_INPUT_DESCRIPTION* inputDescriptions,[Out, Buffer] D2D_RECT_F* requiredInputRects,[In] unsigned int inputCount) No documentation. No documentation. No documentation. No documentation. No documentation. void ID2D1DeviceContext::FillOpacityMask([In] ID2D1Bitmap* opacityMask,[In] ID2D1Brush* brush,[In, Optional] const D2D_RECT_F* destinationRectangle,[In, Optional] const D2D_RECT_F* sourceRectangle) [This documentation is preliminary and is subject to change.] The application can retrieve the device even if it is created from an earlier render target code-path. The application must use an interface and then call GetDevice. Some functionality for controlling all of the resources for a set of device contexts is maintained only on an object. GetDevice void ID2D1DeviceContext::GetDevice([Out] ID2D1Device** device) [This documentation is preliminary and is subject to change.] If a target is not associated with the device context, target will contain null when the methods returns.If the currently selected target is a bitmap rather than a command list, the application can gain access to the initial bitmaps created by using one of the following methods:CreateHwndRenderTarget CreateDxgiSurfaceRenderTarget CreateWicBitmapRenderTarget CreateDCRenderTarget CreateCompatibleRenderTargetIt is not possible for an application to destroy these bitmaps. All of these bitmaps are bindable as bitmap targets. However not all of these bitmaps can be used as bitmap sources for methods.CreateDxgiSurfaceRenderTarget will create a bitmap that is usable as a bitmap source if the DXGI surface is bindable as a shader resource view.CreateCompatibleRenderTarget will always create bitmaps that are usable as a bitmap source. will copy from the to the original bitmap associated with it. will copy from the original bitmap to the . objects will be locked in the following circumstances:BeginDraw has been called and the currently selected target bitmap is a WIC bitmap. A WIC bitmap is set as the target of a device context after BeginDraw has been called and before EndDraw has been called. Any of the ID2D1Bitmap::Copy* methods are called with a WIC bitmap as either the source or destination.IWICBitmap objects will be unlocked in the following circumstances:EndDraw is called and the currently selected target bitmap is a WIC bitmap. A WIC bitmap is removed as the target of a device context between the calls to BeginDraw and EndDraw. Any of the ID2D1Bitmap::Copy* methods are called with a WIC bitmap as either the source or destination.Direct2D will only lock bitmaps that are not currently locked.Calling QueryInterface for will always succeed. will return a device context corresponding to the currently bound target bitmap. GetDC will fail if the target bitmap was not created with the GDI_COMPATIBLE flag set. will return if there are any outstanding references to the original target bitmap associated with the render target.Although the target can be a command list, it cannot be any other type of image. It cannot be the output image of an effect. GetTarget void ID2D1DeviceContext::GetTarget([Out, Optional] ID2D1Image** image) No documentation. GetRenderingControls void ID2D1DeviceContext::GetRenderingControls([Out] D2D1_RENDERING_CONTROLS* renderingControls) No documentation. GetPrimitiveBlend D2D1_PRIMITIVE_BLEND ID2D1DeviceContext::GetPrimitiveBlend() [This documentation is preliminary and is subject to change.] GetUnitMode D2D1_UNIT_MODE ID2D1DeviceContext::GetUnitMode() Specifies the identifiers of the metadata items in an 8BIM IPTC digest metadata block. WIC8BIMIptcDigestProperties [VT_LPSTR] A name that identifies the 8BIM block. WIC8BIMIptcDigestPString [VT_BLOB] The embedded IPTC digest value. WIC8BIMIptcDigestIptcDigest Specifies the identifiers of the metadata items in an 8BIM IPTC block. WIC8BIMIptcProperties [VT_LPSTR] A name that identifies the 8BIM block. WIC8BIMIptcPString [VT_UNKNOWN] The IPTC block embedded in this 8BIM IPTC block. WIC8BIMIptcEmbeddedIPTC Specifies the identifiers of the metadata items in an 8BIMResolutionInfo block. WIC8BIMResolutionInfoProperties [VT_LPSTR] A name that identifies the 8BIM block. WIC8BIMResolutionInfoPString [VT_UI4] The horizontal resolution of the image. WIC8BIMResolutionInfoHResolution [VT_UI2] The units that the horizontal resolution is specified in; a 1 indicates pixels per inch and a 2 indicates pixels per centimeter. WIC8BIMResolutionInfoHResolutionUnit [VT_UI2] The units that the image width is specified in; a 1 indicates inches, a 2 indicates centimeters, a 3 indicates points, a 4 specifies picas, and a 5 specifies columns. WIC8BIMResolutionInfoWidthUnit [VT_UI4] The vertical resolution of the image. WIC8BIMResolutionInfoVResolution [VT_UI2] The units that the vertical resolution is specified in; a 1 indicates pixels per inch and a 2 indicates pixels per centimeter. WIC8BIMResolutionInfoVResolutionUnit [VT_UI2] The units that the image height is specified in; a 1 indicates inches, a 2 indicates centimeters, a 3 indicates points, a 4 specifies picas, and a 5 specifies columns. WIC8BIMResolutionInfoHeightUnit Specifies the desired alpha channel usage. WICBitmapAlphaChannelOption Use alpha channel. WICBitmapUseAlpha Use a pre-multiplied alpha channel. WICBitmapUsePremultipliedAlpha Ignore alpha channel. WICBitmapIgnoreAlpha Specifies the desired cache usage. The CreateBitmap of the interface does not support when the pixelFormat is a native pixel format provided by Windows Imaging Component (WIC). WICBitmapCreateCacheOption Do not cache the bitmap. WICBitmapNoCache Cache the bitmap when needed. WICBitmapCacheOnDemand Cache the bitmap at initialization. WICBitmapCacheOnLoad Specifies the capabilities of the decoder. WICBitmapDecoderCapabilities Decoder recognizes the image was encoded with an encoder produced by the same vendor. WICBitmapDecoderCapabilitySameEncoder Decoder can decode all the images within an image container. WICBitmapDecoderCapabilityCanDecodeAllImages Decoder can decode some of the images within an image container. WICBitmapDecoderCapabilityCanDecodeSomeImages Decoder can enumerate the metadata blocks within a container format. WICBitmapDecoderCapabilityCanEnumerateMetadata Decoder can find and decode a thumbnail. WICBitmapDecoderCapabilityCanDecodeThumbnail None. None Specifies the type of dither algorithm to apply when converting between image formats. WICBitmapDitherType A solid color algorithm without dither. WICBitmapDitherTypeNone A solid color algorithm without dither. WICBitmapDitherTypeSolid A 4x4 ordered dither algorithm. WICBitmapDitherTypeOrdered4x4 An 8x8 ordered dither algorithm. WICBitmapDitherTypeOrdered8x8 A 16x16 ordered dither algorithm. WICBitmapDitherTypeOrdered16x16 A 4x4 spiral dither algorithm. WICBitmapDitherTypeSpiral4x4 An 8x8 spiral dither algorithm. WICBitmapDitherTypeSpiral8x8 A 4x4 dual spiral dither algorithm. WICBitmapDitherTypeDualSpiral4x4 An 8x8 dual spiral dither algorithm. WICBitmapDitherTypeDualSpiral8x8 An error diffusion algorithm. WICBitmapDitherTypeErrorDiffusion Specifies the cache options available for an encoder. WICBitmapEncoderCacheOption The encoder is cached in memory. This option is not supported. WICBitmapEncoderCacheInMemory The encoder is cached to a temporary file. This option is not supported. WICBitmapEncoderCacheTempFile The encoder is not cached. WICBitmapEncoderNoCache Specifies the sampling or filtering mode to use when scaling an image. WICBitmapInterpolationMode A nearest neighbor interpolation algorithm. Also known as nearest pixel or point interpolation. The output pixel is assigned the value of the pixel that the point falls within. No other pixels are considered. WICBitmapInterpolationModeNearestNeighbor A bilinear interpolation algorithm. The output pixel values are computed as a weighted average of the nearest four pixels in a 2x2 grid. WICBitmapInterpolationModeLinear A bicubic interpolation algorithm. Destination pixel values are computed as a weighted average of the nearest sixteen pixels in a 4x4 grid. WICBitmapInterpolationModeCubic A Fant resampling algorithm. Destination pixel values are computed as a weighted average of the all the pixels that map to the new pixel. WICBitmapInterpolationModeFant Specifies access to an . WICBitmapLockFlags No documentation. WICBitmapLockRead No documentation. WICBitmapLockWrite Specifies the type of palette used for an indexed image format. WICBitmapPaletteType An arbitrary custom palette provided by caller. WICBitmapPaletteTypeCustom An optimal palette generated using a median-cut algorithm. Derived from the colors in an image. WICBitmapPaletteTypeMedianCut A black and white palette. WICBitmapPaletteTypeFixedBW A palette that has its 8-color on-off primaries and the 16 system colors added. With duplicates removed, 16 colors are available. WICBitmapPaletteTypeFixedHalftone8 A palette that has 3 intensity levels of each primary: 27-color on-off primaries and the 16 system colors added. With duplicates removed, 35 colors are available. WICBitmapPaletteTypeFixedHalftone27 A palette that has 4 intensity levels of each primary: 64-color on-off primaries and the 16 system colors added. With duplicates removed, 72 colors are available. WICBitmapPaletteTypeFixedHalftone64 A palette that has 5 intensity levels of each primary: 125-color on-off primaries and the 16 system colors added. With duplicates removed, 133 colors are available. WICBitmapPaletteTypeFixedHalftone125 A palette that has 6 intensity levels of each primary: 216-color on-off primaries and the 16 system colors added. With duplicates removed, 224 colors are available. This is the same as WICBitmapPaletteFixedHalftoneWeb. WICBitmapPaletteTypeFixedHalftone216 A palette that has 6 intensity levels of each primary: 216-color on-off primaries and the 16 system colors added. With duplicates removed, 224 colors are available. This is the same as . WICBitmapPaletteTypeFixedWebPalette A palette that has its 252-color on-off primaries and the 16 system colors added. With duplicates removed, 256 colors are available. WICBitmapPaletteTypeFixedHalftone252 A palette that has its 256-color on-off primaries and the 16 system colors added. With duplicates removed, 256 colors are available. WICBitmapPaletteTypeFixedHalftone256 A palette that has 4 shades of gray. WICBitmapPaletteTypeFixedGray4 A palette that has 16 shades of gray. WICBitmapPaletteTypeFixedGray16 A palette that has 256 shades of gray. WICBitmapPaletteTypeFixedGray256 Specifies the flip and rotation transforms. WICBitmapTransformOptions A rotation of 0 degrees. WICBitmapTransformRotate0 A clockwise rotation of 90 degrees. WICBitmapTransformRotate90 A clockwise rotation of 180 degrees. WICBitmapTransformRotate180 A clockwise rotation of 270 degrees. WICBitmapTransformRotate270 A horizontal flip. Pixels are flipped around the vertical y-axis. WICBitmapTransformFlipHorizontal A vertical flip. Pixels are flipped around the horizontal x-axis. WICBitmapTransformFlipVertical Specifies the color context types. WICColorContextType An uninitialized color context. WICColorContextUninitialized A color context profile. WICColorContextProfile An EXIF color space color context. WICColorContextExifColorSpace Specifies component enumeration options. WICComponentEnumerateOptions Enumerate signed components. WICComponentEnumerateDefault Force a read of the registry when enumerating components. WICComponentEnumerateRefresh Enumerate disabled components. WICComponentEnumerateDisabled Enumerate unsigned components. WICComponentEnumerateUnsigned Enumerate only built in components. WICComponentEnumerateBuiltInOnly Specifies the component signing status. WICComponentSigning A signed component. WICComponentSigned An unsigned component WICComponentUnsigned A component is safe. Components that do not have a binary component to sign, such as a pixel format, should return this value. WICComponentSafe A component has been disabled. WICComponentDisabled Specifies the type of Windows Imaging Component (WIC) component. WICComponentType A WIC decoder. WICDecoder A WIC encoder. WICEncoder A WIC pixel converter. WICPixelFormatConverter A WIC metadata reader. WICMetadataReader A WIC metadata writer. WICMetadataWriter A WIC pixel format. WICPixelFormat All WIC components. WICAllComponents Specifies decode options. WICDecodeOptions Cache metadata when needed. WICDecodeMetadataCacheOnDemand Cache metadata when decoder is loaded. WICDecodeMetadataCacheOnLoad Specifies the application extension metadata properties for a Graphics Interchange Format (GIF) image. WICGifApplicationExtensionProperties [VT_UI1 | VT_VECTOR] Indicates a string that identifies the application. WICGifApplicationExtensionApplication [VT_UI1 | VT_VECTOR] Indicates data that is exposed by the application. WICGifApplicationExtensionData Specifies the comment extension metadata properties for a Graphics Interchange Format (GIF) image. WICGifCommentExtensionProperties [VT_LPSTR] Indicates the comment text. WICGifCommentExtensionText Specifies the graphic control extension metadata properties that define the transitions between each frame animation for Graphics Interchange Format (GIF) images. WICGifGraphicControlExtensionProperties [VT_UI1] Indicates the disposal requirements. 0 - no disposal, 1 - do not dispose, 2 - restore to background color, 3 - restore to previous. WICGifGraphicControlExtensionDisposal [VT_BOOL] Indicates the user input flag. TRUE if user input should advance to the next frame; otherwise, . WICGifGraphicControlExtensionUserInputFlag [VT_BOOL] Indicates the transparency flag. TRUE if a transparent color in is in the color table for this frame; otherwise, . WICGifGraphicControlExtensionTransparencyFlag [VT_UI2] Indicates how long to display the next frame before advancing to the next frame, in units of 1/100th of a second. WICGifGraphicControlExtensionDelay [VT_UI1] Indicates which color in the palette should be treated as transparent. WICGifGraphicControlExtensionTransparentColorIndex Specifies the image descriptor metadata properties for Graphics Interchange Format (GIF) frames. WICGifImageDescriptorProperties [VT_UI2] Indicates the X offset at which to locate this frame within the logical screen. WICGifImageDescriptorLeft [VT_UI2] Indicates the Y offset at which to locate this frame within the logical screen. WICGifImageDescriptorTop [VT_UI2] Indicates width of this frame, in pixels. WICGifImageDescriptorWidth [VT_UI2] Indicates height of this frame, in pixels. WICGifImageDescriptorHeight [VT_BOOL] Indicates the local color table flag. TRUE if global color table is present; otherwise, . WICGifImageDescriptorLocalColorTableFlag [VT_BOOL] Indicates the interlace flag. TRUE if image is interlaced; otherwise, . WICGifImageDescriptorInterlaceFlag [VT_BOOL] Indicates the sorted color table flag. TRUE if the color table is sorted from most frequently to least frequently used color; otherwise, . WICGifImageDescriptorSortFlag [VT_UI1] Indicates the value used to calculate the number of bytes contained in the global color table. To calculate the actual size of the color table, raise 2 to the value of the field + 1. WICGifImageDescriptorLocalColorTableSize Specifies the logical screen descriptor properties for Graphics Interchange Format (GIF) metadata. WICGifLogicalScreenDescriptorProperties [VT_UI1 | VT_VECTOR] Indicates the signature property. WICGifLogicalScreenSignature [VT_UI2] Indicates the width in pixels. WICGifLogicalScreenDescriptorWidth [VT_UI2] Indicates the height in pixels. WICGifLogicalScreenDescriptorHeight [VT_BOOL] Indicates the global color table flag. TRUE if a global color table is present; otherwise, . WICGifLogicalScreenDescriptorGlobalColorTableFlag [VT_UI1] Indicates the color resolution in bits per pixel. WICGifLogicalScreenDescriptorColorResolution [VT_BOOL] Indicates the sorted color table flag. TRUE if the table is sorted; otherwise, . WICGifLogicalScreenDescriptorSortFlag [VT_UI1] Indicates the value used to calculate the number of bytes contained in the global color table. To calculate the actual size of the color table, raise 2 to the value of the field + 1. WICGifLogicalScreenDescriptorGlobalColorTableSize [VT_UI1] Indicates the index within the color table to use for the background (pixels not defined in the image). WICGifLogicalScreenDescriptorBackgroundColorIndex [VT_UI1] Indicates the factor used to compute an approximation of the aspect ratio. WICGifLogicalScreenDescriptorPixelAspectRatio Specifies the JPEG chrominance table property. WICJpegChrominanceProperties [VT_UI2|VT_VECTOR] Indicates the metadata property is a chrominance table. WICJpegChrominanceTable Specifies the JPEG comment properties. WICJpegCommentProperties Indicates the metadata property is comment text. WICJpegCommentText Specifies the JPEG luminance table property. WICJpegLuminanceProperties [VT_UI2|VT_VECTOR] Indicates the metadata property is a luminance table. WICJpegLuminanceTable Specifies the JPEG YCrCB subsampling options. The native JPEG encoder uses . WICJpegYCrCbSubsamplingOption The default subsampling option. WICJpegYCrCbSubsamplingDefault Subsampling option that uses both horizontal and vertical decimation. WICJpegYCrCbSubsampling420 Subsampling option that uses horizontal decimation . WICJpegYCrCbSubsampling422 Subsampling option that uses no decimation. WICJpegYCrCbSubsampling444 Specifies named white balances for raw images. WICNamedWhitePoint The default white balance. WICWhitePointDefault A daylight white balance. WICWhitePointDaylight A cloudy white balance. WICWhitePointCloudy A shade white balance. WICWhitePointShade A tungsten white balance. WICWhitePointTungsten A fluorescent white balance. WICWhitePointFluorescent Daylight white balance. WICWhitePointFlash A flash white balance. WICWhitePointUnderwater A custom white balance. This is typically used when using a picture (grey-card) as white balance. WICWhitePointCustom An automatic balance. WICWhitePointAutoWhiteBalance An "as shot" white balance. WICWhitePointAsShot typedef enum { ?????? = 0x00000000, ?????????? = 0x00000001, ?? = 0x00000002, ???? = 0x00000003, ???????????? = 0x00000004, ???????????? = 0x00000005 } ; WICPixelFormatNumericRepresentation No documentation. WICPixelFormatNumericRepresentationUnspecified No documentation. WICPixelFormatNumericRepresentationIndexed No documentation. WICPixelFormatNumericRepresentationUnsignedInteger No documentation. WICPixelFormatNumericRepresentationSignedInteger No documentation. WICPixelFormatNumericRepresentationFixed No documentation. WICPixelFormatNumericRepresentationFloat Specifies the Portable Network Graphics (PNG) background (bKGD) chunk metadata properties. WICPngBkgdProperties Indicates the background color. There are three possible types, depending on the image's pixel format. VT_UI1 Specifies the index of the background color in an image with an indexed pixel format. VT_UI2 Specifies the background color in a grayscale image. VT_VECTOR|VT_UI2 Specifies the background color in an RGB image as three USHORT values: {0xRRRR, 0xGGGG, 0xBBBB}. WICPngBkgdBackgroundColor Specifies the Portable Network Graphics (PNG) cHRM chunk metadata properties for CIE XYZ chromaticity. WICPngChrmProperties [VT_UI4] Indicates the whitepoint x value ratio. WICPngChrmWhitePointX [VT_UI4] Indicates the whitepoint y value ratio. WICPngChrmWhitePointY [VT_UI4] Indicates the red x value ratio. WICPngChrmRedX [VT_UI4] Indicates the red y value ratio. WICPngChrmRedY [VT_UI4] Indicates the green x value ratio. WICPngChrmGreenX [VT_UI4] Indicates the green y value ratio. WICPngChrmGreenY [VT_UI4] Indicates the blue x value ratio. WICPngChrmBlueX [VT_UI4] Indicates the blue y value ratio. WICPngChrmBlueY Specifies the Portable Network Graphics (PNG) filters available for compression optimization. WICPngFilterOption Indicates an unspecified PNG filter. This enables WIC to algorithmically choose the best filtering option for the image. WICPngFilterUnspecified Indicates no PNG filter. WICPngFilterNone Indicates a PNG sub filter. WICPngFilterSub Indicates a PNG up filter. WICPngFilterUp Indicates a PNG average filter. WICPngFilterAverage Indicates a PNG paeth filter. WICPngFilterPaeth Indicates a PNG adaptive filter. This enables WIC to choose the best filtering mode on a per-scanline basis. WICPngFilterAdaptive Specifies the Portable Network Graphics (PNG) gAMA chunk metadata properties. WICPngGamaProperties [VT_UI4] Indicates the gamma value. WICPngGamaGamma Specifies the Portable Network Graphics (PNG) hIST chunk metadata properties. WICPngHistProperties [VT_VECTOR | VT_UI2] Indicates the approximate usage frequency of each color in the color palette. WICPngHistFrequencies Specifies the Portable Network Graphics (PNG) iCCP chunk metadata properties. WICPngIccpProperties [VT_LPSTR] Indicates the International Color Consortium (ICC) profile name. WICPngIccpProfileName [VT_VECTOR | VT_UI1] Indicates the embedded ICC profile. WICPngIccpProfileData Specifies the Portable Network Graphics (PNG) iTXT chunk metadata properties. WICPngItxtProperties [VT_LPSTR] Indicates the keywords in the iTXT metadata chunk. WICPngItxtKeyword [VT_UI1] Indicates whether the text in the iTXT chunk is compressed. 1 if the text is compressed; otherwise, 0. WICPngItxtCompressionFlag [VT_LPSTR] Indicates the human language used by the translated keyword and the text. WICPngItxtLanguageTag [VT_LPWSTR] Indicates a translation of the keyword into the language indicated by the language tag. WICPngItxtTranslatedKeyword [VT_LPWSTR] Indicates additional text in the iTXT metadata chunk. WICPngItxtText Specifies the Portable Network Graphics (PNG) sRGB chunk metadata properties. WICPngSrgbProperties [VT_UI1] Indicates the rendering intent for an sRGB color space image. The rendering intents have the following meaning. ValueMeaning 0Perceptual 1Relative colorimetric 2Saturation 3Absolute colorimetric ? WICPngSrgbRenderingIntent Specifies the Portable Network Graphics (PNG) tIME chunk metadata properties. WICPngTimeProperties [VT_UI2] Indicates the year of the last modification. WICPngTimeYear [VT_UI1] Indicates the month of the last modification. WICPngTimeMonth [VT_UI1] Indicates day of the last modification. WICPngTimeDay [VT_UI1] Indicates the hour of the last modification. WICPngTimeHour [VT_UI1] Indicates the minute of the last modification. WICPngTimeMinute [VT_UI1] Indicates the second of the last modification. WICPngTimeSecond Specifies when the progress notification callback should be called. WICProgressNotification The callback should be called when codec operations begin. WICProgressNotificationBegin The callback should be called when codec operations end. WICProgressNotificationEnd The callback should be called frequently to report status. WICProgressNotificationFrequent The callback should be called on all available progress notifications. WICProgressNotificationAll Specifies the progress operations to receive notifications for. WICProgressOperation Receive copy pixel operation. WICProgressOperationCopyPixels Receive write pixel operation. WICProgressOperationWritePixels Receive all progress operations available. WICProgressOperationAll Specifies the capability support of a raw image. WICRawCapabilities The capability is not supported. WICRawCapabilityNotSupported The capability supports only get operations. WICRawCapabilityGetSupported The capability supports get and set operations. WICRawCapabilityFullySupported Specifies the parameter set used by a raw codec. WICRawParameterSet An as shot parameter set. WICAsShotParameterSet A user adjusted parameter set. WICUserAdjustedParameterSet A codec adjusted parameter set. WICAutoAdjustedParameterSet Specifies the render intent of the next CopyPixels call. WICRawRenderMode No documentation. WICRawRenderModeDraft No documentation. WICRawRenderModeNormal No documentation. WICRawRenderModeBestQuality Specifies the rotation capabilities of the codec. WICRawRotationCapabilities Rotation is not supported. WICRawRotationCapabilityNotSupported Set operations for rotation is not supported. WICRawRotationCapabilityGetSupported 90 degree rotations are supported. WICRawRotationCapabilityNinetyDegreesSupported All rotation angles are supported. WICRawRotationCapabilityFullySupported Specifies the access level of a Windows Graphics Device Interface (GDI) section. WICSectionAccessLevel Indicates a read only access level. WICSectionAccessLevelRead Indicates a read/write access level. WICSectionAccessLevelReadWrite Specifies the Tagged Image File Format (TIFF) compression options. WICTiffCompressionOption Indicates a suitable compression algorithm based on the image and pixel format. WICTiffCompressionDontCare Indicates no compression. WICTiffCompressionNone Indicates a CCITT3 compression algorithm. This algorithm is only valid for 1bpp pixel formats. WICTiffCompressionCCITT3 Indicates a CCITT4 compression algorithm. This algorithm is only valid for 1bpp pixel formats. WICTiffCompressionCCITT4 Indicates a LZW compression algorithm. WICTiffCompressionLZW Indicates a RLE compression algorithm. This algorithm is only valid for 1bpp pixel formats. WICTiffCompressionRLE Indicates a ZIP compression algorithm. WICTiffCompressionZIP Indicates an LZWH differencing algorithm. WICTiffCompressionLZWHDifferencing Functions Constant Jpeg. CLSID_WICJpegDecoder Constant Bmp. CLSID_WICBmpDecoder Constant Ico. CLSID_WICIcoDecoder Constant Tiff. CLSID_WICTiffDecoder Constant Wmp. CLSID_WICWmpDecoder Constant Gif. CLSID_WICGifDecoder Constant Png. CLSID_WICPngDecoder Functions Constant Wmp. CLSID_WICWmpEncoder Constant Gif. CLSID_WICGifEncoder Constant Tiff. CLSID_WICTiffEncoder Constant Jpeg. CLSID_WICJpegEncoder Constant Bmp. CLSID_WICBmpEncoder Constant Png. CLSID_WICPngEncoder Functions Constant Jpeg. GUID_ContainerFormatJpeg Constant Ico. GUID_ContainerFormatIco Constant Png. GUID_ContainerFormatPng Constant Wmp. GUID_ContainerFormatWmp Constant Bmp. GUID_ContainerFormatBmp Constant Gif. GUID_ContainerFormatGif Constant Tiff. GUID_ContainerFormatTiff Functions Constant Format72bpp8ChannelsAlpha. GUID_WICPixelFormat72bpp8ChannelsAlpha Constant Format48bppBGRFixedPoint. GUID_WICPixelFormat48bppBGRFixedPoint Constant Format64bppCMYK. GUID_WICPixelFormat64bppCMYK Constant Format40bpp5Channels. GUID_WICPixelFormat40bpp5Channels Constant Format4bppIndexed. GUID_WICPixelFormat4bppIndexed Constant Format32bppGrayFixedPoint. GUID_WICPixelFormat32bppGrayFixedPoint Constant Format64bppPRGBA. GUID_WICPixelFormat64bppPRGBA Constant Format40bpp4ChannelsAlpha. GUID_WICPixelFormat40bpp4ChannelsAlpha Constant Format48bpp6Channels. GUID_WICPixelFormat48bpp6Channels Constant Format16bppGray. GUID_WICPixelFormat16bppGray Constant Format48bpp5ChannelsAlpha. GUID_WICPixelFormat48bpp5ChannelsAlpha Constant Format64bpp7ChannelsAlpha. GUID_WICPixelFormat64bpp7ChannelsAlpha Constant Format1bppIndexed. GUID_WICPixelFormat1bppIndexed Constant Format4bppGray. GUID_WICPixelFormat4bppGray Constant Format32bpp3ChannelsAlpha. GUID_WICPixelFormat32bpp3ChannelsAlpha Constant Format32bppBGRA. GUID_WICPixelFormat32bppBGRA Constant Format128bppRGBFixedPoint. GUID_WICPixelFormat128bppRGBFixedPoint Constant Format64bppRGBAFixedPoint. GUID_WICPixelFormat64bppRGBAFixedPoint Constant Format80bpp4ChannelsAlpha. GUID_WICPixelFormat80bpp4ChannelsAlpha Constant Format32bppCMYK. GUID_WICPixelFormat32bppCMYK Constant Format64bpp8Channels. GUID_WICPixelFormat64bpp8Channels Constant Format16bppBGR555. GUID_WICPixelFormat16bppBGR555 Constant Format16bppBGR565. GUID_WICPixelFormat16bppBGR565 Constant Format32bppRGBA1010102XR. GUID_WICPixelFormat32bppRGBA1010102XR Constant Format64bppRGB. GUID_WICPixelFormat64bppRGB Constant Format128bppRGBFloat. GUID_WICPixelFormat128bppRGBFloat Constant Format32bppBGR. GUID_WICPixelFormat32bppBGR Constant Format64bppPRGBAHalf. GUID_WICPixelFormat64bppPRGBAHalf Constant Format64bppRGBA. GUID_WICPixelFormat64bppRGBA Constant FormatDontCare. GUID_WICPixelFormatDontCare Constant Format96bppRGBFloat. GUID_WICPixelFormat96bppRGBFloat Constant Format32bppPRGBA. GUID_WICPixelFormat32bppPRGBA Constant Format24bpp3Channels. GUID_WICPixelFormat24bpp3Channels Constant Format32bppRGBE. GUID_WICPixelFormat32bppRGBE Constant Format24bppBGR. GUID_WICPixelFormat24bppBGR Constant Format64bppRGBFixedPoint. GUID_WICPixelFormat64bppRGBFixedPoint Constant Format96bppRGBFixedPoint. GUID_WICPixelFormat96bppRGBFixedPoint Constant Format144bpp8ChannelsAlpha. GUID_WICPixelFormat144bpp8ChannelsAlpha Constant Format64bppBGRAFixedPoint. GUID_WICPixelFormat64bppBGRAFixedPoint Constant Format32bppGrayFloat. GUID_WICPixelFormat32bppGrayFloat Constant Format64bppBGRA. GUID_WICPixelFormat64bppBGRA Constant Format48bpp3Channels. GUID_WICPixelFormat48bpp3Channels Constant Format32bppBGR101010. GUID_WICPixelFormat32bppBGR101010 Constant Format112bpp7Channels. GUID_WICPixelFormat112bpp7Channels Constant Format64bpp3ChannelsAlpha. GUID_WICPixelFormat64bpp3ChannelsAlpha Constant Format2bppGray. GUID_WICPixelFormat2bppGray Constant Format56bpp7Channels. GUID_WICPixelFormat56bpp7Channels Constant Format16bppBGRA5551. GUID_WICPixelFormat16bppBGRA5551 Constant Format48bppRGBFixedPoint. GUID_WICPixelFormat48bppRGBFixedPoint Constant Format32bppRGBA1010102. GUID_WICPixelFormat32bppRGBA1010102 Constant Format64bppPBGRA. GUID_WICPixelFormat64bppPBGRA Constant Format96bpp6Channels. GUID_WICPixelFormat96bpp6Channels Constant Format48bppRGB. GUID_WICPixelFormat48bppRGB Constant FormatBlackWhite. GUID_WICPixelFormatBlackWhite Constant Format64bpp4Channels. GUID_WICPixelFormat64bpp4Channels Constant Format48bppRGBHalf. GUID_WICPixelFormat48bppRGBHalf Constant Format96bpp5ChannelsAlpha. GUID_WICPixelFormat96bpp5ChannelsAlpha Constant Format8bppGray. GUID_WICPixelFormat8bppGray Constant Format128bpp7ChannelsAlpha. GUID_WICPixelFormat128bpp7ChannelsAlpha Constant Format8bppIndexed. GUID_WICPixelFormat8bppIndexed Constant Format80bpp5Channels. GUID_WICPixelFormat80bpp5Channels Constant Format16bppGrayFixedPoint. GUID_WICPixelFormat16bppGrayFixedPoint Constant Format128bpp8Channels. GUID_WICPixelFormat128bpp8Channels Constant Format80bppCMYKAlpha. GUID_WICPixelFormat80bppCMYKAlpha Constant Format24bppRGB. GUID_WICPixelFormat24bppRGB Constant Format128bppRGBAFloat. GUID_WICPixelFormat128bppRGBAFloat Constant Format112bpp6ChannelsAlpha. GUID_WICPixelFormat112bpp6ChannelsAlpha Constant Format64bppRGBAHalf. GUID_WICPixelFormat64bppRGBAHalf Constant Format16bppGrayHalf. GUID_WICPixelFormat16bppGrayHalf Constant Format128bppRGBAFixedPoint. GUID_WICPixelFormat128bppRGBAFixedPoint Constant Format32bppRGB. GUID_WICPixelFormat32bppRGB Constant Format40bppCMYKAlpha. GUID_WICPixelFormat40bppCMYKAlpha Constant Format56bpp6ChannelsAlpha. GUID_WICPixelFormat56bpp6ChannelsAlpha Constant Format32bppPBGRA. GUID_WICPixelFormat32bppPBGRA Constant Format48bppBGR. GUID_WICPixelFormat48bppBGR Constant Format128bppPRGBAFloat. GUID_WICPixelFormat128bppPRGBAFloat Constant Format32bppRGBA. GUID_WICPixelFormat32bppRGBA Constant Format64bppRGBHalf. GUID_WICPixelFormat64bppRGBHalf Constant Format8bppAlpha. GUID_WICPixelFormat8bppAlpha Constant Format32bpp4Channels. GUID_WICPixelFormat32bpp4Channels Constant Format2bppIndexed. GUID_WICPixelFormat2bppIndexed Gets the number of bits per pixel for a particular pixel format. The pixel format guid. The number of bits per pixel. If the pixel format guid is invalid, returns 0 Gets the stride in bytes from a pixel format and a width.. The pixel format guid. The width. The number of bytes per row. Defines methods that add the concept of writeability and static in-memory representations of bitmaps to . IWICBitmap Exposes methods that refers to a source from which pixels are retrieved, but cannot be written back to. IWICBitmapSource Initializes a new instance of the class. The native pointer. Retrieves the pixel width and height of the bitmap. A reference that receives the pixel width of the bitmap. A reference that receives the pixel height of the bitmap If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapSource::GetSize([Out] unsigned int* puiWidth,[Out] unsigned int* puiHeight) Retrieves the pixel format of the bitmap source.. Receives the pixel format the bitmap is stored in. For a list of available pixel formats, see the Native Pixel Formats topic. If this method succeeds, it returns . Otherwise, it returns an error code. The pixel format returned by this method is not necessarily the pixel format the image is stored as. The codec may perform a format conversion from the storage pixel format to an output pixel format. HRESULT IWICBitmapSource::GetPixelFormat([Out] GUID* pPixelFormat) Retrieves the sampling rate between pixels and physical world measurements. A reference that receives the x-axis dpi resolution. A reference that receives the y-axis dpi resolution. If this method succeeds, it returns . Otherwise, it returns an error code. Some formats, such as GIF and ICO, do not have full DPI support. For GIF, this method calculates the DPI values from the aspect ratio, using a base DPI of (96.0, 96.0). The ICO format does not support DPI at all, and the method always returns (96.0,96.0) for ICO images.Additionally, WIC itself does not transform images based on the DPI values in an image. It is up to the caller to transform an image based on the resolution returned. HRESULT IWICBitmapSource::GetResolution([Out] double* pDpiX,[Out] double* pDpiY) Instructs the object to produce pixels. The rectangle to copy. A null value specifies the entire bitmap. The stride of the bitmap The size of the buffer. A reference to the buffer. If this method succeeds, it returns . Otherwise, it returns an error code. CopyPixels is one of the two main image processing routines (the other being Lock) triggering the actual processing. It instructs the object to produce pixels according to its algorithm - this may involve decoding a portion of a JPEG stored on disk, copying a block of memory, or even analytically computing a complex gradient. The algorithm is completely dependent on the object implementing the interface.The caller can restrict the operation to a rectangle of interest (ROI) using the prc parameter. The ROI sub-rectangle must be fully contained in the bounds of the bitmap. Specifying a null ROI implies that the whole bitmap should be returned.The caller controls the memory management and must provide an output buffer (pbBuffer) for the results of the copy along with the buffer's bounds (cbBufferSize). The cbStride parameter defines the count of bytes between two vertically adjacent pixels in the output buffer. The caller must ensure that there is sufficient buffer to complete the call based on the width, height and pixel format of the bitmap and the sub-rectangle provided to the copy method.If the caller needs to perform numerous copies of an expensive such as a JPEG, it is recommended to create an in-memory first.Codec Developer RemarksThe callee must only write to the first (prc->Width*bitsperpixel+7)/8 bytes of each line of the output buffer (in this case, a line is a consecutive string of cbStride bytes). HRESULT IWICBitmapSource::CopyPixels([In, Optional] const WICRect* prc,[In] unsigned int cbStride,[In] unsigned int cbBufferSize,[In] void* pbBuffer) Copies the pixels. The rectangle. The stride. The output stream. HRESULT IWICBitmapSource::CopyPixels([In, Optional] const WICRect* prc,[In] unsigned int cbStride,[In] unsigned int cbBufferSize,[In] void* pbBuffer) Copies the pixels. The stride. The output stream. HRESULT IWICBitmapSource::CopyPixels([In, Optional] const WICRect* prc,[In] unsigned int cbStride,[In] unsigned int cbBufferSize,[In] void* pbBuffer) Retrieves the pixel format of the bitmap source.. The pixel format returned by this method is not necessarily the pixel format the image is stored as. The codec may perform a format conversion from the storage pixel format to an output pixel format. GetPixelFormat HRESULT IWICBitmapSource::GetPixelFormat([Out] GUID* pPixelFormat) Gets the size. HRESULT IWICBitmapSource::GetSize([Out] unsigned int* puiWidth,[Out] unsigned int* puiHeight) Initializes a new instance of the class. The native pointer. Provides access for palette modifications. The palette to use for conversion. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmap::SetPalette([In, Optional] IWICPalette* pIPalette) Changes the physical resolution of the image. The horizontal resolution. The vertical resolution. If this method succeeds, it returns . Otherwise, it returns an error code. This method has no effect on the actual pixels or samples stored in the bitmap. Instead the interpretation of the sampling rate is modified. This means that a 96 DPI image which is 96 pixels wide is one inch. If the physical resolution is modified to 48 DPI, then the bitmap is considered to be 2 inches wide but has the same number of pixels. If the resolution is less than REAL_EPSILON (1.192092896e-07F) the error code WINCODEC_ERR_INVALIDPARAMETER is returned. HRESULT IWICBitmap::SetResolution([In] double dpiX,[In] double dpiY) Initializes a new instance of the class. The factory. The width. The height. The pixel format. for a list of valid formats. The option. HRESULT IWICImagingFactory::CreateBitmap([In] unsigned int uiWidth,[In] unsigned int uiHeight,[In] const GUID& pixelFormat,[In] WICBitmapCreateCacheOption option,[Out, Fast] IWICBitmap** ppIBitmap) Initializes a new instance of the class from a memory location using . The factory. The width. The height. The pixel format. The data rectangle. HRESULT IWICImagingFactory::CreateBitmapFromMemory([In] unsigned int uiWidth,[In] unsigned int uiHeight,[In] const GUID& pixelFormat,[In] unsigned int cbStride,[In] unsigned int cbBufferSize,[In] void* pbBuffer,[Out, Fast] IWICBitmap** ppIBitmap) Initializes a new instance of the class from a The factory. The bitmap source ref. The option. HRESULT IWICImagingFactory::CreateBitmapFromSource([In, Optional] IWICBitmapSource* pIBitmapSource,[In] WICBitmapCreateCacheOption option,[Out, Fast] IWICBitmap** ppIBitmap) Initializes a new instance of the class from a . The factory. The bitmap source. The rectangle. HRESULT IWICImagingFactory::CreateBitmapFromSourceRect([In, Optional] IWICBitmapSource* pIBitmapSource,[In] unsigned int x,[In] unsigned int y,[In] unsigned int width,[In] unsigned int height,[Out, Fast] IWICBitmap** ppIBitmap) Provides access for palette modifications. SetPalette HRESULT IWICBitmap::SetPalette([In, Optional] IWICPalette* pIPalette) Exposes methods that produce a clipped version of the input bitmap for a specified rectangular region of interest. IWICBitmapClipper Initializes a new instance of the class. The native pointer. Initializes the bitmap clipper with the provided parameters. he input bitmap source. The rectangle of the bitmap source to clip. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapClipper::Initialize([In, Optional] IWICBitmapSource* pISource,[In] const WICRect* prc) Initializes a new instance of the class. The factory. Exposes methods that provide information about a particular codec. IWICBitmapCodecInfo Exposes methods that provide component information. IWICComponentInfo Initializes a new instance of the class. The native pointer. Retrieves the component's . No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICComponentInfo::GetComponentType([Out] WICComponentType* pType) Retrieves the component's class identifier (CLSID) A reference that receives the component's CLSID. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICComponentInfo::GetCLSID([Out] GUID* pclsid) Retrieves the signing status of the component. A reference that receives the status of the component. If this method succeeds, it returns . Otherwise, it returns an error code. Signing is unused by WIC. Therefore, all components .This function can be used to determine whether a component has no binary component or has been added to the disabled components list in the registry. HRESULT IWICComponentInfo::GetSigningStatus([Out] unsigned int* pStatus) Retrieves the name of component's author. The size of the wzAuthor buffer. A reference that receives the name of the component's author. The locale of the string depends on the value that the codec wrote to the registry at install time. For built-in components, these strings are always in English. A reference that receives the actual length of the component's authors name. The author name is optional; if an author name is not specified by the component, the length returned is 0. If this method succeeds, it returns . Otherwise, it returns an error code. If cchAuthor is 0 and wzAuthor is null, the required buffer size is returned in pccchActual. HRESULT IWICComponentInfo::GetAuthor([In] unsigned int cchAuthor,[In] void* wzAuthor,[Out] unsigned int* pcchActual) Retrieves the vendor . A reference that receives the component's vendor . If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICComponentInfo::GetVendorGUID([Out] GUID* pguidVendor) Retrieves the component's version. The size of the wzVersion buffer. A reference that receives a culture invariant string of the component's version. A reference that receives the actual length of the component's version. The version is optional; if a value is not specified by the component, the length returned is 0. If this method succeeds, it returns . Otherwise, it returns an error code. All built-in components return "1.0.0.0", except for pixel formats, which do not have a version.If cchAuthor is 0 and wzAuthor is null, the required buffer size is returned in pccchActual. HRESULT IWICComponentInfo::GetVersion([In] unsigned int cchVersion,[In] void* wzVersion,[Out] unsigned int* pcchActual) Retrieves the component's specification version. The size of the wzSpecVersion buffer. When this method returns, contain a culture invarient string of the component's specification version. The version form is NN.NN.NN.NN. A reference that receives the actual length of the component's specification version. The specification version is optional; if a value is not specified by the component, the length returned is 0. If this method succeeds, it returns . Otherwise, it returns an error code. All built-in components return "1.0.0.0", except for pixel formats, which do not have a spec version.If cchAuthor is 0 and wzAuthor is null, the required buffer size is returned in pccchActual. HRESULT IWICComponentInfo::GetSpecVersion([In] unsigned int cchSpecVersion,[In] void* wzSpecVersion,[Out] unsigned int* pcchActual) Retrieves the component's friendly name, which is a human-readable display name for the component. The size of the wzFriendlyName buffer. A reference that receives the friendly name of the component. The locale of the string depends on the value that the codec wrote to the registry at install time. For built-in components, these strings are always in English. A reference that receives the actual length of the component's friendly name. If this method succeeds, it returns . Otherwise, it returns an error code. If cchFriendlyName is 0 and wzFriendlyName is null, the required buffer size is returned in pccchActual. HRESULT IWICComponentInfo::GetFriendlyName([In] unsigned int cchFriendlyName,[In] void* wzFriendlyName,[Out] unsigned int* pcchActual) Initializes a new instance of the class. The factory. The CLSID component. Retrieves the component's . GetComponentType HRESULT IWICComponentInfo::GetComponentType([Out] WICComponentType* pType) Retrieves the component's class identifier (CLSID) GetCLSID HRESULT IWICComponentInfo::GetCLSID([Out] GUID* pclsid) Retrieves the signing status of the component. Signing is unused by WIC. Therefore, all components .This function can be used to determine whether a component has no binary component or has been added to the disabled components list in the registry. GetSigningStatus HRESULT IWICComponentInfo::GetSigningStatus([Out] unsigned int* pStatus) Retrieves the vendor . GetVendorGUID HRESULT IWICComponentInfo::GetVendorGUID([Out] GUID* pguidVendor) Gets the author. HRESULT IWICComponentInfo::GetAuthor([In] unsigned int cchAuthor,[InOut, Buffer, Optional] wchar_t* wzAuthor,[Out] unsigned int* pcchActual) Gets the version. HRESULT IWICComponentInfo::GetVersion([In] unsigned int cchVersion,[InOut, Buffer, Optional] wchar_t* wzVersion,[Out] unsigned int* pcchActual) Gets the spec version. HRESULT IWICComponentInfo::GetSpecVersion([In] unsigned int cchSpecVersion,[InOut, Buffer, Optional] wchar_t* wzSpecVersion,[Out] unsigned int* pcchActual) Gets the friendly name. The name of the friendly. HRESULT IWICComponentInfo::GetFriendlyName([In] unsigned int cchFriendlyName,[InOut, Buffer, Optional] wchar_t* wzFriendlyName,[Out] unsigned int* pcchActual) Initializes a new instance of the class. The native pointer. Retrieves the container associated with the codec. Receives the container . If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapCodecInfo::GetContainerFormat([Out] GUID* pguidContainerFormat) Retrieves the pixel formats the codec supports. The size of the pguidPixelFormats array. Use 0 on first call to determine the needed array size. Receives the supported pixel formats. Use null on first call to determine needed array size. The array size needed to retrieve all supported pixel formats. If this method succeeds, it returns . Otherwise, it returns an error code. The usage pattern for this method is a two call process. The first call retrieves the array size needed to retrieve all the supported pixel formats by calling it with cFormats set to 0 and pguidPixelFormats set to null. This call sets pcActual to the array size needed. Once the needed array size is determined, a second GetPixelFormats call with pguidPixelFormats set to an array of the appropriate size will retrieve the pixel formats. HRESULT IWICBitmapCodecInfo::GetPixelFormats([In] unsigned int cFormats,[In, Buffer] GUID* pguidPixelFormats,[Out] unsigned int* pcActual) Retrieves the color manangement version number the codec supports. The size of the version buffer. Use 0 on first call to determine needed buffer size. Receives the color management version number. Use null on first call to determine needed buffer size. The actual buffer size needed to retrieve the full color management version number. If this method succeeds, it returns . Otherwise, it returns an error code. The usage pattern for this method is a two call process. The first call retrieves the buffer size needed to retrieve the full color management version number by calling it with cchColorManagementVersion set to 0 and wzColorManagementVersion set to null. This call sets pcchActual to the buffer size needed. Once the needed buffer size is determined, a second GetColorManagementVersion call with cchColorManagementVersion set to the buffer size and wzColorManagementVersion set to a buffer of the appropriate size will retrieve the pixel formats. HRESULT IWICBitmapCodecInfo::GetColorManagementVersion([In] unsigned int cchColorManagementVersion,[In] void* wzColorManagementVersion,[Out] unsigned int* pcchActual) Retrieves the name of the device manufacture associated with the codec. The size of the device manufacture's name. Use 0 on first call to determine needed buffer size. Receives the device manufacture's name. Use null on first call to determine needed buffer size. The actual buffer size needed to retrieve the device manufacture's name. If this method succeeds, it returns . Otherwise, it returns an error code. The usage pattern for this method is a two call process. The first call retrieves the buffer size needed to retrieve the full color management version number by calling it with cchDeviceManufacturer set to 0 and wzDeviceManufacturer set to null. This call sets pcchActual to the buffer size needed. Once the needed buffer size is determined, a second GetDeviceManufacturer call with cchDeviceManufacturer set to the buffer size and wzDeviceManufacturer set to a buffer of the appropriate size will retrieve the pixel formats. HRESULT IWICBitmapCodecInfo::GetDeviceManufacturer([In] unsigned int cchDeviceManufacturer,[In] void* wzDeviceManufacturer,[Out] unsigned int* pcchActual) Retrieves a comma delimited list of device models associated with the codec. The size of the device models buffer. Use 0 on first call to determine needed buffer size. Receives a comma delimited list of device model names associated with the codec. Use null on first call to determine needed buffer size. The actual buffer size needed to retrieve all of the device model names. If this method succeeds, it returns . Otherwise, it returns an error code. The usage pattern for this method is a two call process. The first call retrieves the buffer size needed to retrieve the full color management version number by calling it with cchDeviceModels set to 0 and wzDeviceModels set to null. This call sets pcchActual to the buffer size needed. Once the needed buffer size is determined, a second GetDeviceModels call with cchDeviceModels set to the buffer size and wzDeviceModels set to a buffer of the appropriate size will retrieve the pixel formats. HRESULT IWICBitmapCodecInfo::GetDeviceModels([In] unsigned int cchDeviceModels,[In] void* wzDeviceModels,[Out] unsigned int* pcchActual) Retrieves a comma delimited sequence of mime types associated with the codec. The size of the mime types buffer. Use 0 on first call to determine needed buffer size. Receives the mime types associated with the codec. Use null on first call to determine needed buffer size. The actual buffer size needed to retrieve all mime types associated with the codec. If this method succeeds, it returns . Otherwise, it returns an error code. The usage pattern for this method is a two call process. The first call retrieves the buffer size needed to retrieve the full color management version number by calling it with cchMimeTypes set to 0 and wzMimeTypes set to null. This call sets pcchActual to the buffer size needed. Once the needed buffer size is determined, a second GetMimeTypes call with cchMimeTypes set to the buffer size and wzMimeTypes set to a buffer of the appropriate size will retrieve the pixel formats. HRESULT IWICBitmapCodecInfo::GetMimeTypes([In] unsigned int cchMimeTypes,[In] void* wzMimeTypes,[Out] unsigned int* pcchActual) Retrieves a comma delimited list of the file name extensions associated with the codec. The size of the file name extension buffer. Use 0 on first call to determine needed buffer size. Receives a comma delimited list of file name extensions associated with the codec. Use null on first call to determine needed buffer size. The actual buffer size needed to retrieve all file name extensions associated with the codec. If this method succeeds, it returns . Otherwise, it returns an error code. The default extension for an image encoder is the first item in the list of returned extensions.The usage pattern for this method is a two call process. The first call retrieves the buffer size needed to retrieve the full color management version number by calling it with cchFileExtensions set to 0 and wzFileExtensions set to null. This call sets pcchActual to the buffer size needed. Once the needed buffer size is determined, a second GetFileExtensions call with cchFileExtensions set to the buffer size and wzFileExtensions set to a buffer of the appropriate size will retrieve the pixel formats. HRESULT IWICBitmapCodecInfo::GetFileExtensions([In] unsigned int cchFileExtensions,[In] void* wzFileExtensions,[Out] unsigned int* pcchActual) Retrieves a value indicating whether the codec supports animation. Receives TRUE if the codec supports images with timing information; otherwise, . If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapCodecInfo::DoesSupportAnimation([Out] BOOL* pfSupportAnimation) Retrieves a value indicating whether the codec supports chromakeys. Receives TRUE if the codec supports chromakeys; otherwise, . If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapCodecInfo::DoesSupportChromakey([Out] BOOL* pfSupportChromakey) Retrieves a value indicating whether the codec supports lossless formats. Receives TRUE if the codec supports lossless formats; otherwise, . If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapCodecInfo::DoesSupportLossless([Out] BOOL* pfSupportLossless) Retrieves a value indicating whether the codec supports multi frame images. Receives TRUE if the codec supports multi frame images; otherwise, . If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapCodecInfo::DoesSupportMultiframe([Out] BOOL* pfSupportMultiframe) Retrieves a value indicating whether the given mime type matches the mime type of the codec. The mime type to compare. Receives TRUE if the mime types match; otherwise, . HRESULT IWICBitmapCodecInfo::MatchesMimeType([In] const wchar_t* wzMimeType,[Out] BOOL* pfMatches) Retrieves the container associated with the codec. GetContainerFormat HRESULT IWICBitmapCodecInfo::GetContainerFormat([Out] GUID* pguidContainerFormat) Retrieves a value indicating whether the codec supports animation. DoesSupportAnimation HRESULT IWICBitmapCodecInfo::DoesSupportAnimation([Out] BOOL* pfSupportAnimation) Retrieves a value indicating whether the codec supports chromakeys. DoesSupportChromakey HRESULT IWICBitmapCodecInfo::DoesSupportChromakey([Out] BOOL* pfSupportChromakey) Retrieves a value indicating whether the codec supports lossless formats. DoesSupportLossless HRESULT IWICBitmapCodecInfo::DoesSupportLossless([Out] BOOL* pfSupportLossless) Retrieves a value indicating whether the codec supports multi frame images. DoesSupportMultiframe HRESULT IWICBitmapCodecInfo::DoesSupportMultiframe([Out] BOOL* pfSupportMultiframe) Gets the pixel formats the codec supports. Gets the color manangement version number the codec supports. Gets the name of the device manufacture associated with the codec. Gets a comma delimited list of device models associated with the codec. Gets a comma delimited sequence of mime types associated with the codec. Gets a comma delimited list of the file name extensions associated with the codec. When a codec is performing an I/O operation such as CopyPixels on a large image, it may take several seconds or even minutes to complete. When end users are unable to interrupt a long-running operation, they may think the application has hung. Users will often close an application, or even restart their computers, in an attempt to regain control of their computer when an application becomes unresponsive. IWICBitmapCodecProgressNotification Initializes a new instance of the class. The native pointer. Registers a progress notification callback function. A function reference to the application defined progress notification callback function. See ProgressNotificationCallback for the callback signature. A reference to component data for the callback method. The and flags to use for progress notification. If this method succeeds, it returns . Otherwise, it returns an error code. Applications can only register a single callback. Subsequent registration calls will replace the previously registered callback. To unregister a callback, pass in null or register a new callback function.Progress is reported in an increasing order between 0.0 and 1.0. If dwProgressFlags includes , the callback is guaranteed to be called with progress 0.0. If dwProgressFlags includes , the callback is guaranteed to be called with progress 1.0.WICProgressNotificationFrequent increases the frequency in which the callback is called. If an operation is expected to take more than 30 seconds, should be added to dwProgressFlags. HRESULT IWICBitmapCodecProgressNotification::RegisterProgressNotification([In, Optional] __function__stdcall* pfnProgressNotification,[In, Optional] void* pvData,[In] unsigned int dwProgressFlags) Exposes methods that represent a decoder. IWICBitmapDecoder Initializes a new instance of the class. The native pointer. Retrieves the capabilities of the decoder based on the specified stream. The stream to retrieve the decoder capabilities from. The of the decoder. Custom decoder implementations should save the current position of the specified , read whatever information is necessary in order to determine which capabilities it can provide for the supplied stream, and restore the stream position. HRESULT IWICBitmapDecoder::QueryCapability([In, Optional] IStream* pIStream,[Out] WICBitmapDecoderCapabilities* pdwCapability) Initializes the decoder with the provided stream. The stream to use for initialization. The stream contains the encoded pixels which are decoded each time the CopyPixels method on the interface (see GetFrame) is invoked. The to use for initialization. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapDecoder::Initialize([In, Optional] IStream* pIStream,[In] WICDecodeOptions cacheOptions) Retrieves the image's container format. A reference that receives the image's container format . If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapDecoder::GetContainerFormat([Out] GUID* pguidContainerFormat) Retrieves an for the image. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapDecoder::GetDecoderInfo([Out] IWICBitmapDecoderInfo** ppIDecoderInfo) Copies the decoder's . No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. CopyPalette returns a global palette (a palette that applies to all the frames in the image) if there is one; otherwise, it returns WINCODEC_ERR_PALETTEUNAVAILABLE. If an image doesn't have a global palette, it may still have a frame-level palette, which can be retrieved using IWICBitmapFrameDecode::CopyPalette. HRESULT IWICBitmapDecoder::CopyPalette([In, Optional] IWICPalette* pIPalette) Retrieves the metadata query reader from the decoder. Receives a reference to the decoder's . If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapDecoder::GetMetadataQueryReader([Out] IWICMetadataQueryReader** ppIMetadataQueryReader) Retrieves a preview image, if supported. Receives a reference to the preview bitmap if supported. If this method succeeds, it returns . Otherwise, it returns an error code. Not all formats support previews. Only the native Microsoft?Windows Digital Photo (WDP) codec support previews. HRESULT IWICBitmapDecoder::GetPreview([Out] IWICBitmapSource** ppIBitmapSource) Retrieves the objects of the image. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapDecoder::GetColorContexts([In] unsigned int cCount,[Out, Buffer, Optional] IWICColorContext** ppIColorContexts,[Out] unsigned int* pcActualCount) Retrieves a bitmap thumbnail of the image, if one exists Receives a reference to the of the thumbnail. If this method succeeds, it returns . Otherwise, it returns an error code. None of the native formats support global thumbnails. Joint Photographic Experts Group (JPEG), Tagged Image File Format (TIFF), and Microsoft?Windows Digital Photo (WDP) support frame level thumbnails that can be accessed through a frame's GetThumbnail method. HRESULT IWICBitmapDecoder::GetThumbnail([Out] IWICBitmapSource** ppIThumbnail) Retrieves the total number of frames in the image. A reference that receives the total number of frames in the image. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapDecoder::GetFrameCount([Out] unsigned int* pCount) Retrieves the specified frame of the image. The particular frame to retrieve. A reference that receives a reference to the . HRESULT IWICBitmapDecoder::GetFrame([In] unsigned int index,[Out] IWICBitmapFrameDecode** ppIBitmapFrame) Initializes a new instance of the class from a . The bitmap decoder info. HRESULT IWICBitmapDecoderInfo::CreateInstance([Out, Fast] IWICBitmapDecoder** ppIBitmapDecoder) Initializes a new instance of the class from a guid. for a list of default supported decoder. The factory. The container format GUID. HRESULT IWICImagingFactory::CreateDecoder([In] const GUID& guidContainerFormat,[In, Optional] const GUID* pguidVendor,[Out, Fast] IWICBitmapDecoder** ppIDecoder) Initializes a new instance of the class. The factory. The container format GUID. The GUID vendor ref. HRESULT IWICImagingFactory::CreateDecoder([In] const GUID& guidContainerFormat,[In, Optional] const GUID* pguidVendor,[Out, Fast] IWICBitmapDecoder** ppIDecoder) Initializes a new instance of the class from a . The factory. The stream ref. The metadata options. HRESULT IWICImagingFactory::CreateDecoderFromStream([In, Optional] IStream* pIStream,[In, Optional] const GUID* pguidVendor,[In] WICDecodeOptions metadataOptions,[Out, Fast] IWICBitmapDecoder** ppIDecoder) Initializes a new instance of the class from a . The factory. The stream ref. The GUID vendor ref. The metadata options. HRESULT IWICImagingFactory::CreateDecoderFromStream([In, Optional] IStream* pIStream,[In, Optional] const GUID* pguidVendor,[In] WICDecodeOptions metadataOptions,[Out, Fast] IWICBitmapDecoder** ppIDecoder) Initializes a new instance of the class from a file in read mode. The factory. The filename. The metadata options. HRESULT IWICImagingFactory::CreateDecoderFromFilename([In] const wchar_t* wzFilename,[In, Optional] const GUID* pguidVendor,[In] unsigned int dwDesiredAccess,[In] WICDecodeOptions metadataOptions,[Out, Fast] IWICBitmapDecoder** ppIDecoder) Initializes a new instance of the class from a file. The factory. The filename. The desired access. The metadata options. HRESULT IWICImagingFactory::CreateDecoderFromFilename([In] const wchar_t* wzFilename,[In, Optional] const GUID* pguidVendor,[In] unsigned int dwDesiredAccess,[In] WICDecodeOptions metadataOptions,[Out, Fast] IWICBitmapDecoder** ppIDecoder) Initializes a new instance of the class from a file. The factory. The filename. The GUID vendor ref. The desired access. The metadata options. HRESULT IWICImagingFactory::CreateDecoderFromFilename([In] const wchar_t* wzFilename,[In, Optional] const GUID* pguidVendor,[In] unsigned int dwDesiredAccess,[In] WICDecodeOptions metadataOptions,[Out, Fast] IWICBitmapDecoder** ppIDecoder) Queries the capabilities of the decoder based on the specified stream. The stream to retrieve the decoder capabilities from.. Capabilities of the decoder HRESULT IWICBitmapDecoder::QueryCapability([In, Optional] IStream* pIStream,[Out] WICBitmapDecoderCapabilities* pdwCapability) Initializes the decoder with the provided stream. The stream to use for initialization. The cache options. If the method succeeds, it returns . Otherwise, it throws an exception. HRESULT IWICBitmapDecoder::Initialize([In, Optional] IStream* pIStream,[In] WICDecodeOptions cacheOptions) Retrieves the image's container format. GetContainerFormat HRESULT IWICBitmapDecoder::GetContainerFormat([Out] GUID* pguidContainerFormat) Retrieves an for the image. GetDecoderInfo HRESULT IWICBitmapDecoder::GetDecoderInfo([Out] IWICBitmapDecoderInfo** ppIDecoderInfo) Retrieves the metadata query reader from the decoder. GetMetadataQueryReader HRESULT IWICBitmapDecoder::GetMetadataQueryReader([Out] IWICMetadataQueryReader** ppIMetadataQueryReader) Retrieves a preview image, if supported. Not all formats support previews. Only the native Microsoft?Windows Digital Photo (WDP) codec support previews. GetPreview HRESULT IWICBitmapDecoder::GetPreview([Out] IWICBitmapSource** ppIBitmapSource) Retrieves a bitmap thumbnail of the image, if one exists None of the native formats support global thumbnails. Joint Photographic Experts Group (JPEG), Tagged Image File Format (TIFF), and Microsoft?Windows Digital Photo (WDP) support frame level thumbnails that can be accessed through a frame's GetThumbnail method. GetThumbnail HRESULT IWICBitmapDecoder::GetThumbnail([Out] IWICBitmapSource** ppIThumbnail) Retrieves the total number of frames in the image. GetFrameCount HRESULT IWICBitmapDecoder::GetFrameCount([Out] unsigned int* pCount) Gets the objects of the image. HRESULT IWICBitmapDecoder::GetColorContexts([In] unsigned int cCount,[Out, Buffer, Optional] IWICColorContext** ppIColorContexts,[Out] unsigned int* pcActualCount) Exposes methods that provide information about a decoder. IWICBitmapDecoderInfo Initializes a new instance of the class. The native pointer. Retrieves the file pattern signatures supported by the decoder. The array size of the pPatterns array. Receives a list of objects supported by the decoder. Receives the number of patterns the decoder supports. Receives the actual buffer size needed to retrieve all pattern signatures supported by the decoder. If this method succeeds, it returns . Otherwise, it returns an error code. To retrieve all pattern signatures, this method should first be called with pPatterns set to null to retrieve the actual buffer size needed through pcbPatternsActual. Once the needed buffer size is known, allocate a buffer of the needed size and call GetPatterns again with the allocated buffer. HRESULT IWICBitmapDecoderInfo::GetPatterns([In] unsigned int cbSizePatterns,[Out, Buffer, Optional] WICBitmapPattern* pPatterns,[Out] unsigned int* pcPatterns,[Out] unsigned int* pcbPatternsActual) Retrieves a value that indicates whether the codec recognizes the pattern within a specified stream. The stream to pattern match within. A reference that receives TRUE if the patterns match; otherwise, . HRESULT IWICBitmapDecoderInfo::MatchesPattern([In, Optional] IStream* pIStream,[Out] BOOL* pfMatches) Creates a new instance. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapDecoderInfo::CreateInstance([Out, Fast] IWICBitmapDecoder** ppIBitmapDecoder) Retrieves a value that indicates whether the codec recognizes the pattern within a specified stream. The stream to pattern match within. true if the patterns match; otherwise, false. HRESULT IWICBitmapDecoderInfo::MatchesPattern([In, Optional] IStream* pIStream,[Out] BOOL* pfMatches) Gets the file pattern signatures supported by the decoder. HRESULT IWICBitmapDecoderInfo::GetPatterns([In] unsigned int cbSizePatterns,[Out, Buffer, Optional] WICBitmapPattern* pPatterns,[Out] unsigned int* pcPatterns,[Out] unsigned int* pcbPatternsActual) Defines methods for setting an encoder's properties such as thumbnails, frames, and palettes. IWICBitmapEncoder Initializes a new instance of the class. The native pointer. Initializes the encoder with an which tells the encoder where to encode the bits. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapEncoder::Initialize([In, Optional] IStream* pIStream,[In] WICBitmapEncoderCacheOption cacheOption) Retrieves the encoder's container format. A reference that receives the encoder's container format . If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapEncoder::GetContainerFormat([Out] GUID* pguidContainerFormat) Retrieves an for the encoder. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapEncoder::GetEncoderInfo([Out] IWICBitmapEncoderInfo** ppIEncoderInfo) Sets the objects for the encoder. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapEncoder::SetColorContexts([In] unsigned int cCount,[In, Buffer] IWICColorContext** ppIColorContext) Sets the objects for the encoder. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapEncoder::SetColorContexts([In] unsigned int cCount,[In, Buffer] IWICColorContext** ppIColorContext) Sets the global palette for the image. The to use as the global palette. Returns if successful, or an error value otherwise.Returns WINCODEC_ERR_UNSUPPORTEDOPERATION if the feature is not supported by the encoder. HRESULT IWICBitmapEncoder::SetPalette([In, Optional] IWICPalette* pIPalette) Sets the global thumbnail for the image. The to set as the global thumbnail. Returns if successful, or an error value otherwise.Returns WINCODEC_ERR_UNSUPPORTEDOPERATION if the feature is not supported by the encoder. HRESULT IWICBitmapEncoder::SetThumbnail([In, Optional] IWICBitmapSource* pIThumbnail) Sets the global preview for the image. The to use as the global preview. Returns if successful, or an error value otherwise.Returns WINCODEC_ERR_UNSUPPORTEDOPERATION if the feature is not supported by the encoder. HRESULT IWICBitmapEncoder::SetPreview([In, Optional] IWICBitmapSource* pIPreview) Creates a new instance. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. The parameter ppIEncoderOptions can be used to receive an that can then be used to specify encoder options. This is done by passing a reference to a NULLIPropertyBag2 reference in ppIEncoderOptions. You should then set your desired encoder options on the returned, and pass this to .Note??Do not pass in a reference to an initialized . The reference will be overwritten, and the original will not be freed.Otherwise, you can pass null in ppIEncoderOptions if you do not intend to specify encoder options.See Encoding Overview for an example of how to set encoder options. HRESULT IWICBitmapEncoder::CreateNewFrame([Out, Fast] IWICBitmapFrameEncode** ppIFrameEncode,[Out, Fast] IPropertyBag2** ppIEncoderOptions) Commits all changes for the image and closes the stream. If this method succeeds, it returns . Otherwise, it returns an error code. To finalize an image, both the frame Commit and the encoder Commit must be called. However, only call the encoder Commit method after all frames have been committed. HRESULT IWICBitmapEncoder::Commit() Retrieves a metadata query writer for the encoder. When this method returns, contains a reference to the encoder's metadata query writer. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapEncoder::GetMetadataQueryWriter([Out] IWICMetadataQueryWriter** ppIMetadataQueryWriter) Initializes a new instance of the class. The factory. The container format GUID. List from HRESULT IWICImagingFactory::CreateEncoder([In] const GUID& guidContainerFormat,[In, Optional] const GUID* pguidVendor,[Out] IWICBitmapEncoder** ppIEncoder) Initializes a new instance of the class. The factory. The container format GUID. List from The GUID vendor ref. HRESULT IWICImagingFactory::CreateEncoder([In] const GUID& guidContainerFormat,[In, Optional] const GUID* pguidVendor,[Out] IWICBitmapEncoder** ppIEncoder) Initializes the encoder with the provided stream. The stream to use for initialization. If the method succeeds, it returns . Otherwise, it throws an exception. HRESULT IWICBitmapEncoder::Initialize([In, Optional] IStream* pIStream,[In] WICBitmapEncoderCacheOption cacheOption) Sets the objects for the encoder. The color contexts to set for the encoder. If the method succeeds, it returns . Otherwise, it throws an exception. HRESULT IWICBitmapEncoder::SetColorContexts([In] unsigned int cCount,[In, Buffer] IWICColorContext** ppIColorContext) Retrieves the encoder's container format. GetContainerFormat HRESULT IWICBitmapEncoder::GetContainerFormat([Out] GUID* pguidContainerFormat) Retrieves an for the encoder. GetEncoderInfo HRESULT IWICBitmapEncoder::GetEncoderInfo([Out] IWICBitmapEncoderInfo** ppIEncoderInfo) Sets the global palette for the image. SetPalette HRESULT IWICBitmapEncoder::SetPalette([In, Optional] IWICPalette* pIPalette) Sets the global thumbnail for the image. SetThumbnail HRESULT IWICBitmapEncoder::SetThumbnail([In, Optional] IWICBitmapSource* pIThumbnail) Sets the global preview for the image. SetPreview HRESULT IWICBitmapEncoder::SetPreview([In, Optional] IWICBitmapSource* pIPreview) Retrieves a metadata query writer for the encoder. GetMetadataQueryWriter HRESULT IWICBitmapEncoder::GetMetadataQueryWriter([Out] IWICMetadataQueryWriter** ppIMetadataQueryWriter) Exposes methods that provide information about an encoder. IWICBitmapEncoderInfo Initializes a new instance of the class. The native pointer. Creates a new instance. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapEncoderInfo::CreateInstance([Out] IWICBitmapEncoder** ppIBitmapEncoder) Exposes methods that produce a flipped (horizontal or vertical) and/or rotated (by 90 degree increments) bitmap source. Rotations are done before the flip. IWICBitmapFlipRotator Initializes a new instance of the class. The native pointer. Initializes the bitmap flip rotator with the provided parameters. The input bitmap source. The to flip or rotate the image. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapFlipRotator::Initialize([In, Optional] IWICBitmapSource* pISource,[In] WICBitmapTransformOptions options) Initializes a new instance of the class. The factory. Defines methods for decoding individual image frames of an encoded file. IWICBitmapFrameDecode Initializes a new instance of the class. The native pointer. Retrieves a metadata query reader for the frame. When this method returns, contains a reference to the frame's metadata query reader. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapFrameDecode::GetMetadataQueryReader([Out] IWICMetadataQueryReader** ppIMetadataQueryReader) Retrieves the associated with the image frame. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapFrameDecode::GetColorContexts([In] unsigned int cCount,[Out, Buffer, Optional] IWICColorContext** ppIColorContexts,[Out] unsigned int* pcActualCount) Retrieves a small preview of the frame, if supported by the codec. A reference that receives a reference to the of the thumbnail. If this method succeeds, it returns . Otherwise, it returns an error code. Not all formats support thumbnails. Joint Photographic Experts Group (JPEG), Tagged Image File Format (TIFF), and Microsoft?Windows Digital Photo (WDP) support thumbnails.Note to ImplementersIf the codec does not support thumbnails, return WINCODEC_ERROR_CODECNOTHUMBNAIL rather than E_NOTIMPL. HRESULT IWICBitmapFrameDecode::GetThumbnail([Out] IWICBitmapSource** ppIThumbnail) Retrieves a metadata query reader for the frame. GetMetadataQueryReader HRESULT IWICBitmapFrameDecode::GetMetadataQueryReader([Out] IWICMetadataQueryReader** ppIMetadataQueryReader) Retrieves a small preview of the frame, if supported by the codec. Not all formats support thumbnails. Joint Photographic Experts Group (JPEG), Tagged Image File Format (TIFF), and Microsoft?Windows Digital Photo (WDP) support thumbnails.Note to ImplementersIf the codec does not support thumbnails, return WINCODEC_ERROR_CODECNOTHUMBNAIL rather than E_NOTIMPL. GetThumbnail HRESULT IWICBitmapFrameDecode::GetThumbnail([Out] IWICBitmapSource** ppIThumbnail) Gets the objects of the image. HRESULT IWICBitmapFrameDecode::GetColorContexts([In] unsigned int cCount,[InOut, Buffer, Optional] IWICColorContext** ppIColorContexts,[Out] unsigned int* pcActualCount) Represents an encoder's individual image frames. IWICBitmapFrameEncode Initializes a new instance of the class. The native pointer. Initializes the frame encoder using the given properties. The set of properties to use for initialization. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapFrameEncode::Initialize([In, Optional] IPropertyBag2* pIEncoderOptions) Sets the output image dimensions for the frame. The width of the output image. The height of the output image. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapFrameEncode::SetSize([In] unsigned int uiWidth,[In] unsigned int uiHeight) Sets the physical resolution of the output image. The horizontal resolution value. The vertical resolution value. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapFrameEncode::SetResolution([In] double dpiX,[In] double dpiY) Sets a given number profiles to the frame. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapFrameEncode::SetColorContexts([In] unsigned int cCount,[In, Buffer] IWICColorContext** ppIColorContext) Sets a given number profiles to the frame. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapFrameEncode::SetColorContexts([In] unsigned int cCount,[In, Buffer] IWICColorContext** ppIColorContext) Sets the for indexed pixel formats. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. This method does not fail if called on a frame whose pixel format is set to a non-indexed pixel format. The target pixel format is a non-indexed format, the palette will be ignored. HRESULT IWICBitmapFrameEncode::SetPalette([In, Optional] IWICPalette* pIPalette) Sets the frame thumbnail if supported by the codec. The bitmap source to use as the thumbnail. Returns if successful, or an error value otherwise.Returns WINCODEC_ERR_UNSUPPORTEDOPERATION if the feature is not supported by the encoder. SetThumbnail should be called before calling WritePixels or WriteSource. The thumbnail will not be added to the encoded file if SetThumbnail after a call to WritePixels or WriteSource. HRESULT IWICBitmapFrameEncode::SetThumbnail([In, Optional] IWICBitmapSource* pIThumbnail) Encodes a bitmap source. The bitmap source to encode. The size rectangle of the bitmap source. If this method succeeds, it returns . Otherwise, it returns an error code. If SetSize is not called prior to calling WriteSource, the size given in prc is used if not null. Otherwise, the size of the given in pIBitmapSource is used.If SetPixelFormat is not called prior to calling WriteSource, the pixel format of the given in pIBitmapSource is used.If SetResolution is not called prior to calling WriteSource, the pixel format of pIBitmapSource is used.If SetPalette is not called prior to calling WriteSource, the target pixel format is indexed, and the pixel format of pIBitmapSource matches the encoder frame's pixel format, then the pIBitmapSource pixel format is used.When encoding a GIF image, if the global palette is set and the frame level palette is not set directly by the user or by a custom independent software vendor (ISV) GIF codec, WriteSource will use the global palette to encode the frame even when pIBitmapSource has a frame level palette.Windows Vista:The source rect width must match the width set through SetSize. Repeated WriteSource calls can be made as long as the total accumulated source rect height is the same as set through SetSize. HRESULT IWICBitmapFrameEncode::WriteSource([In, Optional] IWICBitmapSource* pIBitmapSource,[In, Optional] WICRect* prc) Commits the frame to the image. If this method succeeds, it returns . Otherwise, it returns an error code. To finalize the image, both the frame Commit and the encoder Commit must be called. However, only call the encoder Commit method after all frames have been committed. HRESULT IWICBitmapFrameEncode::Commit() Gets the metadata query writer for the encoder frame. When this method returns, contains a reference to metadata query writer for the encoder frame. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapFrameEncode::GetMetadataQueryWriter([Out] IWICMetadataQueryWriter** ppIMetadataQueryWriter) Initializes a new instance of the class. The encoder. HRESULT IWICBitmapEncoder::CreateNewFrame([Out] IWICBitmapFrameEncode** ppIFrameEncode,[Out] IPropertyBag2** ppIEncoderOptions) Initializes this instance. HRESULT IWICBitmapFrameEncode::Initialize([In, Optional] IPropertyBag2* pIEncoderOptions) Sets the objects for this frame encoder. The color contexts to set for the encoder. If the method succeeds, it returns . Otherwise, it throws an exception. HRESULT IWICBitmapFrameEncode::SetColorContexts([In] unsigned int cCount,[In, Buffer] IWICColorContext** ppIColorContext) Encodes the frame scanlines. The line count. The buffer. HRESULT IWICBitmapFrameEncode::WritePixels([In] unsigned int lineCount,[In] unsigned int cbStride,[In] unsigned int cbBufferSize,[In, Buffer] unsigned char* pbPixels) Requests that the encoder use the specified pixel format. SetPixelFormat HRESULT IWICBitmapFrameEncode::SetPixelFormat([InOut] GUID* pPixelFormat) Sets the for indexed pixel formats. This method does not fail if called on a frame whose pixel format is set to a non-indexed pixel format. The target pixel format is a non-indexed format, the palette will be ignored. SetPalette HRESULT IWICBitmapFrameEncode::SetPalette([In, Optional] IWICPalette* pIPalette) Sets the frame thumbnail if supported by the codec. SetThumbnail should be called before calling WritePixels or WriteSource. The thumbnail will not be added to the encoded file if SetThumbnail after a call to WritePixels or WriteSource. SetThumbnail HRESULT IWICBitmapFrameEncode::SetThumbnail([In, Optional] IWICBitmapSource* pIThumbnail) Gets the metadata query writer for the encoder frame. GetMetadataQueryWriter HRESULT IWICBitmapFrameEncode::GetMetadataQueryWriter([Out] IWICMetadataQueryWriter** ppIMetadataQueryWriter) Gets the properties to setup before . Exposes methods that support the Lock method. IWICBitmapLock Initializes a new instance of the class. The native pointer. Retrieves the width and height, in pixels, of the locked rectangle. A reference that receives the width of the locked rectangle. A reference that receives the height of the locked rectangle. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapLock::GetSize([Out] unsigned int* puiWidth,[Out] unsigned int* puiHeight) Provides access to the stride value for the memory. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. Note the stride value is specific to the , not the bitmap. For example, two consecutive locks on the same rectangle of a bitmap may return different references and stride values, depending on internal implementation. HRESULT IWICBitmapLock::GetStride([Out] unsigned int* pcbStride) Gets the reference to the top left pixel in the locked rectangle. A reference that receives the size of the buffer. A reference that receives a reference to the top left pixel in the locked rectangle. The reference provided by this method should not be used outside of the lifetime of the lock itself.GetDataPointer is not available in multi-threaded apartment applications. HRESULT IWICBitmapLock::GetDataPointer([Out] unsigned int* pcbBufferSize,[Out] void** ppbData) Gets the pixel format of for the locked area of pixels. This can be used to compute the number of bytes-per-pixel in the locked area. A reference that receives the pixel format of the locked area. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapLock::GetPixelFormat([Out] GUID* pPixelFormat) Provides access to the stride value for the memory. Note the stride value is specific to the , not the bitmap. For example, two consecutive locks on the same rectangle of a bitmap may return different references and stride values, depending on internal implementation. GetStride HRESULT IWICBitmapLock::GetStride([Out] unsigned int* pcbStride) Gets the pixel format of for the locked area of pixels. This can be used to compute the number of bytes-per-pixel in the locked area. GetPixelFormat HRESULT IWICBitmapLock::GetPixelFormat([Out] GUID* pPixelFormat) Gets the size. HRESULT IWICBitmapLock::GetSize([Out] unsigned int* puiWidth,[Out] unsigned int* puiHeight) Gets a pointer to the data. Represents a resized version of the input bitmap using a resampling or filtering algorithm. IWICBitmapScaler Initializes a new instance of the class. The native pointer. Initializes the bitmap scaler with the provided parameters. The input bitmap source. The destination width. The desination height. The to use when scaling. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapScaler::Initialize([In, Optional] IWICBitmapSource* pISource,[In] unsigned int uiWidth,[In] unsigned int uiHeight,[In] WICBitmapInterpolationMode mode) Initializes a new instance of the class. The factory. Though optional, we highly recommend that every decoder implement this interface on your frame-level decoding class, because it can provide major performance benefits. When an application requests a specific region of interest, size, orientation, or pixel format, instead of just decoding the whole image at full resolution and then applying the requested transforms, Windows Imaging Component (WIC) calls IUnknown::QueryInterface for this interface on the object. If the frame decoder supports it, WIC calls the appropriate method or methods to determine whether the frame decoder can perform the requested transform or determine the closest size or pixel format the decoder can provide to the one requested. If the decoder can perform the requested transform or transforms, WIC invokes CopyPixels with the appropriate parameters. If the decoder can perform some, but not all of the requested transforms, WIC asks the decoder to perform those that it can, and uses the WIC transform objects (, , , and ) to perform the remaining transforms that could not be performed by the frame decoder on the result of the CopyPixels call. If the decoder doesn't support , then WIC must use the transform objects to perform all of the transforms. It's usually much more efficient for the decoder to perform transforms during the decoding process than it is to decode the entire image and then perform the transforms. This is especially true for operations such as scaling to a much smaller size or pixel format conversions. IWICBitmapSourceTransform Initializes a new instance of the class. The native pointer. Copies pixel data using the supplied input parameters. The rectangle of pixels to copy. The width to scale the source bitmap. This parameter must equal the value obtainable through . The height to scale the source bitmap. This parameter must equal the value obtainable through . The of desired pixel format in which the pixels should be returned. This must be a format obtained through an GetClosestPixelFormat call. The desired rotation or flip to perform prior to the pixel copy. The transform must be an operation supported by an DoesSupportTransform call. If a dstTransform is specified, nStride is the transformed stride and is based on the pguidDstFormat pixel format, not the original source's pixel format. The stride of the destination buffer. The size of the destination buffer. The output buffer. If this method succeeds, it returns . Otherwise, it returns an error code. Codec Developer RemarksFor codec developer implementation details for this method, see Implementing .When multiple transform operations are requested, the result is dependent on the order in which the operations are performed. To ensure predictability and consistency across CODECs, it's important that all CODECs perform these operations in the same order. The recommended order of these operations is:Scale Crop Flip/RotatePixel format conversion can be performed at any time, since it has no effect on the other transforms.The first parameter, prc is used to specify the region of interest for clipping the image. By convention, scaling is performed before clipping so, if the image is to be scaled as well as clipped, the region of interest should be determined after the image has been scaled.If a dstTransform is specified, the stride is the transformed stride, and is based on the pixelFormat specified in the CopyPixels call, not the original frame's pixel format. HRESULT IWICBitmapSourceTransform::CopyPixels([In, Optional] const WICRect* prc,[In] unsigned int uiWidth,[In] unsigned int uiHeight,[In, Optional] GUID* pguidDstFormat,[In] WICBitmapTransformOptions dstTransform,[In] unsigned int nStride,[In] unsigned int cbBufferSize,[In] void* pbBuffer) Returns the closest dimensions the implementation can natively scale to given the desired dimensions. The desired width. A reference that receives the closest supported width. The desired height.A reference that receives the closest supported height. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapSourceTransform::GetClosestSize([InOut] unsigned int* puiWidth,[InOut] unsigned int* puiHeight) Retrieves the closest pixel format to which the implementation of can natively copy pixels, given a desired format. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapSourceTransform::GetClosestPixelFormat([InOut] GUID* pguidDstFormat) Determines whether a specific transform option is supported natively by the implementation of the interface. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICBitmapSourceTransform::DoesSupportTransform([In] WICBitmapTransformOptions dstTransform,[Out] BOOL* pfIsSupported) Copies pixel data using the supplied input parameters. The width. The height. The stride. The output. HRESULT IWICBitmapSourceTransform::CopyPixels([In, Optional] const WICRect* prc,[In] unsigned int uiWidth,[In] unsigned int uiHeight,[In, Optional] GUID* pguidDstFormat,[In] WICBitmapTransformOptions dstTransform,[In] unsigned int nStride,[In] unsigned int cbBufferSize,[In] void* pbBuffer) Copies pixel data using the supplied input parameters. The width. The height. The DST transform. The stride. The output. HRESULT IWICBitmapSourceTransform::CopyPixels([In, Optional] const WICRect* prc,[In] unsigned int uiWidth,[In] unsigned int uiHeight,[In, Optional] GUID* pguidDstFormat,[In] WICBitmapTransformOptions dstTransform,[In] unsigned int nStride,[In] unsigned int cbBufferSize,[In] void* pbBuffer) Copies pixel data using the supplied input parameters. The width. The height. The GUID DST format. The DST transform. The stride. The output. HRESULT IWICBitmapSourceTransform::CopyPixels([In, Optional] const WICRect* prc,[In] unsigned int uiWidth,[In] unsigned int uiHeight,[In, Optional] GUID* pguidDstFormat,[In] WICBitmapTransformOptions dstTransform,[In] unsigned int nStride,[In] unsigned int cbBufferSize,[In] void* pbBuffer) Copies pixel data using the supplied input parameters. The rectangle. The width. The height. The GUID DST format. The DST transform. The stride. The output. HRESULT IWICBitmapSourceTransform::CopyPixels([In, Optional] const WICRect* prc,[In] unsigned int uiWidth,[In] unsigned int uiHeight,[In, Optional] GUID* pguidDstFormat,[In] WICBitmapTransformOptions dstTransform,[In] unsigned int nStride,[In] unsigned int cbBufferSize,[In] void* pbBuffer) Returns the closest dimensions the implementation can natively scale to given the desired dimensions. The size. HRESULT IWICBitmapSourceTransform::GetClosestSize([InOut] unsigned int* puiWidth,[InOut] unsigned int* puiHeight) Exposes methods for color management. IWICColorContext Initializes a new instance of the class. The native pointer. Initializes the color context from the given file. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICColorContext::InitializeFromFilename([In] const wchar_t* wzFilename) Initializes the color context from a memory block. The buffer used to initialize the . The size of the pbBuffer buffer. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICColorContext::InitializeFromMemory([In] const void* pbBuffer,[In] unsigned int cbBufferSize) Retrieves the color context type. A reference that receives the of the color context. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICColorContext::GetType([Out] WICColorContextType* pType) Retrieves the color context profile. The size of the pbBuffer buffer. A reference that receives the color context profile. A reference that receives the actual buffer size needed to retrieve the entire color context profile. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICColorContext::GetProfileBytes([In] unsigned int cbBuffer,[In] void* pbBuffer,[Out] unsigned int* pcbActual) Initializes a new instance of the class. The factory. HRESULT IWICImagingFactory::CreateColorContext([Out, Fast] IWICColorContext** ppIWICColorContext) Initializes from memory. The data stream. HRESULT IWICColorContext::InitializeFromMemory([In] const void* pbBuffer,[In] unsigned int cbBufferSize) Retrieves the color context type. GetType HRESULT IWICColorContext::GetType([Out] WICColorContextType* pType) Retrieves the Exchangeable Image File (EXIF) color space color context. GetExifColorSpace HRESULT IWICColorContext::GetExifColorSpace([Out] unsigned int* pValue) Gets the color context profile. Exposes methods that transforms an from one color context to another. IWICColorTransform Initializes a new instance of the class. The native pointer. Initializes an with a and transforms it from one to another. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICColorTransform::Initialize([In, Optional] IWICBitmapSource* pIBitmapSource,[In, Optional] IWICColorContext* pIContextSource,[In, Optional] IWICColorContext* pIContextDest,[In] const GUID& pixelFmtDest) Initializes a new instance of the class. The factory. HRESULT IWICImagingFactory::CreateColorTransformer([Out, Fast] IWICColorTransform** ppIWICColorTransform) Exposes methods that provide access to the capabilites of a raw codec format. IWICDevelopRaw Initializes a new instance of the class. The native pointer. Retrieves information about which capabilities are supported for a raw image. A reference that receives that provides the capabilities supported by the raw image. If this method succeeds, it returns . Otherwise, it returns an error code. It is recommended that a codec report that a capability is supported even if the results at the outer range limits are not of perfect quality. HRESULT IWICDevelopRaw::QueryRawCapabilitiesInfo([In] WICRawCapabilitiesInfo* pInfo) Sets the desired option. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::LoadParameterSet([In] WICRawParameterSet ParameterSet) Gets the current set of parameters. A reference that receives a reference to the current set of parameters. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::GetCurrentParameterSet([Out] IPropertyBag2** ppCurrentParameterSet) Sets the exposure compensation stop value. The exposure compensation value. The value range for exposure compensation is -5.0 through +5.0, which equates to 10 full stops. If this method succeeds, it returns . Otherwise, it returns an error code. It is recommended that a codec report that this method is supported even if the results at the outer range limits are not of perfect quality. HRESULT IWICDevelopRaw::SetExposureCompensation([In] double ev) Gets the exposure compensation stop value of the raw image. A reference that receives the exposure compensation stop value. The default is the "as-shot" setting. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::GetExposureCompensation([Out] double* pEV) Sets the white point RGB values. The red white point value. The green white point value. The blue white point value. If this method succeeds, it returns . Otherwise, it returns an error code. Due to other white point setting methods (e.g. SetWhitePointKelvin), care must be taken by codec implementers to ensure proper interoperability. For instance, if the caller sets via a named white point then the codec implementer may whis to disable reading back the correspoinding Kelvin temperature. In specific cases where the codec implementer wishes to deny a given action because of previous calls, WINCODEC_ERR_WRONGSTATE should be returned. HRESULT IWICDevelopRaw::SetWhitePointRGB([In] unsigned int Red,[In] unsigned int Green,[In] unsigned int Blue) Gets the white point RGB values. A reference that receives the red white point value. A reference that receives the green white point value. A reference that receives the blue white point value. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::GetWhitePointRGB([Out] unsigned int* pRed,[Out] unsigned int* pGreen,[Out] unsigned int* pBlue) Sets the named white point of the raw file. A bitwise combination of the enumeration values. If this method succeeds, it returns . Otherwise, it returns an error code. If the named white points are not supported by the raw image or the raw file contains named white points that are not supported by this API, the codec implementer should still mark this capability as supported.If the named white points are not supported by the raw image, a best effort should be made to adjust the image to the named white point even when it isn't a pre-defined white point of the raw file.If the raw file containes named white points not supported by this API, the codec implementer should support the named white points in the API.Due to other white point setting methods (e.g. SetWhitePointKelvin), care must be taken by codec implementers to ensure proper interoperability. For instance, if the caller sets via a named white point then the codec implementer may whis to disable reading back the correspoinding Kelvin temperature. In specific cases where the codec implementer wishes to deny a given action because of previous calls, WINCODEC_ERR_WRONGSTATE should be returned. HRESULT IWICDevelopRaw::SetNamedWhitePoint([In] WICNamedWhitePoint WhitePoint) Gets the named white point of the raw image. A reference that receives the bitwise combination of the enumeration values. If this method succeeds, it returns . Otherwise, it returns an error code. If the named white points are not supported by the raw image or the raw file contains named white points that are not supported by this API, the codec implementer should still mark this capability as supported.If the named white points are not supported by the raw image, a best effort should be made to adjust the image to the named white point even when it isn't a pre-defined white point of the raw file.If the raw file containes named white points not supported by this API, the codec implementer should support the named white points in . HRESULT IWICDevelopRaw::GetNamedWhitePoint([Out] WICNamedWhitePoint* pWhitePoint) Sets the white point Kelvin value. The white point Kelvin value. Acceptable Kelvin values are 1,500 through 30,000. If this method succeeds, it returns . Otherwise, it returns an error code. Codec implementers should faithfully adjust the color temperature within the range supported natively by the raw image. For values outside the native support range, the codec implementer should provide a best effort representation of the image at that color temperature.Codec implementers should return WINCODEC_ERR_VALUEOUTOFRANGE if the value is out of defined acceptable range.Codec implementers must ensure proper interoperability with other white point setting methods such as SetWhitePointRGB. For example, if the caller sets the white point via SetNamedWhitePoint then the codec implementer may want to disable reading back the correspoinding Kelvin temperature. In specific cases where the codec implementer wants to deny a given action because of previous calls, WINCODEC_ERR_WRONGSTATE should be returned. HRESULT IWICDevelopRaw::SetWhitePointKelvin([In] unsigned int WhitePointKelvin) Gets the white point Kelvin temperature of the raw image. A reference that receives the white point Kelvin temperature of the raw image. The default is the "as-shot" setting value. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::GetWhitePointKelvin([Out] unsigned int* pWhitePointKelvin) Gets the information about the current Kelvin range of the raw image. A reference that receives the minimum Kelvin temperature. A reference that receives the maximum Kelvin temperature. A reference that receives the Kelvin step value. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::GetKelvinRangeInfo([Out] unsigned int* pMinKelvinTemp,[Out] unsigned int* pMaxKelvinTemp,[Out] unsigned int* pKelvinTempStepValue) Sets the contrast value of the raw image. The contrast value of the raw image. The default value is the "as-shot" setting. The value range for contrast is 0.0 through 1.0. The 0.0 lower limit represents no contrast applied to the image, while the 1.0 upper limit represents the highest amount of contrast that can be applied. If this method succeeds, it returns . Otherwise, it returns an error code. The codec implementer must determine what the upper range value represents and must determine how to map the value to their image processing routines. HRESULT IWICDevelopRaw::SetContrast([In] double Contrast) Gets the contrast value of the raw image. A reference that receives the contrast value of the raw image. The default value is the "as-shot" setting. The value range for contrast is 0.0 through 1.0. The 0.0 lower limit represents no contrast applied to the image, while the 1.0 upper limit represents the highest amount of contrast that can be applied. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::GetContrast([Out] double* pContrast) Sets the desired gamma value. The desired gamma value. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::SetGamma([In] double Gamma) Gets the current gamma setting of the raw image. A reference that receives the current gamma setting. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::GetGamma([Out] double* pGamma) Sets the sharpness value of the raw image. The sharpness value of the raw image. The default value is the "as-shot" setting. The value range for sharpness is 0.0 through 1.0. The 0.0 lower limit represents no sharpening applied to the image, while the 1.0 upper limit represents the highest amount of sharpness that can be applied. If this method succeeds, it returns . Otherwise, it returns an error code. The codec implementer must determine what the upper range value represents and must determine how to map the value to their image processing routines. HRESULT IWICDevelopRaw::SetSharpness([In] double Sharpness) Gets the sharpness value of the raw image. A reference that receives the sharpness value of the raw image. The default value is the "as-shot" setting. The value range for sharpness is 0.0 through 1.0. The 0.0 lower limit represents no sharpening applied to the image, while the 1.0 upper limit represents the highest amount of sharpness that can be applied. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::GetSharpness([Out] double* pSharpness) Sets the saturation value of the raw image. The saturation value of the raw image. The value range for saturation is 0.0 through 1.0. A value of 0.0 represents an image with a fully de-saturated image, while a value of 1.0 represents the highest amount of saturation that can be applied. If this method succeeds, it returns . Otherwise, it returns an error code. The codec implementer must determine what the upper range value represents and must determine how to map the value to their image processing routines. HRESULT IWICDevelopRaw::SetSaturation([In] double Saturation) Gets the saturation value of the raw image. A reference that receives the saturation value of the raw image. The default value is the "as-shot" setting. The value range for saturation is 0.0 through 1.0. A value of 0.0 represents an image with a fully de-saturated image, while a value of 1.0 represents the highest amount of saturation that can be applied. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::GetSaturation([Out] double* pSaturation) Sets the tint value of the raw image. The tint value of the raw image. The default value is the "as-shot" setting if it exists or 0.0. The value range for sharpness is -1.0 through +1.0. The -1.0 lower limit represents a full green bias to the image, while the 1.0 upper limit represents a full magenta bias. If this method succeeds, it returns . Otherwise, it returns an error code. The codec implementer must determine what the outer range values represent and must determine how to map the values to their image processing routines. HRESULT IWICDevelopRaw::SetTint([In] double Tint) Gets the tint value of the raw image. A reference that receives the tint value of the raw image. The default value is the "as-shot" setting if it exists or 0.0. The value range for sharpness is -1.0 through +1.0. The -1.0 lower limit represents a full green bias to the image, while the 1.0 upper limit represents a full magenta bias. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::GetTint([Out] double* pTint) Sets the noise reduction value of the raw image. The noise reduction value of the raw image. The default value is the "as-shot" setting if it exists or 0.0. The value range for noise reduction is 0.0 through 1.0. The 0.0 lower limit represents no noise reduction applied to the image, while the 1.0 upper limit represents highest noise reduction amount that can be applied. If this method succeeds, it returns . Otherwise, it returns an error code. The codec implementer must determine what the upper range value represents and must determine how to map the value to their image processing routines. HRESULT IWICDevelopRaw::SetNoiseReduction([In] double NoiseReduction) Gets the noise reduction value of the raw image. A reference that receives the noise reduction value of the raw image. The default value is the "as-shot" setting if it exists or 0.0. The value range for noise reduction is 0.0 through 1.0. The 0.0 lower limit represents no noise reduction applied to the image, while the 1.0 upper limit represents full highest noise reduction amount that can be applied. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::GetNoiseReduction([Out] double* pNoiseReduction) Sets the destination color context. The destination color context. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::SetDestinationColorContext([In, Optional] IWICColorContext* pColorContext) Sets the tone curve for the raw image. The size of the pToneCurve structure. The desired tone curve. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::SetToneCurve([In] unsigned int cbToneCurveSize,[In, Buffer] const WICRawToneCurve* pToneCurve) Gets the tone curve of the raw image. The size of the pToneCurve buffer. A reference that receives the of the raw image. A reference that receives the size needed to obtain the tone curve structure. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::GetToneCurve([In] unsigned int cbToneCurveBufferSize,[Out, Buffer, Optional] WICRawToneCurve* pToneCurve,[InOut, Optional] unsigned int* pcbActualToneCurveBufferSize) Sets the desired rotation angle. The desired rotation angle. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::SetRotation([In] double Rotation) Gets the current rotation angle. A reference that receives the current rotation angle. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::GetRotation([Out] double* pRotation) Sets the current . No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::SetRenderMode([In] WICRawRenderMode RenderMode) Gets the current . No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::GetRenderMode([Out] WICRawRenderMode* pRenderMode) Sets the notification callback method. Pointer to the notification callback method. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRaw::SetNotificationCallback([In, Optional] IWICDevelopRawNotificationCallback* pCallback) Gets the current set of parameters. GetCurrentParameterSet HRESULT IWICDevelopRaw::GetCurrentParameterSet([Out] IPropertyBag2** ppCurrentParameterSet) Gets the exposure compensation stop value of the raw image. GetExposureCompensation HRESULT IWICDevelopRaw::GetExposureCompensation([Out] double* pEV) Gets the named white point of the raw image. If the named white points are not supported by the raw image or the raw file contains named white points that are not supported by this API, the codec implementer should still mark this capability as supported.If the named white points are not supported by the raw image, a best effort should be made to adjust the image to the named white point even when it isn't a pre-defined white point of the raw file.If the raw file containes named white points not supported by this API, the codec implementer should support the named white points in . GetNamedWhitePoint HRESULT IWICDevelopRaw::GetNamedWhitePoint([Out] WICNamedWhitePoint* pWhitePoint) Gets the white point Kelvin temperature of the raw image. GetWhitePointKelvin HRESULT IWICDevelopRaw::GetWhitePointKelvin([Out] unsigned int* pWhitePointKelvin) Gets the contrast value of the raw image. GetContrast HRESULT IWICDevelopRaw::GetContrast([Out] double* pContrast) Gets the current gamma setting of the raw image. GetGamma HRESULT IWICDevelopRaw::GetGamma([Out] double* pGamma) Gets the sharpness value of the raw image. GetSharpness HRESULT IWICDevelopRaw::GetSharpness([Out] double* pSharpness) Gets the saturation value of the raw image. GetSaturation HRESULT IWICDevelopRaw::GetSaturation([Out] double* pSaturation) Gets the tint value of the raw image. GetTint HRESULT IWICDevelopRaw::GetTint([Out] double* pTint) Gets the noise reduction value of the raw image. GetNoiseReduction HRESULT IWICDevelopRaw::GetNoiseReduction([Out] double* pNoiseReduction) Sets the destination color context. SetDestinationColorContext HRESULT IWICDevelopRaw::SetDestinationColorContext([In, Optional] IWICColorContext* pColorContext) Gets the current rotation angle. GetRotation HRESULT IWICDevelopRaw::GetRotation([Out] double* pRotation) Gets the current . GetRenderMode HRESULT IWICDevelopRaw::GetRenderMode([Out] WICRawRenderMode* pRenderMode) Sets the notification callback method. SetNotificationCallback HRESULT IWICDevelopRaw::SetNotificationCallback([In, Optional] IWICDevelopRawNotificationCallback* pCallback) Flags used to by to indicate which members have changed. IWICDevelopRawNotificationCallback Initializes a new instance of the class. The native pointer. An application-defined callback method used for raw image parameter change notifications. A set of Constants parameter notification flags. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICDevelopRawNotificationCallback::Notify([In] unsigned int NotificationMask) Exposes methods that provide enumeration services for individual metadata items. IWICEnumMetadataItem Initializes a new instance of the class. The native pointer. Skips to given number of objects. The number of objects to skip. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICEnumMetadataItem::Skip([In] unsigned int celt) Resets the current position to the beginning of the enumeration. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICEnumMetadataItem::Reset() Creates a copy of the current . No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICEnumMetadataItem::Clone([Out] IWICEnumMetadataItem** ppIEnumMetadataItem) Exposes methods used for in-place metadata editing. A fast metadata encoder enables you to add and remove metadata to an image without having to fully re-encode the image. IWICFastMetadataEncoder Initializes a new instance of the class. The native pointer. Finalizes metadata changes to the image stream. If this method succeeds, it returns . Otherwise, it returns an error code. If the commit fails and returns WINCODEC_ERR_STREAMNOTAVAILABLE, ensure that the image decoder was loaded using the option. A fast metadata encoder is not supported when the decoder is created using the option.If the commit fails for any reason, you will need to re-encode the image to ensure the new metadata is added to the image. HRESULT IWICFastMetadataEncoder::Commit() Retrieves a metadata query writer for fast metadata encoding. When this method returns, contains a reference to the fast metadata encoder's metadata query writer. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICFastMetadataEncoder::GetMetadataQueryWriter([Out] IWICMetadataQueryWriter** ppIMetadataQueryWriter) Initializes a new instance of the class from a The factory. The decoder. Initializes a new instance of the class from a The factory. The frame decoder. Retrieves a metadata query writer for fast metadata encoding. GetMetadataQueryWriter HRESULT IWICFastMetadataEncoder::GetMetadataQueryWriter([Out] IWICMetadataQueryWriter** ppIMetadataQueryWriter) Represents an that provides converts the image data from one pixel format to another, handling dithering and halftoning to indexed formats, palette translation and alpha thresholding. IWICFormatConverter Initializes a new instance of the class. The native pointer. Initializes the format converter. The input bitmap to convert The destination pixel format . The used for conversion. The palette to use for conversion. The alpha threshold to use for conversion. The palette translation type to use for conversion. If this method succeeds, it returns . Otherwise, it returns an error code. If you do not have a predefined palette, you must first create one. Use InitializeFromBitmap to create the palette object, then pass it in along with your other parameters.dither, pIPalette, alphaThresholdPercent, and paletteTranslate are used to mitigate color loss when converting to a reduced bit-depth format. For conversions that do not need these settings, the following parameters values should be used: dither set to , pIPalette set to null, alphaThresholdPercent set to 0.0f, and paletteTranslate set to .The basic algorithm involved when using an ordered dither requires a fixed palette, found in the enumeration, in a specific order. Often, the actual palette provided for the output may have a different ordering or some slight variation in the actual colors. This is the case when using the Microsoft?Windows palette which has slight differences among versions of Windows. To provide for this, a palette and a palette translation are given to the format converter. The pIPalette is the actual destination palette to be used and the paletteTranslate is a fixed palette. Once the conversion is complete, the colors are mapped from the fixed palette to the actual colors in pIPalette using a nearest color matching algorithm.If colors in pIPalette do not closely match those in paletteTranslate, the mapping may produce undesireable results.WICBitmapDitherTypeOrdered4x4 can be useful in format conversions from 8-bit formats to 5- or 6-bit formats as there is no way to accurately convert color data.WICBitmapDitherTypeErrorDiffusion selects the error diffusion algorithm and may be used with any palette. If an arbitrary palette is provided, WICBitmapPaletteCustom should be passed in as the paletteTranslate. Error diffusion often provides superior results compared to the ordered dithering algorithms especially when combined with the optimized palette generation functionality on the .When converting a bitmap which has an alpha channel, such as a Portable Network Graphics (PNG), to 8bpp, the alpha channel is normally ignored. Any pixels which were transparent in the original bitmap show up as black in the final output because both transparent and black have pixel values of zero in the respective formats.Some 8bpp content can contains an alpha color; for instance, the Graphics Interchange Format (GIF) format allows for a single palette entry to be used as a transparent color. For this type of content, alphaThresholdPercent specifies what percentage of transparency should map to the transparent color. Because the alpha value is directly proportional to the opacity (not transparency) of a pixel, the alphaThresholdPercent indicates what level of opacity is mapped to the fully transparent color. For instance, 9.8% implies that any pixel with an alpha value of less than 25 will be mapped to the transparent color. A value of 100% maps all pixels which are not fully opaque to the transparent color. Note that the palette should provide a transparent color. If it does not, the 'transparent' color will be the one closest to zero - often black. HRESULT IWICFormatConverter::Initialize([In, Optional] IWICBitmapSource* pISource,[In] const GUID& dstFormat,[In] WICBitmapDitherType dither,[In, Optional] IWICPalette* pIPalette,[In] double alphaThresholdPercent,[In] WICBitmapPaletteType paletteTranslate) Determines if the source pixel format can be converted to the destination pixel format. The source pixel format. The destionation pixel format. A reference that receives a value indicating whether the source pixel format can be converted to the destination pixel format. HRESULT IWICFormatConverter::CanConvert([In] const GUID& srcPixelFormat,[In] const GUID& dstPixelFormat,[Out] BOOL* pfCanConvert) Initializes a new instance of the class. The converter info. Initializes this instance with the specified bitmap source and format The source ref. The destination format. Initializes a new instance of the class. The factory. Exposes methods that provide information about a pixel format converter. IWICFormatConverterInfo Initializes a new instance of the class. The native pointer. Retrieves a list of GUIDs that signify which pixel formats the converter supports. The size of the pPixelFormatGUIDs array. Pointer to a array that receives the pixel formats the converter supports. The actual array size needed to retrieve all pixel formats supported by the converter. If this method succeeds, it returns . Otherwise, it returns an error code. The format converter does not necessarily guarantee symmetricality with respect to conversion; that is, a converter may be able to convert FROM a particular format without actually being able to convert TO a particular format. In order to test symmetricality, use CanConvert.To determine the number of pixel formats a coverter can handle, set cFormats to 0 and pPixelFormatGUIDs to null. The converter will fill pcActual with the number of formats supported by that converter. HRESULT IWICFormatConverterInfo::GetPixelFormats([In] unsigned int cFormats,[In] void* pPixelFormatGUIDs,[Out] unsigned int* pcActual) Creates a new instance. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICFormatConverterInfo::CreateInstance([Out, Fast] IWICFormatConverter** ppIConverter) Gets the supported pixel formats. No documentation. IWICImageEncoder Initializes a new instance of the class. The native pointer. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT IWICImageEncoder::WriteFrame([In] ID2D1Image* pImage,[In] IWICBitmapFrameEncode* pFrameEncode,[In] const WICImageParameters* pImageParameters) No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT IWICImageEncoder::WriteFrameThumbnail([In] ID2D1Image* pImage,[In] IWICBitmapFrameEncode* pFrameEncode,[In] const WICImageParameters* pImageParameters) No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT IWICImageEncoder::WriteThumbnail([In] ID2D1Image* pImage,[In] IWICBitmapEncoder* pEncoder,[In] const WICImageParameters* pImageParameters) Exposes methods used to create components for the Windows Imaging Component (WIC) such as decoders, encoders and pixel format converters. IWICImagingFactory Initializes a new instance of the class. The native pointer. Constant WICImagingFactoryClsid. CLSID_WICImagingFactory Creates a new instance of the class based on the given file. No documentation. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateDecoderFromFilename([In] const wchar_t* wzFilename,[In, Optional] const GUID* pguidVendor,[In] unsigned int dwDesiredAccess,[In] WICDecodeOptions metadataOptions,[Out, Fast] IWICBitmapDecoder** ppIDecoder) Creates a new instance of the class based on the given . No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateDecoderFromStream([In, Optional] IStream* pIStream,[In, Optional] const GUID* pguidVendor,[In] WICDecodeOptions metadataOptions,[Out, Fast] IWICBitmapDecoder** ppIDecoder) Creates a new instance of the based on the given file handle. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. When a decoder is created using this method, the file handle must remain alive during the lifetime of the decoder. HRESULT IWICImagingFactory::CreateDecoderFromFileHandle([In] ULONG_PTR hFile,[In, Optional] const GUID* pguidVendor,[In] WICDecodeOptions metadataOptions,[Out, Fast] IWICBitmapDecoder** ppIDecoder) Creates a new instance of the class for the given component class identifier (CLSID). No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateComponentInfo([In] const GUID& clsidComponent,[Out, Fast] IWICComponentInfo** ppIInfo) Creates a new instance of the interface. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateDecoder([In] const GUID& guidContainerFormat,[In, Optional] const GUID* pguidVendor,[Out, Fast] IWICBitmapDecoder** ppIDecoder) Creates a new instance of the class. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. Other values may be available for both guidContainerFormat and pguidVendor depending on the installed WIC-enabled encoders. The values listed are those that are natively supported by the operating system. HRESULT IWICImagingFactory::CreateEncoder([In] const GUID& guidContainerFormat,[In, Optional] const GUID* pguidVendor,[Out, Fast] IWICBitmapEncoder** ppIEncoder) Creates a new instance of the class. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreatePalette([Out, Fast] IWICPalette** ppIPalette) Creates a new instance of the class. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateFormatConverter([Out, Fast] IWICFormatConverter** ppIFormatConverter) Creates a new instance of an . No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateBitmapScaler([Out, Fast] IWICBitmapScaler** ppIBitmapScaler) Creates a new instance of an object. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateBitmapClipper([Out, Fast] IWICBitmapClipper** ppIBitmapClipper) Creates a new instance of an object. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateBitmapFlipRotator([Out, Fast] IWICBitmapFlipRotator** ppIBitmapFlipRotator) Creates a new instance of the class. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateStream([Out, Fast] IWICStream** ppIWICStream) Creates a new instance of the class. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateColorContext([Out, Fast] IWICColorContext** ppIWICColorContext) Creates a new instance of the class. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateColorTransformer([Out, Fast] IWICColorTransform** ppIWICColorTransform) Creates an object. No documentation. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateBitmap([In] unsigned int uiWidth,[In] unsigned int uiHeight,[In] const GUID& pixelFormat,[In] WICBitmapCreateCacheOption option,[Out, Fast] IWICBitmap** ppIBitmap) Creates a from a . No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateBitmapFromSource([In, Optional] IWICBitmapSource* pIBitmapSource,[In] WICBitmapCreateCacheOption option,[Out, Fast] IWICBitmap** ppIBitmap) Creates an from a specified rectangle of an . No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateBitmapFromSourceRect([In, Optional] IWICBitmapSource* pIBitmapSource,[In] unsigned int x,[In] unsigned int y,[In] unsigned int width,[In] unsigned int height,[Out, Fast] IWICBitmap** ppIBitmap) Creates an from a memory block. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateBitmapFromMemory([In] unsigned int uiWidth,[In] unsigned int uiHeight,[In] const GUID& pixelFormat,[In] unsigned int cbStride,[In] unsigned int cbBufferSize,[In] void* pbBuffer,[Out, Fast] IWICBitmap** ppIBitmap) Creates an from a bitmap handle. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateBitmapFromHBITMAP([In] HBITMAP hBitmap,[In, Optional] HPALETTE hPalette,[In] WICBitmapAlphaChannelOption options,[Out, Fast] IWICBitmap** ppIBitmap) Creates an from an icon handle. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateBitmapFromHICON([In] HICON hIcon,[Out, Fast] IWICBitmap** ppIBitmap) Creates an object of the specified component types. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. Component types must be enumerated seperately. Combinations of component types and are unsupported. HRESULT IWICImagingFactory::CreateComponentEnumerator([In] unsigned int componentTypes,[In] unsigned int options,[Out, Fast] IEnumUnknown** ppIEnumUnknown) Creates a new instance of the fast metadata encoder based on the given . No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. The native image formats provided by Windows Imaging Component (WIC) do not support metadata at the decoder level. WIC codecs only support metadata on image frames. To create a fast metadata encoder from an image frame, see the image factory's CreateFastMetadataEncoderFromFrameDecode method. HRESULT IWICImagingFactory::CreateFastMetadataEncoderFromDecoder([In, Optional] IWICBitmapDecoder* pIDecoder,[Out, Fast] IWICFastMetadataEncoder** ppIFastEncoder) Creates a new instance of the fast metadata encoder based on the given image frame. The to create the from. When this method returns, contains a reference to a new fast metadata encoder. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateFastMetadataEncoderFromFrameDecode([In, Optional] IWICBitmapFrameDecode* pIFrameDecoder,[Out, Fast] IWICFastMetadataEncoder** ppIFastEncoder) Creates a new instance of a query writer. The for the desired metadata format. The for the preferred metadata writer vendor. Use null if no preferred vendor. When this method returns, contains a reference to a new . If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateQueryWriter([In] const GUID& guidMetadataFormat,[In, Optional] const GUID* pguidVendor,[Out, Fast] IWICMetadataQueryWriter** ppIQueryWriter) Creates a new instance of a query writer based on the given query reader. The query writer will be pre-populated with metadata from the query reader. The to create the from. The for the preferred metadata writer vendor. Use null if no preferred vendor. When this method returns, contains a reference to a new metadata writer. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICImagingFactory::CreateQueryWriterFromReader([In, Optional] IWICMetadataQueryReader* pIQueryReader,[In, Optional] const GUID* pguidVendor,[Out, Fast] IWICMetadataQueryWriter** ppIQueryWriter) Initializes a new instance of the class. No documentation. IWICImagingFactory2 Initializes a new instance of the class. The native pointer. No documentation. No documentation. No documentation. No documentation. HRESULT IWICImagingFactory2::CreateImageEncoder([In] ID2D1DeviceContext* pD2DDeviceContext,[In] IWICImageEncoder** ppWICImageEncoder) Exposes methods for retrieving metadata blocks and items from a decoder or its image frames using a metadata query expression. IWICMetadataQueryReader Initializes a new instance of the class. The native pointer. Gets the metadata query readers container format. Pointer that receives the cointainer format . If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICMetadataQueryReader::GetContainerFormat([Out] GUID* pguidContainerFormat) Retrieves the current path relative to the root metadata block. The length of the wzNamespace buffer. Pointer that receives the current namespace location. The actual buffer length that was needed to retrieve the current namespace location. If this method succeeds, it returns . Otherwise, it returns an error code. If the query reader is relative to the top of the metadata hierarchy it will return an empty string.If the query reader is relative to a nested metadata block this method will return the path to the current query reader. HRESULT IWICMetadataQueryReader::GetLocation([In] unsigned int cchMaxLength,[In] void* wzNamespace,[Out] unsigned int* pcchActualLength) Retrieves the metadata block or item identified by a metadata query expression. The query expression to the requested metadata block or item. When this method returns, contains the metadata block or item requested. If this method succeeds, it returns . Otherwise, it returns an error code. GetMetadataByName uses metadata query expressions to access embedded metadata. For more information on the metadata query language, see the Metadata Query Language Overview.If multiple blocks or items exist that are expressed by the same query expression, the first metadata block or item found will be returned. HRESULT IWICMetadataQueryReader::GetMetadataByName([In] const wchar_t* wzName,[InOut, Optional] PROPVARIANT* pvarValue) Gets an enumerator of all metadata items at the current relative location within the metadata hierachy. When this method returns, contais a reference to an enumerator that contains the metadata items. If a metadata item is a nested metadata block it will be passed back as a VT_UNKNOWN; otherwise, the "name" of the property will be passed back as a VT_LPWSTR. The enumerator does not enumerate content within nested metadata blocks. HRESULT IWICMetadataQueryReader::GetEnumerator([Out] void** ppIEnumString) Gets the metadata value by name. The name. Value of the metadata HRESULT IWICMetadataQueryReader::GetMetadataByName([In] const wchar_t* wzName,[InOut, Optional] PROPVARIANT* pvarValue) Dumps all metadatas. The text writer output. The level of tabulations. This is a simple helper method to dump metadata stored in this instance. Gets the metadata query readers container format. GetContainerFormat HRESULT IWICMetadataQueryReader::GetContainerFormat([Out] GUID* pguidContainerFormat) Gets the enumerator on the metadata names. Gets the location. HRESULT IWICMetadataQueryReader::GetLocation([In] unsigned int cchMaxLength,[InOut, Buffer, Optional] wchar_t* wzNamespace,[Out] unsigned int* pcchActualLength) Exposes methods for setting or removing metadata blocks and items to an encoder or its image frames using a metadata query expression. IWICMetadataQueryWriter Initializes a new instance of the class. The native pointer. Sets a metadata item to a specific location. The name of the metadata item. The metadata to set. If this method succeeds, it returns . Otherwise, it returns an error code. SetMetadataByName uses metadata query expressions to remove metadata. For more information on the metadata query language, see the Metadata Query Language Overview.If the value set is a nested metadata block then use variant type VT_UNKNOWN and pvarValue pointing to the of the new metadata block. The ordering of metadata items is at the discretion of the query writer since relative locations are not specified. HRESULT IWICMetadataQueryWriter::SetMetadataByName([In] const wchar_t* wzName,[In] const void* pvarValue) Removes a metadata item from a specific location using a metadata query expression. The name of the metadata item to remove. If this method succeeds, it returns . Otherwise, it returns an error code. RemoveMetadataByName uses metadata query expressions to remove metadata. For more information on the metadata query language, see the Metadata Query Language Overview.If the metadata item is a metadata block, it is removed from the metadata hierarchy. HRESULT IWICMetadataQueryWriter::RemoveMetadataByName([In] const wchar_t* wzName) Initializes a new instance of the class. The factory. The GUID metadata format. Initializes a new instance of the class. The factory. The GUID metadata format. The GUID vendor ref. HRESULT IWICImagingFactory::CreateQueryWriter([In] const GUID& guidMetadataFormat,[In, Optional] const GUID* pguidVendor,[Out, Fast] IWICMetadataQueryWriter** ppIQueryWriter) Initializes a new instance of the class from a . The factory. The metadata query reader. Initializes a new instance of the class from a . The factory. The metadata query reader. The GUID vendor ref. Sets the value for a metadata name The name of the metadata. The value. Exposes methods for accessing and building a color table, primarily for indexed pixel formats. IWICPalette Initializes a new instance of the class. The native pointer. Initializes the palette to one of the pre-defined palettes specified by and optionally adds a transparent color. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICPalette::InitializePredefined([In] WICBitmapPaletteType ePaletteType,[In] BOOL fAddTransparentColor) Initializes a palette to the custom color entries provided. Pointer to the color array. The number of colors in pColors. If this method succeeds, it returns . Otherwise, it returns an error code. If a transparent color is required, it should be provided as part of the custom entries.The entry count is limited to 256. HRESULT IWICPalette::InitializeCustom([In, Buffer] unsigned int* pColors,[In] unsigned int cCount) Initializes a palette using a computed optimized values based on the reference bitmap. Pointer to the source bitmap. The number of colors to initialize the palette with. A value to indicate whether to add a transparent color. If this method succeeds, it returns . Otherwise, it returns an error code. The resulting palette contains the specified number of colors which best represent the colors present in the bitmap. The algorithm operates on the opaque RGB color value of each pixel in the reference bitmap and hence ignores any alpha values. If a transparent color is required, set the fAddTransparentColor parameter to TRUE and one fewer optimized color will be computed, reducing the colorCount, and a fully transparent color entry will be added. HRESULT IWICPalette::InitializeFromBitmap([In, Optional] IWICBitmapSource* pISurface,[In] unsigned int cCount,[In] BOOL fAddTransparentColor) Initialize the palette based on a given palette. Pointer to the source palette. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICPalette::InitializeFromPalette([In, Optional] IWICPalette* pIPalette) Retrieves the that describes the palette. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. WICBitmapPaletteCustom is used for palettes initialized from both InitializeCustom and InitializeFromBitmap. There is no distinction is made between optimized and custom palettes. HRESULT IWICPalette::GetType([Out] WICBitmapPaletteType* pePaletteType) Retrieves the number of colors in the color table. Pointer that receives the number of colors in the color table. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICPalette::GetColorCount([Out] unsigned int* pcCount) Fills out the supplied color array with the colors from the internal color table. The color array should be sized according to the return results from GetColorCount. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICPalette::GetColors([In] unsigned int cCount,[Out, Buffer] unsigned int* pColors,[Out] unsigned int* pcActualColors) Retrieves a value that describes whether the palette is black and white. Pointer that receives TRUE if the palette is black and white; otherwise, . If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICPalette::IsBlackWhite([Out] BOOL* pfIsBlackWhite) Retrieves a value that describes whether a palette is grayscale. Pointer that receives TRUE if the palette is grayscale; otherwise . If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICPalette::IsGrayscale([Out] BOOL* pfIsGrayscale) Retrieves a value that describes whether the palette contains an alpha transparent color. Pointer that receives TRUE if the palette contains a transparent color; otherwise, . If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICPalette::HasAlpha([Out] BOOL* pfHasAlpha) Initializes a new instance of the class. The factory. HRESULT IWICImagingFactory::CreatePalette([Out, Fast] IWICPalette** ppIPalette) Initializes with the specified colors. The colors. HRESULT IWICPalette::InitializeCustom([In, Buffer] unsigned int* pColors,[In] unsigned int cCount) Retrieves the that describes the palette. WICBitmapPaletteCustom is used for palettes initialized from both InitializeCustom and InitializeFromBitmap. There is no distinction is made between optimized and custom palettes. GetType HRESULT IWICPalette::GetType([Out] WICBitmapPaletteType* pePaletteType) Retrieves the number of colors in the color table. GetColorCount HRESULT IWICPalette::GetColorCount([Out] unsigned int* pcCount) Retrieves a value that describes whether the palette is black and white. IsBlackWhite HRESULT IWICPalette::IsBlackWhite([Out] BOOL* pfIsBlackWhite) Retrieves a value that describes whether a palette is grayscale. IsGrayscale HRESULT IWICPalette::IsGrayscale([Out] BOOL* pfIsGrayscale) Gets the colors. HRESULT IWICPalette::GetColors([In] unsigned int cCount,[Out, Buffer] unsigned int* pColors,[Out] unsigned int* pcActualColors) Exposes methods that provide information about a pixel format. IWICPixelFormatInfo Initializes a new instance of the class. The native pointer. Gets the pixel format . Pointer that receives the pixel format . If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICPixelFormatInfo::GetFormatGUID([Out] GUID* pFormat) Gets the pixel format's . No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICPixelFormatInfo::GetColorContext([Out] IWICColorContext** ppIColorContext) Gets the bits per pixel (BPP) of the pixel format. Pointer that receives the BPP of the pixel format. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICPixelFormatInfo::GetBitsPerPixel([Out] unsigned int* puiBitsPerPixel) Gets the number of channels the pixel format contains. Pointer that receives the channel count. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICPixelFormatInfo::GetChannelCount([Out] unsigned int* puiChannelCount) Gets the pixel format's channel mask. The index to the channel mask to retrieve. The size of the pbMaskBuffer buffer. Pointer to the mask buffer. The actual buffer size needed to obtain the channel mask. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICPixelFormatInfo::GetChannelMask([In] unsigned int uiChannelIndex,[In] unsigned int cbMaskBuffer,[In] void* pbMaskBuffer,[Out] unsigned int* pcbActual) Gets the channel mask. Index of the channel. HRESULT IWICPixelFormatInfo::GetChannelMask([In] unsigned int uiChannelIndex,[In] unsigned int cbMaskBuffer,[In] void* pbMaskBuffer,[Out] unsigned int* pcbActual) Gets the pixel format . GetFormatGUID HRESULT IWICPixelFormatInfo::GetFormatGUID([Out] GUID* pFormat) Gets the pixel format's . GetColorContext HRESULT IWICPixelFormatInfo::GetColorContext([Out] IWICColorContext** ppIColorContext) Gets the bits per pixel (BPP) of the pixel format. GetBitsPerPixel HRESULT IWICPixelFormatInfo::GetBitsPerPixel([Out] unsigned int* puiBitsPerPixel) Gets the number of channels the pixel format contains. GetChannelCount HRESULT IWICPixelFormatInfo::GetChannelCount([Out] unsigned int* puiChannelCount) Extends by providing additional information about a pixel format. IWICPixelFormatInfo2 Initializes a new instance of the class. The native pointer. Returns whether the format supports transparent pixels. Returns TRUE if the pixel format supports transparency; otherwise, false. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICPixelFormatInfo2::SupportsTransparency([Out] BOOL* pfSupportsTransparency) HRESULT GetNumericRepresentation( [out]?? *pNumericRepresentation ); Returns the of the pixel format. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICPixelFormatInfo2::GetNumericRepresentation([Out] WICPixelFormatNumericRepresentation* pNumericRepresentation) Returns whether the format supports transparent pixels. SupportsTransparency HRESULT IWICPixelFormatInfo2::SupportsTransparency([Out] BOOL* pfSupportsTransparency) HRESULT GetNumericRepresentation( [out]?? *pNumericRepresentation ); GetNumericRepresentation HRESULT IWICPixelFormatInfo2::GetNumericRepresentation([Out] WICPixelFormatNumericRepresentation* pNumericRepresentation) IWICProgressCallback interface is documented only for compliance; its use is not recommended and may be altered or unavailable in the future. Instead, and use RegisterProgressNotification. IWICProgressCallback Initializes a new instance of the class. The native pointer. Notify method is documented only for compliance; its use is not recommended and may be altered or unavailable in the future. Instead, and use RegisterProgressNotification. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICProgressCallback::Notify([In] unsigned int uFrameNum,[In] WICProgressOperation operation,[In] double dblProgress) Exposes methods for obtaining information about and controlling progressive decoding. IWICProgressiveLevelControl Initializes a new instance of the class. The native pointer. Gets the number of levels of progressive decoding supported by the CODEC. Indicates the number of levels supported by the CODEC. If this method succeeds, it returns . Otherwise, it returns an error code. Users should not use this function to iterate through the progressive levels of a progressive JPEG image. JPEG progressive levels are determined by the image and do not have a fixed level count. Using this method will force the application to wait for all progressive levels to be downloaded before it can return. Instead, applications should use the following code to iterate through the progressive levels of a progressive JPEG image. HRESULT IWICProgressiveLevelControl::GetLevelCount([Out] unsigned int* pcLevels) Gets the last level set by the SetCurrentLevel call. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICProgressiveLevelControl::GetCurrentLevel([Out] unsigned int* pnLevel) Specifies the level to retrieve on the next call to CopyPixels. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. A call does not have to request every level supported. If a caller requests level 1, without having previously requested level 0, the bits returned by the next call to CopyPixels will include both levels. HRESULT IWICProgressiveLevelControl::SetCurrentLevel([In] unsigned int nLevel) Gets the number of levels of progressive decoding supported by the CODEC. Users should not use this function to iterate through the progressive levels of a progressive JPEG image. JPEG progressive levels are determined by the image and do not have a fixed level count. Using this method will force the application to wait for all progressive levels to be downloaded before it can return. Instead, applications should use the following code to iterate through the progressive levels of a progressive JPEG image. GetLevelCount HRESULT IWICProgressiveLevelControl::GetLevelCount([Out] unsigned int* pcLevels) Gets the last level set by the SetCurrentLevel call. GetCurrentLevel HRESULT IWICProgressiveLevelControl::GetCurrentLevel([Out] unsigned int* pnLevel) Represents a Windows Imaging Component (WIC) stream for referencing imaging and metadata content. IWICStream Initializes a new instance of the class. The native pointer. Initializes a stream from another stream. Access rights are inherited from the underlying stream. The initialize stream. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IWICStream::InitializeFromIStream([In, Optional] IStream* pIStream) Initializes a stream to treat a block of memory as a stream. The stream cannot grow beyond the buffer size. Pointer to the buffer used to initialize the stream. The size of buffer. If this method succeeds, it returns . Otherwise, it returns an error code. This method should be avoided whenever possible. The caller is responsible for ensuring the memory block is valid for the lifetime of the stream when using InitializeFromMemory. A workaround for this behavior is to create an and use InitializeFromIStream to create the .If you require a growable memory stream, use CreateStreamOnHGlobal. HRESULT IWICStream::InitializeFromMemory([In] void* pbBuffer,[In] unsigned int cbBufferSize) Initializes the stream as a substream of another stream. Pointer to the input stream. The stream offset used to create the new stream. The maximum size of the stream. If this method succeeds, it returns . Otherwise, it returns an error code. The stream functions with its own stream position, independent of the underlying stream but restricted to a region. All seek positions are relative to the sub region. It is allowed, though not recommended, to have multiple writable sub streams overlapping the same range. HRESULT IWICStream::InitializeFromIStreamRegion([In, Optional] IStream* pIStream,[In] ULARGE_INTEGER ulOffset,[In] ULARGE_INTEGER ulMaxSize) Initializes a new instance of the class from a file. The factory. Name of the file. The file access. HRESULT IWICImagingFactory::CreateStream([Out, Fast] IWICStream** ppIWICStream) HRESULT IWICStream::InitializeFromFilename([In] const wchar_t* wzFileName,[In] unsigned int dwDesiredAccess) Initializes a new instance of the class from a . The factory. The stream. HRESULT IWICImagingFactory::CreateStream([Out, Fast] IWICStream** ppIWICStream) HRESULT IWICStream::InitializeFromFilename([In] const wchar_t* wzFileName,[In] unsigned int dwDesiredAccess) Initializes a new instance of the class from an unmanaged memory through a . The factory. The unmanaged memory stream. HRESULT IWICImagingFactory::CreateStream([Out, Fast] IWICStream** ppIWICStream) HRESULT IWICStream::InitializeFromFilename([In] const wchar_t* wzFileName,[In] unsigned int dwDesiredAccess) Contains members that identify a pattern within an image file which can be used to identify a particular format. WICBitmapPattern The offset the pattern is located in the file. ULARGE_INTEGER Position The pattern length. unsigned int Length The actual pattern. unsigned char* Pattern The pattern mask. unsigned char* Mask The end of the stream. BOOL EndOfStream No documentation. WICImageParameters No documentation. D2D1_PIXEL_FORMAT PixelFormat No documentation. float DpiX No documentation. float DpiY No documentation. float Top No documentation. float Left No documentation. unsigned int PixelWidth No documentation. unsigned int PixelHeight Defines raw codec capabilites. WICRawCapabilitiesInfo Size of the structure. unsigned int cbSize The codec's major version. unsigned int CodecMajorVersion The codec's minor version. unsigned int CodecMinorVersion The of exposure compensation support. WICRawCapabilities ExposureCompensationSupport The of contrast support. WICRawCapabilities ContrastSupport The of RGB white point support. WICRawCapabilities RGBWhitePointSupport The of support. WICRawCapabilities NamedWhitePointSupport The mask. unsigned int NamedWhitePointSupportMask The of kelvin white point support. WICRawCapabilities KelvinWhitePointSupport The of gamma support. WICRawCapabilities GammaSupport The of tint support. WICRawCapabilities TintSupport The of saturation support. WICRawCapabilities SaturationSupport The of sharpness support. WICRawCapabilities SharpnessSupport The of noise reduction support. WICRawCapabilities NoiseReductionSupport The of destination color profile support. WICRawCapabilities DestinationColorProfileSupport The of tone curve support. WICRawCapabilities ToneCurveSupport The of rotation support. WICRawRotationCapabilities RotationSupport The of support. WICRawCapabilities RenderModeSupport Represents a raw image tone curve. WICRawToneCurve The number of tone curve points. unsigned int cPoints The array of tone curve points. WICRawToneCurvePoint aPoints[1] Represents a raw image tone curve point. WICRawToneCurvePoint The tone curve input. double Input The tone curve output. double Output No documentation. ID2D1PrintControl Initializes a new instance of the class. The device. The wic factory. The document target. HRESULT ID2D1Device::CreatePrintControl([In] IWICImagingFactory* wicFactory,[In] IPrintDocumentPackageTarget* documentTarget,[In, Optional] const D2D1_PRINT_CONTROL_PROPERTIES* printControlProperties,[Out] ID2D1PrintControl** printControl) HRESULT ID2D1Device::CreatePrintControl([In] IWICImagingFactory* wicFactory,[In] IPrintDocumentPackageTarget* documentTarget,[In, Optional] const D2D1_PRINT_CONTROL_PROPERTIES* printControlProperties,[Out] ID2D1PrintControl** printControl) Initializes a new instance of the class. The native pointer. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1PrintControl::AddPage([In] ID2D1CommandList* commandList,[In] D2D_SIZE_F pageSize,[In, Optional] IStream* pagePrintTicketStream,[Out, Optional] unsigned longlong* tag1,[Out, Optional] unsigned longlong* tag2) No documentation. No documentation. HRESULT ID2D1PrintControl::Close() A Wic RenderTarget. Initializes a new instance of the class from a . The factory. The wic bitmap. The render target properties. Encapsulates a 32-bit device independent bitmap and device context, which can be used for rendering glyphs. IDWriteBitmapRenderTarget Draws a run of glyphs to a bitmap target at the specified position. You can use the IDWriteBitmapRenderTarget::DrawGlyphRun to render to a bitmap from a custom text renderer that you implement. The custom text renderer should call this method from within the callback method as shown in the following code. STDMETHODIMP GdiTextRenderer::DrawGlyphRun( __maybenull void* clientDrawingContext, FLOAT baselineOriginX, FLOAT baselineOriginY, DWRITE_MEASURING_MODE measuringMode, __in DWRITE_GLYPH_RUN const* glyphRun, __in DWRITE_GLYPH_RUN_DESCRIPTION const* glyphRunDescription, IUnknown* clientDrawingEffect ) { HRESULT hr = S_OK; // Pass on the drawing call to the render target to do the real work. RECT dirtyRect = {0}; hr = pRenderTarget_->DrawGlyphRun( baselineOriginX, baselineOriginY, measuringMode, glyphRun, pRenderingParams_, RGB(0,200,255), &dirtyRect ); return hr; } The baselineOriginX, baslineOriginY, measuringMethod, and glyphRun parameters are provided (as arguments) when the callback method is invoked. The renderingParams, textColor and blackBoxRect are not. Default rendering params can be retrieved by using the method. The horizontal position of the baseline origin, in DIPs, relative to the upper-left corner of the DIB. The vertical position of the baseline origin, in DIPs, relative to the upper-left corner of the DIB. The measuring method for glyphs in the run, used with the other properties to determine the rendering mode. The structure containing the properties of the glyph run. The object that controls rendering behavior. The foreground color of the text. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT IDWriteBitmapRenderTarget::DrawGlyphRun([None] float baselineOriginX,[None] float baselineOriginY,[None] DWRITE_MEASURING_MODE measuringMode,[In] const DWRITE_GLYPH_RUN* glyphRun,[None] IDWriteRenderingParams* renderingParams,[None] COLORREF textColor,[Out, Optional] RECT* blackBoxRect) Initializes a new instance of the class. The native pointer. Draws a run of glyphs to a bitmap target at the specified position. The horizontal position of the baseline origin, in DIPs, relative to the upper-left corner of the DIB. The vertical position of the baseline origin, in DIPs, relative to the upper-left corner of the DIB. The measuring method for glyphs in the run, used with the other properties to determine the rendering mode. The structure containing the properties of the glyph run. The object that controls rendering behavior. The foreground color of the text. The optional rectangle that receives the bounding box (in pixels not DIPs) of all the pixels affected by drawing the glyph run. The black box rectangle may extend beyond the dimensions of the bitmap. If this method succeeds, it returns . Otherwise, it returns an error code. You can use the to render to a bitmap from a custom text renderer that you implement. The custom text renderer should call this method from within the callback method as shown in the following code. STDMETHODIMP GdiTextRenderer::DrawGlyphRun( __maybenull void* clientDrawingContext, FLOAT baselineOriginX, FLOAT baselineOriginY, measuringMode, __in const* glyphRun, __in const* glyphRunDescription, * clientDrawingEffect ) { hr = ; // Pass on the drawing call to the render target to do the real work. dirtyRect = {0}; hr = pRenderTarget_->DrawGlyphRun( baselineOriginX, baselineOriginY, measuringMode, glyphRun, pRenderingParams_, RGB(0,200,255), &dirtyRect ); return hr; } The baselineOriginX, baslineOriginY, measuringMethod, and glyphRun parameters are provided (as arguments) when the callback method is invoked. The renderingParams, textColor and blackBoxRect are not.Default rendering params can be retrieved by using the method. HRESULT IDWriteBitmapRenderTarget::DrawGlyphRun([In] float baselineOriginX,[In] float baselineOriginY,[In] DWRITE_MEASURING_MODE measuringMode,[In] const DWRITE_GLYPH_RUN* glyphRun,[In] IDWriteRenderingParams* renderingParams,[In] COLORREF textColor,[Out, Optional] RECT* blackBoxRect) Gets a handle to the memory device context. Returns a device context handle to the memory device context. An application can use the device context to draw using GDI functions. An application can obtain the bitmap handle () by calling GetCurrentObject. An application that wants information about the underlying bitmap, including a reference to the pixel data, can call GetObject to fill in a DIBSECTION structure. The bitmap is always a 32-bit top-down DIB.Note that this method takes no parameters and returns an variable, not an . memoryHdc = g_pBitmapRenderTarget->GetMemoryDC(); The returned here is still owned by the bitmap render targer object and should not be released or deleted by the client. HDC IDWriteBitmapRenderTarget::GetMemoryDC() Gets the number of bitmap pixels per DIP. The number of bitmap pixels per DIP. A DIP (device-independent pixel) is 1/96 inch. Therefore, this value is the number if pixels per inch divided by 96. float IDWriteBitmapRenderTarget::GetPixelsPerDip() Sets the number of bitmap pixels per DIP (device-independent pixel). A DIP is 1/96 inch, so this value is the number if pixels per inch divided by 96. A value that specifies the number of pixels per DIP. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteBitmapRenderTarget::SetPixelsPerDip([In] float pixelsPerDip) Gets the transform that maps abstract coordinates to DIPs. By default this is the identity transform. Note that this is unrelated to the world transform of the underlying device context. When this method returns, contains a transform matrix. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteBitmapRenderTarget::GetCurrentTransform([Out] DWRITE_MATRIX* transform) Sets the transform that maps abstract coordinate to DIPs (device-independent pixel). This does not affect the world transform of the underlying device context. Specifies the new transform. This parameter can be null, in which case the identity transform is implied. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteBitmapRenderTarget::SetCurrentTransform([In, Optional] const DWRITE_MATRIX* transform) Gets the dimensions of the target bitmap. Returns the width and height of the bitmap in pixels. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteBitmapRenderTarget::GetSize([Out] SIZE* size) Resizes the bitmap. The new bitmap width, in pixels. The new bitmap height, in pixels. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteBitmapRenderTarget::Resize([In] unsigned int width,[In] unsigned int height) Gets a handle to the memory device context. An application can use the device context to draw using GDI functions. An application can obtain the bitmap handle () by calling GetCurrentObject. An application that wants information about the underlying bitmap, including a reference to the pixel data, can call GetObject to fill in a DIBSECTION structure. The bitmap is always a 32-bit top-down DIB.Note that this method takes no parameters and returns an variable, not an . memoryHdc = g_pBitmapRenderTarget->GetMemoryDC(); The returned here is still owned by the bitmap render targer object and should not be released or deleted by the client. GetMemoryDC HDC IDWriteBitmapRenderTarget::GetMemoryDC() Gets the number of bitmap pixels per DIP. A DIP (device-independent pixel) is 1/96 inch. Therefore, this value is the number if pixels per inch divided by 96. GetPixelsPerDip float IDWriteBitmapRenderTarget::GetPixelsPerDip() Gets the transform that maps abstract coordinates to DIPs. By default this is the identity transform. Note that this is unrelated to the world transform of the underlying device context. GetCurrentTransform HRESULT IDWriteBitmapRenderTarget::GetCurrentTransform([Out] DWRITE_MATRIX* transform) Gets the dimensions of the target bitmap. GetSize HRESULT IDWriteBitmapRenderTarget::GetSize([Out] SIZE* size) An inline object for trimming, using an ellipsis as the omission sign. Wraps an application-defined inline graphic, allowing DWrite to query metrics as if the graphic were a glyph inline with the text. IDWriteInlineObject Wraps an application-defined inline graphic, allowing DWrite to query metrics as if the graphic were a glyph inline with the text. IDWriteInlineObject The application implemented rendering callback () can use this to draw the inline object without needing to cast or query the object type. The text layout does not call this method directly. The drawing context passed to . This parameter may be NULL. The same renderer passed to as the object's containing parent. This is useful if the inline object is recursive such as a nested layout. The x-coordinate at the upper-left corner of the inline object. The y-coordinate at the upper-left corner of the inline object. A Boolean flag that indicates whether the object's baseline runs alongside the baseline axis of the line. A Boolean flag that indicates whether the object is in a right-to-left context and should be drawn flipped. The drawing effect set in . Usually this effect is a foreground brush that is used in glyph drawing. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT IDWriteInlineObject::Draw([None] void* clientDrawingContext,[None] IDWriteTextRenderer* renderer,[None] float originX,[None] float originY,[None] BOOL isSideways,[None] BOOL isRightToLeft,[None] IUnknown* clientDrawingEffect) Layout uses this to determine the line-breaking behavior of the inline object among the text. When this method returns, contains a value which indicates the line-breaking condition between the object and the content immediately preceding it. When this method returns, contains a value which indicates the line-breaking condition between the object and the content immediately following it. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT IDWriteInlineObject::GetBreakConditions([Out] DWRITE_BREAK_CONDITION* breakConditionBefore,[Out] DWRITE_BREAK_CONDITION* breakConditionAfter) calls this callback function to get the measurement of the inline object. a structure describing the geometric measurement of anapplication-defined inline object. These metrics are in relation to the baseline of the adjacent text. HRESULT IDWriteInlineObject::GetMetrics([Out] DWRITE_INLINE_OBJECT_METRICS* metrics) TextLayout calls this callback function to get the visible extents (in DIPs) of the inline object. In the case of a simple bitmap, with no padding and no overhang, all the overhangs will simply be zeroes. Overshoot of visible extents (in DIPs) outside the object. HRESULT IDWriteInlineObject::GetOverhangMetrics([Out] DWRITE_OVERHANG_METRICS* overhangs) The application implemented rendering callback () can use this to draw the inline object without needing to cast or query the object type. The text layout does not call this method directly. The drawing context passed to . This parameter may be NULL. The same renderer passed to as the object's containing parent. This is useful if the inline object is recursive such as a nested layout. The x-coordinate at the upper-left corner of the inline object. The y-coordinate at the upper-left corner of the inline object. A Boolean flag that indicates whether the object's baseline runs alongside the baseline axis of the line. A Boolean flag that indicates whether the object is in a right-to-left context and should be drawn flipped. The drawing effect set in . Usually this effect is a foreground brush that is used in glyph drawing. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT IDWriteInlineObject::Draw([None] void* clientDrawingContext,[None] IDWriteTextRenderer* renderer,[None] float originX,[None] float originY,[None] BOOL isSideways,[None] BOOL isRightToLeft,[None] IUnknown* clientDrawingEffect) Layout uses this to determine the line-breaking behavior of the inline object among the text. When this method returns, contains a value which indicates the line-breaking condition between the object and the content immediately preceding it. When this method returns, contains a value which indicates the line-breaking condition between the object and the content immediately following it. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT IDWriteInlineObject::GetBreakConditions([Out] DWRITE_BREAK_CONDITION* breakConditionBefore,[Out] DWRITE_BREAK_CONDITION* breakConditionAfter) Initializes a new instance of the class. The native pointer. The application implemented rendering callback () can use this to draw the inline object without needing to cast or query the object type. The text layout does not call this method directly. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteInlineObject::Draw([In, Optional] void* clientDrawingContext,[In] IDWriteTextRenderer* renderer,[In] float originX,[In] float originY,[In] BOOL isSideways,[In] BOOL isRightToLeft,[In, Optional] void* clientDrawingEffect) calls this callback function to get the measurement of the inline object. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteInlineObject::GetMetrics([Out] DWRITE_INLINE_OBJECT_METRICS* metrics) TextLayout calls this callback function to get the visible extents (in DIPs) of the inline object. In the case of a simple bitmap, with no padding and no overhang, all the overhangs will simply be zeroes. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteInlineObject::GetOverhangMetrics([Out] DWRITE_OVERHANG_METRICS* overhangs) Layout uses this to determine the line-breaking behavior of the inline object among the text. When this method returns, contains a value which indicates the line-breaking condition between the object and the content immediately preceding it. When this method returns, contains a value which indicates the line-breaking condition between the object and the content immediately following it. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteInlineObject::GetBreakConditions([Out] DWRITE_BREAK_CONDITION* breakConditionBefore,[Out] DWRITE_BREAK_CONDITION* breakConditionAfter) calls this callback function to get the measurement of the inline object. a structure describing the geometric measurement of anapplication-defined inline object. These metrics are in relation to the baseline of the adjacent text. HRESULT IDWriteInlineObject::GetMetrics([Out] DWRITE_INLINE_OBJECT_METRICS* metrics) TextLayout calls this callback function to get the visible extents (in DIPs) of the inline object. In the case of a simple bitmap, with no padding and no overhang, all the overhangs will simply be zeroes. Overshoot of visible extents (in DIPs) outside the object. HRESULT IDWriteInlineObject::GetOverhangMetrics([Out] DWRITE_OVERHANG_METRICS* overhangs) Initializes a new instance of the class. The native PTR. Creates an inline object for trimming, using an ellipsis as the omission sign. The ellipsis will be created using the current settings of the format, including base font, style, and any effects. Alternate omission signs can be created by the application by implementing . a A text format object, created with {{CreateTextFormat}}, used for text layout. HRESULT IDWriteFactory::CreateEllipsisTrimmingSign([None] IDWriteTextFormat* textFormat,[Out] IDWriteInlineObject** trimmingSign) Used to create all subsequent DirectWrite objects. This interface is the root factory interface for all DirectWrite objects. IDWriteFactory Default Constructor for a . Default Constructor for a . Registers a custom font collection loader with the factory object. This function registers a font collection loader with DirectWrite. The font collection loader interface, which should be implemented by a singleton object, handles enumerating font files in a font collection given a particular type of key. A given instance can only be registered once. Succeeding attempts will return an error, indicating that it has already been registered. Note that font file loader implementations must not register themselves with DirectWrite inside their constructors, and must not unregister themselves inside their destructors, because registration and unregistraton operations increment and decrement the object reference count respectively. Instead, registration and unregistration with DirectWrite of font file loaders should be performed outside of the font file loader implementation. Reference to a object to be registered. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT IDWriteFactory::RegisterFontCollectionLoader([None] IDWriteFontCollectionLoader* fontCollectionLoader) Unregisters a custom font collection loader that was previously registered using {{RegisterFontCollectionLoader}}. Pointer to a object to be unregistered. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT IDWriteFactory::UnregisterFontCollectionLoader([None] IDWriteFontCollectionLoader* fontCollectionLoader) Registers a font file loader with DirectWrite. This function registers a font file loader with DirectWrite. The font file loader interface, which should be implemented by a singleton object, handles loading font file resources of a particular type from a key. A given instance can only be registered once. Succeeding attempts will return an error, indicating that it has already been registered. Note that font file loader implementations must not register themselves with DirectWrite inside their constructors, and must not unregister themselves inside their destructors, because registration and unregistraton operations increment and decrement the object reference count respectively. Instead, registration and unregistration with DirectWrite of font file loaders should be performed outside of the font file loader implementation. Pointer to a object for a particular file resource type. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT IDWriteFactory::RegisterFontFileLoader([None] IDWriteFontFileLoader* fontFileLoader) Unregisters a font file loader that was previously registered with the DirectWrite font system using {{RegisterFontFileLoader}}. This function unregisters font file loader callbacks with the DirectWrite font system. You should implement the font file loader interface by a singleton object. Note that font file loader implementations must not register themselves with DirectWrite inside their constructors and must not unregister themselves in their destructors, because registration and unregistraton operations increment and decrement the object reference count respectively. Instead, registration and unregistration of font file loaders with DirectWrite should be performed outside of the font file loader implementation. Pointer to the file loader that was previously registered with the DirectWrite font system using {{RegisterFontFileLoader}}. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT IDWriteFactory::UnregisterFontFileLoader([None] IDWriteFontFileLoader* fontFileLoader) Initializes a new instance of the class. The native pointer. Gets an object which represents the set of installed fonts. If this parameter is nonzero, the function performs an immediate check for changes to the set of installed fonts. If this parameter is , the function will still detect changes if the font cache service is running, but there may be some latency. For example, an application might specify TRUE if it has itself just installed a font and wants to be sure the font collection contains that font. When this method returns, contains the address of a reference to the system font collection object, or null in case of failure. HRESULT IDWriteFactory::GetSystemFontCollection([Out] IDWriteFontCollection** fontCollection,[In] BOOL checkForUpdates) Creates a font collection using a custom font collection loader. An application-defined font collection loader, which must have been previously registered using RegisterFontCollectionLoader. The key used by the loader to identify a collection of font files. The buffer allocated for this key should at least be the size of collectionKeySize. The size, in bytes, of the collection key. Contains an address of a reference to the system font collection object if the method succeeds, or null in case of failure. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFactory::CreateCustomFontCollection([In] IDWriteFontCollectionLoader* collectionLoader,[In, Buffer] const void* collectionKey,[In] unsigned int collectionKeySize,[Out, Fast] IDWriteFontCollection** fontCollection) Registers a custom font collection loader with the factory object. Pointer to a object to be registered. If this method succeeds, it returns . Otherwise, it returns an error code. This function registers a font collection loader with DirectWrite. The font collection loader interface, which should be implemented by a singleton object, handles enumerating font files in a font collection given a particular type of key. A given instance can only be registered once. Succeeding attempts will return an error, indicating that it has already been registered. Note that font file loader implementations must not register themselves with DirectWrite inside their constructors, and must not unregister themselves inside their destructors, because registration and unregistraton operations increment and decrement the object reference count respectively. Instead, registration and unregistration with DirectWrite of font file loaders should be performed outside of the font file loader implementation. HRESULT IDWriteFactory::RegisterFontCollectionLoader([In] IDWriteFontCollectionLoader* fontCollectionLoader) Unregisters a custom font collection loader that was previously registered using RegisterFontCollectionLoader. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFactory::UnregisterFontCollectionLoader([In] IDWriteFontCollectionLoader* fontCollectionLoader) Creates a font file reference object from a local font file. An array of characters that contains the absolute file path for the font file. Subsequent operations on the constructed object may fail if the user provided filePath doesn't correspond to a valid file on the disk. The last modified time of the input file path. If the parameter is omitted, the function will access the font file to obtain its last write time. You should specify this value to avoid extra disk access. Subsequent operations on the constructed object may fail if the user provided lastWriteTime doesn't match the file on the disk. When this method returns, contains an address of a reference to the newly created font file reference object, or null in case of failure. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFactory::CreateFontFileReference([In] const wchar_t* filePath,[In, Optional] const FILETIME* lastWriteTime,[Out, Fast] IDWriteFontFile** fontFile) Creates a reference to an application-specific font file resource. A font file reference key that uniquely identifies the font file resource during the lifetime of fontFileLoader. The size of the font file reference key in bytes. The font file loader that will be used by the font system to load data from the file identified by fontFileReferenceKey. Contains an address of a reference to the newly created font file object when this method succeeds, or null in case of failure. If this method succeeds, it returns . Otherwise, it returns an error code. This function is provided for cases when an application or a document needs to use a private font without having to install it on the system. fontFileReferenceKey has to be unique only in the scope of the fontFileLoader used in this call. HRESULT IDWriteFactory::CreateCustomFontFileReference([In, Buffer] const void* fontFileReferenceKey,[In] unsigned int fontFileReferenceKeySize,[In] IDWriteFontFileLoader* fontFileLoader,[Out, Fast] IDWriteFontFile** fontFile) Creates an object that represents a font face. A value that indicates the type of file format of the font face. The number of font files, in element count, required to represent the font face. A font file object representing the font face. Because maintains its own references to the input font file objects, you may release them after this call. The zero-based index of a font face, in cases when the font files contain a collection of font faces. If the font files contain a single face, this value should be zero. A value that indicates which, if any, font face simulation flags for algorithmic means of making text bold or italic are applied to the current font face. When this method returns, contains an address of a reference to the newly created font face object, or null in case of failure. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFactory::CreateFontFace([In] DWRITE_FONT_FACE_TYPE fontFaceType,[In] unsigned int numberOfFiles,[In, Buffer] const IDWriteFontFile** fontFiles,[In] unsigned int faceIndex,[In] DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags,[Out, Fast] IDWriteFontFace** fontFace) Creates an object that represents a font face. A value that indicates the type of file format of the font face. The number of font files, in element count, required to represent the font face. A font file object representing the font face. Because maintains its own references to the input font file objects, you may release them after this call. The zero-based index of a font face, in cases when the font files contain a collection of font faces. If the font files contain a single face, this value should be zero. A value that indicates which, if any, font face simulation flags for algorithmic means of making text bold or italic are applied to the current font face. When this method returns, contains an address of a reference to the newly created font face object, or null in case of failure. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFactory::CreateFontFace([In] DWRITE_FONT_FACE_TYPE fontFaceType,[In] unsigned int numberOfFiles,[In, Buffer] const IDWriteFontFile** fontFiles,[In] unsigned int faceIndex,[In] DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags,[Out, Fast] IDWriteFontFace** fontFace) Creates a rendering parameters object with default settings for the primary monitor. Different monitors may have different rendering parameters, for more information see the How to Add Support for Multiple Monitors topic. No documentation. Standard error code. HRESULT IDWriteFactory::CreateRenderingParams([Out, Fast] IDWriteRenderingParams** renderingParams) Creates a rendering parameters object with default settings for the specified monitor. In most cases, this is the preferred way to create a rendering parameters object. A handle for the specified monitor. When this method returns, contains an address of a reference to the rendering parameters object created by this method. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFactory::CreateMonitorRenderingParams([In] HMONITOR monitor,[Out, Fast] IDWriteRenderingParams** renderingParams) Creates a rendering parameters object with the specified properties. The gamma level to be set for the new rendering parameters object. The enhanced contrast level to be set for the new rendering parameters object. The ClearType level to be set for the new rendering parameters object. Represents the internal structure of a device pixel (that is, the physical arrangement of red, green, and blue color components) that is assumed for purposes of rendering text. A value that represents the method (for example, ClearType natural quality) for rendering glyphs. When this method returns, contains an address of a reference to the newly created rendering parameters object. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFactory::CreateCustomRenderingParams([In] float gamma,[In] float enhancedContrast,[In] float clearTypeLevel,[In] DWRITE_PIXEL_GEOMETRY pixelGeometry,[In] DWRITE_RENDERING_MODE renderingMode,[Out, Fast] IDWriteRenderingParams** renderingParams) Registers a font file loader with DirectWrite. Pointer to a object for a particular file resource type. If this method succeeds, it returns . Otherwise, it returns an error code. This function registers a font file loader with DirectWrite. The font file loader interface, which should be implemented by a singleton object, handles loading font file resources of a particular type from a key. A given instance can only be registered once. Succeeding attempts will return an error, indicating that it has already been registered. Note that font file loader implementations must not register themselves with DirectWrite inside their constructors, and must not unregister themselves inside their destructors, because registration and unregistraton operations increment and decrement the object reference count respectively. Instead, registration and unregistration with DirectWrite of font file loaders should be performed outside of the font file loader implementation. HRESULT IDWriteFactory::RegisterFontFileLoader([In] IDWriteFontFileLoader* fontFileLoader) Unregisters a font file loader that was previously registered with the DirectWrite font system using RegisterFontFileLoader. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. This function unregisters font file loader callbacks with the DirectWrite font system. You should implement the font file loader interface by a singleton object. Note that font file loader implementations must not register themselves with DirectWrite inside their constructors and must not unregister themselves in their destructors, because registration and unregistraton operations increment and decrement the object reference count respectively. Instead, registration and unregistration of font file loaders with DirectWrite should be performed outside of the font file loader implementation. HRESULT IDWriteFactory::UnregisterFontFileLoader([In] IDWriteFontFileLoader* fontFileLoader) Creates a text format object used for text layout. An array of characters that contains the name of the font family A reference to a font collection object. When this is null, indicates the system font collection. A value that indicates the font weight for the text object created by this method. A value that indicates the font style for the text object created by this method. A value that indicates the font stretch for the text object created by this method. The logical size of the font in DIP ("device-independent pixel") units. A DIP equals 1/96 inch. An array of characters that contains the locale name. When this method returns, contains an address of a reference to a newly created text format object, or null in case of failure. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFactory::CreateTextFormat([In] const wchar_t* fontFamilyName,[In, Optional] IDWriteFontCollection* fontCollection,[In] DWRITE_FONT_WEIGHT fontWeight,[In] DWRITE_FONT_STYLE fontStyle,[In] DWRITE_FONT_STRETCH fontStretch,[In] float fontSize,[In] const wchar_t* localeName,[Out, Fast] IDWriteTextFormat** textFormat) Creates a typography object for use in a text layout. When this method returns, contains the address of a reference to a newly created typography object, or null in case of failure. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFactory::CreateTypography([Out, Fast] IDWriteTypography** typography) Creates an object that is used for interoperability with GDI. When this method returns, contains an address of a reference to a GDI interop object if successful, or null in case of failure. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFactory::GetGdiInterop([Out] IDWriteGdiInterop** gdiInterop) Takes a string, text format, and associated constraints, and produces an object that represents the fully analyzed and formatted result. An array of characters that contains the string to create a new object from. This array must be of length stringLength and can contain embedded null characters. The number of characters in the string. A reference to an object that indicates the format to apply to the string. The width of the layout box. The height of the layout box. When this method returns, contains an address of a reference to the resultant text layout object. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFactory::CreateTextLayout([In, Buffer] const wchar_t* string,[In] unsigned int stringLength,[In] IDWriteTextFormat* textFormat,[In] float maxWidth,[In] float maxHeight,[Out, Fast] IDWriteTextLayout** textLayout) Takes a string, format, and associated constraints, and produces an object representing the result, formatted for a particular display resolution and measuring mode. An array of characters that contains the string to create a new object from. This array must be of length stringLength and can contain embedded null characters. The length of the string, in character count. The text formatting object to apply to the string. The width of the layout box. The height of the layout box. The number of physical pixels per DIP (device independent pixel). For example, if rendering onto a 96 DPI device pixelsPerDip is 1. If rendering onto a 120 DPI device pixelsPerDip is 1.25 (120/96). An optional transform applied to the glyphs and their positions. This transform is applied after the scaling specifies the font size and pixels per DIP. Instructs the text layout to use the same metrics as GDI bi-level text when set to . When set to TRUE, instructs the text layout to use the same metrics as text measured by GDI using a font created with CLEARTYPE_NATURAL_QUALITY. When this method returns, contains an address to the reference of the resultant text layout object. If this method succeeds, it returns . Otherwise, it returns an error code. The resulting text layout should only be used for the intended resolution, and for cases where text scalability is desired CreateTextLayout should be used instead. HRESULT IDWriteFactory::CreateGdiCompatibleTextLayout([In, Buffer] const wchar_t* string,[In] unsigned int stringLength,[In] IDWriteTextFormat* textFormat,[In] float layoutWidth,[In] float layoutHeight,[In] float pixelsPerDip,[In, Optional] const DWRITE_MATRIX* transform,[In] BOOL useGdiNatural,[Out, Fast] IDWriteTextLayout** textLayout) Creates an inline object for trimming, using an ellipsis as the omission sign. A text format object, created with CreateTextFormat, used for text layout. When this method returns, contains an address of a reference to the omission (that is, ellipsis trimming) sign created by this method. If this method succeeds, it returns . Otherwise, it returns an error code. The ellipsis will be created using the current settings of the format, including base font, style, and any effects. Alternate omission signs can be created by the application by implementing . HRESULT IDWriteFactory::CreateEllipsisTrimmingSign([In] IDWriteTextFormat* textFormat,[Out, Fast] IDWriteInlineObject** trimmingSign) Returns an interface for performing text analysis. When this method returns, contains an address of a reference to the newly created text analyzer object. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFactory::CreateTextAnalyzer([Out, Fast] IDWriteTextAnalyzer** textAnalyzer) Creates a number substitution object using a locale name, substitution method, and an indicator whether to ignore user overrides (use NLS defaults for the given culture instead). A value that specifies how to apply number substitution on digits and related punctuation. The name of the locale to be used in the numberSubstitution object. A Boolean flag that indicates whether to ignore user overrides. When this method returns, contains an address to a reference to the number substitution object created by this method. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFactory::CreateNumberSubstitution([In] DWRITE_NUMBER_SUBSTITUTION_METHOD substitutionMethod,[In] const wchar_t* localeName,[In] BOOL ignoreUserOverride,[Out, Fast] IDWriteNumberSubstitution** numberSubstitution) Creates a glyph run analysis object, which encapsulates information used to render a glyph run. A structure that contains the properties of the glyph run (font face, advances, and so on). Number of physical pixels per DIP (device independent pixel). For example, if rendering onto a 96 DPI bitmap then pixelsPerDip is 1. If rendering onto a 120 DPI bitmap then pixelsPerDip is 1.25. Optional transform applied to the glyphs and their positions. This transform is applied after the scaling specified the emSize and pixelsPerDip. A value that specifies the rendering mode, which must be one of the raster rendering modes (that is, not default and not outline). Specifies the measuring mode to use with glyphs. The horizontal position (X-coordinate) of the baseline origin, in DIPs. Vertical position (Y-coordinate) of the baseline origin, in DIPs. When this method returns, contains an address of a reference to the newly created glyph run analysis object. If this method succeeds, it returns . Otherwise, it returns an error code. The glyph run analysis object contains the results of analyzing the glyph run, including the positions of all the glyphs and references to all of the rasterized glyphs in the font cache. HRESULT IDWriteFactory::CreateGlyphRunAnalysis([In] const DWRITE_GLYPH_RUN* glyphRun,[In] float pixelsPerDip,[In, Optional] const DWRITE_MATRIX* transform,[In] DWRITE_RENDERING_MODE renderingMode,[In] DWRITE_MEASURING_MODE measuringMode,[In] float baselineOriginX,[In] float baselineOriginY,[Out, Fast] IDWriteGlyphRunAnalysis** glyphRunAnalysis) Creates an object that is used for interoperability with GDI. GetGdiInterop HRESULT IDWriteFactory::GetGdiInterop([Out] IDWriteGdiInterop** gdiInterop) An object that encapsulates a set of fonts, such as the set of fonts installed on the system, or the set of fonts in a particular directory. The font collection API can be used to discover what font families and fonts are available, and to obtain some metadata about the fonts. IDWriteFontCollection Creates a font collection using a custom font collection loader. A reference to a DirectWrite factory An application-defined font collection loader, which must have been previously registered using . The key used by the loader to identify a collection of font files. The buffer allocated for this key should at least be the size of collectionKeySize. HRESULT IDWriteFactory::CreateCustomFontCollection([None] IDWriteFontCollectionLoader* collectionLoader,[In, Buffer] const void* collectionKey,[None] int collectionKeySize,[Out] IDWriteFontCollection** fontCollection) Initializes a new instance of the class. The native pointer. Gets the number of font families in the collection. The number of font families in the collection. unsigned int IDWriteFontCollection::GetFontFamilyCount() Creates a font family object given a zero-based font family index. Zero-based index of the font family. When this method returns, contains the address of a reference to the newly created font family object. HRESULT IDWriteFontCollection::GetFontFamily([In] unsigned int index,[Out] IDWriteFontFamily** fontFamily) Finds the font family with the specified family name. An array of characters, which is null-terminated, containing the name of the font family. The name is not case-sensitive but must otherwise exactly match a family name in the collection. When this method returns, contains the zero-based index of the matching font family if the family name was found; otherwise, UINT_MAX. When this method returns, TRUE if the family name exists; otherwise, . HRESULT IDWriteFontCollection::FindFamilyName([In] const wchar_t* familyName,[Out] unsigned int* index,[Out] BOOL* exists) Gets the font object that corresponds to the same physical font as the specified font face object. The specified physical font must belong to the font collection. A font face object that specifies the physical font. When this method returns, contains the address of a reference to the newly created font object if successful; otherwise, null. HRESULT IDWriteFontCollection::GetFontFromFontFace([In] IDWriteFontFace* fontFace,[Out] IDWriteFont** font) Gets the number of font families in the collection. GetFontFamilyCount unsigned int IDWriteFontCollection::GetFontFamilyCount() Used to construct a collection of fonts given a particular type of key. IDWriteFontCollectionLoader Creates a font file enumerator object that encapsulates a collection of font files. The font system calls back to this interface to create a font collection. Pointer to the object that was used to create the current font collection. A font collection key that uniquely identifies the collection of font files within the scope of the font collection loader being used. The buffer allocated for this key must be at least the size, in bytes, specified by collectionKeySize. a reference to the newly created font file enumerator. HRESULT IDWriteFontCollectionLoader::CreateEnumeratorFromKey([None] IDWriteFactory* factory,[In, Buffer] const void* collectionKey,[None] int collectionKeySize,[Out] IDWriteFontFileEnumerator** fontFileEnumerator) Internal FontCollectionLoader Callback HRESULT IDWriteFontCollectionLoader::CreateEnumeratorFromKey([None] IDWriteFactory* factory,[In, Buffer] const void* collectionKey,[None] int collectionKeySize,[Out] IDWriteFontFileEnumerator** fontFileEnumerator) Represents an absolute reference to a font face which contains font face type, appropriate file references, face identification data and various font data such as metrics, names and glyph outlines. IDWriteFontFace Creates an object that represents a font face. A reference to a DirectWrite factory A value that indicates the type of file format of the font face. A font file object representing the font face. Because maintains its own references to the input font file objects, you may release them after this call. The zero-based index of a font face, in cases when the font files contain a collection of font faces. If the font files contain a single face, this value should be zero. A value that indicates which, if any, font face simulation flags for algorithmic means of making text bold or italic are applied to the current font face. HRESULT IDWriteFactory::CreateFontFace([None] DWRITE_FONT_FACE_TYPE fontFaceType,[None] int numberOfFiles,[In, Buffer] const IDWriteFontFile** fontFiles,[None] int faceIndex,[None] DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags,[Out] IDWriteFontFace** fontFace) Creates a font face object for the font. the to create the FontFace from. HRESULT IDWriteFont::CreateFontFace([Out] IDWriteFontFace** fontFace) Obtains ideal (resolution-independent) glyph metrics in font design units. Design glyph metrics are used for glyph positioning. An array of glyph indices for which to compute metrics. The array must contain at least as many elements as specified by glyphCount. Indicates whether the font is being used in a sideways run. This can affect the glyph metrics if the font has oblique simulation because sideways oblique simulation differs from non-sideways oblique simulation an array of structures. HRESULT IDWriteFontFace::GetDesignGlyphMetrics([In, Buffer] const short* glyphIndices,[None] int glyphCount,[Out, Buffer] DWRITE_GLYPH_METRICS* glyphMetrics,[None] BOOL isSideways) Obtains glyph metrics in font design units with the return values compatible with what GDI would produce. The ogical size of the font in DIP units. The number of physical pixels per DIP. An optional transform applied to the glyphs and their positions. This transform is applied after the scaling specified by the font size and pixelsPerDip. When set to FALSE, the metrics are the same as the metrics of GDI aliased text. When set to TRUE, the metrics are the same as the metrics of text measured by GDI using a font created with CLEARTYPE_NATURAL_QUALITY. An array of glyph indices for which to compute the metrics. A BOOL value that indicates whether the font is being used in a sideways run. This can affect the glyph metrics if the font has oblique simulation because sideways oblique simulation differs from non-sideways oblique simulation. An array of structures filled by this function. The metrics are in font design units. HRESULT IDWriteFontFace::GetGdiCompatibleGlyphMetrics([None] float emSize,[None] float pixelsPerDip,[In, Optional] const DWRITE_MATRIX* transform,[None] BOOL useGdiNatural,[In, Buffer] const short* glyphIndices,[None] int glyphCount,[Out, Buffer] DWRITE_GLYPH_METRICS* glyphMetrics,[None] BOOL isSideways) Returns the nominal mapping of UCS4 Unicode code points to glyph indices as defined by the font 'CMAP' table. Note that this mapping is primarily provided for line layout engines built on top of the physical font API. Because of OpenType glyph substitution and line layout character substitution, the nominal conversion does not always correspond to how a Unicode string will map to glyph indices when rendering using a particular font face. Also, note that Unicode variant selectors provide for alternate mappings for character to glyph. This call will always return the default variant. An array of USC4 code points from which to obtain nominal glyph indices. The array must be allocated and be able to contain the number of elements specified by codePointCount. a reference to an array of nominal glyph indices filled by this function. HRESULT IDWriteFontFace::GetGlyphIndices([In, Buffer] const int* codePoints,[None] int codePointCount,[Out, Buffer] short* glyphIndices) Obtains the font files representing a font face. The IDWriteFontFace::GetFiles method should be called twice. The first time you call GetFilesfontFiles should be NULL. When the method returns, numberOfFiles receives the number of font files that represent the font face. Then, call the method a second time, passing the numberOfFiles value that was output the first call, and a non-null buffer of the correct size to store the references. An array that stores references to font files representing the font face. This parameter can be NULL if the user wants only the number of files representing the font face. This API increments reference count of the font file references returned according to COM conventions, and the client should release them when finished. HRESULT IDWriteFontFace::GetFiles([InOut] int* numberOfFiles,[Out, Buffer, Optional] IDWriteFontFile** fontFiles) Finds the specified OpenType font table if it exists and returns a reference to it. The function accesses the underlying font data through the interface implemented by the font file loader. The context for the same tag may be different for each call, so each one must be held and released separately. The four-character tag of a OpenType font table to find. Use the DWRITE_MAKE_OPENTYPE_TAG macro to create it as an UINT32. Unlike GDI, it does not support the special TTCF and null tags to access the whole font. When this method returns, contains the address of a reference to the base of the table in memory. The reference is valid only as long as the font face used to get the font table still exists; (not any other font face, even if it actually refers to the same physical font). When this method returns, the address of a reference to the opaque context, which must be freed by calling {{ReleaseFontTable}}. The context actually comes from the lower-level , which may be implemented by the application or DWrite itself. It is possible for a NULL tableContext to be returned, especially if the implementation performs direct memory mapping on the whole file. Nevertheless, always release it later, and do not use it as a test for function success. The same table can be queried multiple times, but because each returned context can be different, you must release each context separately. TRUE if the font table exists; otherwise, FALSE. HRESULT IDWriteFontFace::TryGetFontTable([In] int openTypeTableTag,[Out, Buffer] const void** tableData,[Out] int* tableSize,[Out] void** tableContext,[Out] BOOL* exists) Computes the outline of a run of glyphs by calling back to the outline sink interface. The logical size of the font in DIP units. A DIP ("device-independent pixel") equals 1/96 inch. An array of glyph indices. The glyphs are in logical order and the advance direction depends on the isRightToLeft parameter. The array must be allocated and be able to contain the number of elements specified by glyphCount. An optional array of glyph advances in DIPs. The advance of a glyph is the amount to advance the position (in the direction of the baseline) after drawing the glyph. glyphAdvances contains the number of elements specified by glyphIndices.Length. An optional array of glyph offsets, each of which specifies the offset along the baseline and offset perpendicular to the baseline of a glyph relative to the current pen position. glyphOffsets contains the number of elements specified by glyphIndices.Length. If TRUE, the ascender of the glyph runs alongside the baseline. If FALSE, the glyph ascender runs perpendicular to the baseline. For example, an English alphabet on a vertical baseline would have isSideways set to FALSE. A client can render a vertical run by setting isSideways to TRUE and rotating the resulting geometry 90 degrees to the right using a transform. The isSideways and isRightToLeft parameters cannot both be true. The visual order of the glyphs. If this parameter is FALSE, then glyph advances are from left to right. If TRUE, the advance direction is right to left. By default, the advance direction is left to right. A reference to the interface that is called back to perform outline drawing operations. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT IDWriteFontFace::GetGlyphRunOutline([None] float emSize,[In, Buffer] const short* glyphIndices,[In, Buffer, Optional] const float* glyphAdvances,[In, Buffer, Optional] const DWRITE_GLYPH_OFFSET* glyphOffsets,[None] int glyphCount,[None] BOOL isSideways,[None] BOOL isRightToLeft,[None] IDWriteGeometrySink* geometrySink) Initializes a new instance of the class. The native pointer. Obtains the file format type of a font face. A value that indicates the type of format for the font face (such as Type 1, TrueType, vector, or bitmap). DWRITE_FONT_FACE_TYPE IDWriteFontFace::GetType() Obtains the font files representing a font face. If fontFiles is null, receives the number of files representing the font face. Otherwise, the number of font files being requested should be passed. See the Remarks section below for more information. When this method returns, contains a reference to a user-provided array that stores references to font files representing the font face. This parameter can be null if the user wants only the number of files representing the font face. This API increments reference count of the font file references returned according to COM conventions, and the client should release them when finished. If this method succeeds, it returns . Otherwise, it returns an error code. The method should be called twice. The first time you call GetFilesfontFiles should be null. When the method returns, numberOfFiles receives the number of font files that represent the font face.Then, call the method a second time, passing the numberOfFiles value that was output the first call, and a non-null buffer of the correct size to store the references. HRESULT IDWriteFontFace::GetFiles([InOut] unsigned int* numberOfFiles,[Out, Buffer, Optional] IDWriteFontFile** fontFiles) Obtains the index of a font face in the context of its font files. The zero-based index of a font face in cases when the font files contain a collection of font faces. If the font files contain a single face, this value is zero. unsigned int IDWriteFontFace::GetIndex() Obtains the algorithmic style simulation flags of a font face. Font face simulation flags for algorithmic means of making text bold or italic. DWRITE_FONT_SIMULATIONS IDWriteFontFace::GetSimulations() Determines whether the font is a symbol font. Returns TRUE if the font is a symbol font, otherwise . BOOL IDWriteFontFace::IsSymbolFont() Obtains design units and common metrics for the font face. These metrics are applicable to all the glyphs within a font face and are used by applications for layout calculations. When this method returns, a? structure that holds metrics (such as ascent, descent, or cap height) for the current font face element. The metrics returned by this function are in font design units. void IDWriteFontFace::GetMetrics([Out] DWRITE_FONT_METRICS* fontFaceMetrics) Obtains the number of glyphs in the font face. The number of glyphs in the font face. unsigned short IDWriteFontFace::GetGlyphCount() Obtains ideal (resolution-independent) glyph metrics in font design units. An array of glyph indices for which to compute metrics. The array must contain at least as many elements as specified by glyphCount. The number of elements in the glyphIndices array. When this method returns, contains an array of structures. glyphMetrics must be initialized with an empty buffer that contains at least as many elements as glyphCount. The metrics returned by this function are in font design units. Indicates whether the font is being used in a sideways run. This can affect the glyph metrics if the font has oblique simulation because sideways oblique simulation differs from non-sideways oblique simulation If this method succeeds, it returns . Otherwise, it returns an error code. Design glyph metrics are used for glyph positioning. HRESULT IDWriteFontFace::GetDesignGlyphMetrics([In, Buffer] const unsigned short* glyphIndices,[In] unsigned int glyphCount,[Out, Buffer] DWRITE_GLYPH_METRICS* glyphMetrics,[In] BOOL isSideways) Returns the nominal mapping of UCS4 Unicode code points to glyph indices as defined by the font 'CMAP' table. An array of USC4 code points from which to obtain nominal glyph indices. The array must be allocated and be able to contain the number of elements specified by codePointCount. The number of elements in the codePoints array. When this method returns, contains a reference to an array of nominal glyph indices filled by this function. If this method succeeds, it returns . Otherwise, it returns an error code. Note that this mapping is primarily provided for line layout engines built on top of the physical font API. Because of OpenType glyph substitution and line layout character substitution, the nominal conversion does not always correspond to how a Unicode string will map to glyph indices when rendering using a particular font face. Also, note that Unicode variant selectors provide for alternate mappings for character to glyph. This call will always return the default variant. HRESULT IDWriteFontFace::GetGlyphIndicesW([In, Buffer] const unsigned int* codePoints,[In] unsigned int codePointCount,[Out, Buffer] unsigned short* glyphIndices) Finds the specified OpenType font table if it exists and returns a reference to it. The function accesses the underlying font data through the interface implemented by the font file loader. No documentation. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. The context for the same tag may be different for each call, so each one must be held and released separately. HRESULT IDWriteFontFace::TryGetFontTable([In] unsigned int openTypeTableTag,[Out, Buffer] const void** tableData,[Out] unsigned int* tableSize,[Out] void** tableContext,[Out] BOOL* exists) Releases the table obtained earlier from TryGetFontTable. No documentation. void IDWriteFontFace::ReleaseFontTable([In] void* tableContext) Computes the outline of a run of glyphs by calling back to the outline sink interface. The logical size of the font in DIP units. A DIP ("device-independent pixel") equals 1/96 inch. An array of glyph indices. The glyphs are in logical order and the advance direction depends on the isRightToLeft parameter. The array must be allocated and be able to contain the number of elements specified by glyphCount. An optional array of glyph advances in DIPs. The advance of a glyph is the amount to advance the position (in the direction of the baseline) after drawing the glyph. glyphAdvances contains the number of elements specified by glyphCount. An optional array of glyph offsets, each of which specifies the offset along the baseline and offset perpendicular to the baseline of a glyph relative to the current pen position. glyphOffsets contains the number of elements specified by glyphCount. The number of glyphs in the run. If TRUE, the ascender of the glyph runs alongside the baseline. If , the glyph ascender runs perpendicular to the baseline. For example, an English alphabet on a vertical baseline would have isSideways set to . A client can render a vertical run by setting isSideways to TRUE and rotating the resulting geometry 90 degrees to the right using a transform. The isSideways and isRightToLeft parameters cannot both be true. The visual order of the glyphs. If this parameter is , then glyph advances are from left to right. If TRUE, the advance direction is right to left. By default, the advance direction is left to right. A reference to the interface that is called back to perform outline drawing operations. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFontFace::GetGlyphRunOutline([In] float emSize,[In, Buffer] const unsigned short* glyphIndices,[In, Buffer, Optional] const float* glyphAdvances,[In, Buffer, Optional] const DWRITE_GLYPH_OFFSET* glyphOffsets,[In] unsigned int glyphCount,[In] BOOL isSideways,[In] BOOL isRightToLeft,[In] ID2D1SimplifiedGeometrySink* geometrySink) Determines the recommended rendering mode for the font, using the specified size and rendering parameters. The logical size of the font in DIP units. A DIP ("device-independent pixel") equals 1/96 inch. The number of physical pixels per DIP. For example, if the DPI of the rendering surface is 96, this value is 1.0f. If the DPI is 120, this value is 120.0f/96. The measuring method that will be used for glyphs in the font. Renderer implementations may choose different rendering modes for different measuring methods, for example: for for for A reference to an object that contains rendering settings such as gamma level, enhanced contrast, and ClearType level. This parameter is necessary in case the rendering parameters object overrides the rendering mode. When this method returns, contains a value that indicates the recommended rendering mode to use. HRESULT IDWriteFontFace::GetRecommendedRenderingMode([In] float emSize,[In] float pixelsPerDip,[In] DWRITE_MEASURING_MODE measuringMode,[In] IDWriteRenderingParams* renderingParams,[Out] DWRITE_RENDERING_MODE* renderingMode) Obtains design units and common metrics for the font face. These metrics are applicable to all the glyphs within a fontface and are used by applications for layout calculations. The logical size of the font in DIP units. The number of physical pixels per DIP. An optional transform applied to the glyphs and their positions. This transform is applied after the scaling specified by the font size and pixelsPerDip. A reference to a structure to fill in. The metrics returned by this function are in font design units. HRESULT IDWriteFontFace::GetGdiCompatibleMetrics([In] float emSize,[In] float pixelsPerDip,[In, Optional] const DWRITE_MATRIX* transform,[Out] DWRITE_FONT_METRICS* fontFaceMetrics) Obtains glyph metrics in font design units with the return values compatible with what GDI would produce. The ogical size of the font in DIP units. The number of physical pixels per DIP. An optional transform applied to the glyphs and their positions. This transform is applied after the scaling specified by the font size and pixelsPerDip. When set to , the metrics are the same as the metrics of GDI aliased text. When set to TRUE, the metrics are the same as the metrics of text measured by GDI using a font created with CLEARTYPE_NATURAL_QUALITY. An array of glyph indices for which to compute the metrics. The number of elements in the glyphIndices array. An array of structures filled by this function. The metrics are in font design units. A value that indicates whether the font is being used in a sideways run. This can affect the glyph metrics if the font has oblique simulation because sideways oblique simulation differs from non-sideways oblique simulation. Standard error code. If any of the input glyph indices are outside of the valid glyph index range for the current font face, E_INVALIDARG will be returned. HRESULT IDWriteFontFace::GetGdiCompatibleGlyphMetrics([In] float emSize,[In] float pixelsPerDip,[In, Optional] const DWRITE_MATRIX* transform,[In] BOOL useGdiNatural,[In, Buffer] const unsigned short* glyphIndices,[In] unsigned int glyphCount,[Out, Buffer] DWRITE_GLYPH_METRICS* glyphMetrics,[In] BOOL isSideways) Obtains the file format type of a font face. GetType DWRITE_FONT_FACE_TYPE IDWriteFontFace::GetType() Obtains the index of a font face in the context of its font files. GetIndex unsigned int IDWriteFontFace::GetIndex() Obtains the algorithmic style simulation flags of a font face. GetSimulations DWRITE_FONT_SIMULATIONS IDWriteFontFace::GetSimulations() Determines whether the font is a symbol font. IsSymbolFont BOOL IDWriteFontFace::IsSymbolFont() Obtains design units and common metrics for the font face. These metrics are applicable to all the glyphs within a font face and are used by applications for layout calculations. GetMetrics void IDWriteFontFace::GetMetrics([Out] DWRITE_FONT_METRICS* fontFaceMetrics) Obtains the number of glyphs in the font face. GetGlyphCount unsigned short IDWriteFontFace::GetGlyphCount() Specifies properties used to identify and execute typographic features in the current font face. A non-zero value generally enables the feature execution, while the zero value disables it. A feature requiring a selector uses this value to indicate the selector index.The OpenType standard provides access to typographic features available in the font by means of a feature tag with the associated parameters. The OpenType feature tag is a 4-byte identifier of the registered name of a feature. For example, the 'kern' feature name tag is used to identify the 'Kerning' feature in OpenType font. Similarly, the OpenType feature tag for 'Standard Ligatures' and 'Fractions' is 'liga' and 'frac' respectively. Since a single run can be associated with more than one typographic features, the Text String API accepts typographic settings for a run as a list of features and are executed in the order they are specified.The value of the tag member represents the OpenType name tag of the feature, while the param value represents additional parameter for the execution of the feature referred by the tag member. Both nameTag and parameter are stored as little endian, the same convention followed by GDI. Most features treat the Param value as a binary value that indicates whether to turn the execution of the feature on or off, with it being off by default in the majority of cases. Some features, however, treat this value as an integral value representing the integer index to the list of alternate results it may produce during the execution; for instance, the feature 'Stylistic Alternates' or 'salt' uses the parameter value as an index to the list of alternate substituting glyphs it could produce for a specified glyph. DWRITE_FONT_FEATURE Initializes a new instance of the struct. The name tag. The parameter. The feature OpenType name identifier. DWRITE_FONT_FEATURE_TAG nameTag The execution parameter of the feature. unsigned int parameter Represents a font file. Applications such as font managers or font viewers can call to find out if a particular file is a font file, and whether it is a font type that is supported by the font system. IDWriteFontFile Creates a font file reference object from a local font file. A reference to a DirectWrite factory An array of characters that contains the absolute file path for the font file. Subsequent operations on the constructed object may fail if the user provided filePath doesn't correspond to a valid file on the disk. HRESULT IDWriteFactory::CreateFontFileReference([In] const wchar_t* filePath,[In, Optional] const __int64* lastWriteTime,[Out] IDWriteFontFile** fontFile) Creates a font file reference object from a local font file. A reference to a DirectWrite factory An array of characters that contains the absolute file path for the font file. Subsequent operations on the constructed object may fail if the user provided filePath doesn't correspond to a valid file on the disk. The last modified time of the input file path. If the parameter is omitted, the function will access the font file to obtain its last write time. You should specify this value to avoid extra disk access. Subsequent operations on the constructed object may fail if the user provided lastWriteTime doesn't match the file on the disk. HRESULT IDWriteFactory::CreateFontFileReference([In] const wchar_t* filePath,[In, Optional] const __int64* lastWriteTime,[Out] IDWriteFontFile** fontFile) Creates a reference to an application-specific font file resource. A reference to a DirectWrite factory A font file reference key that uniquely identifies the font file resource during the lifetime of fontFileLoader. The size of the font file reference key in bytes. The font file loader that will be used by the font system to load data from the file identified by fontFileReferenceKey. This function is provided for cases when an application or a document needs to use a private font without having to install it on the system. fontFileReferenceKey has to be unique only in the scope of the fontFileLoader used in this call. HRESULT IDWriteFactory::CreateCustomFontFileReference([In, Buffer] const void* fontFileReferenceKey,[None] int fontFileReferenceKeySize,[None] IDWriteFontFileLoader* fontFileLoader,[Out] IDWriteFontFile** fontFile) Obtains the reference to the reference key of a font file. The returned reference is valid until the font file object is released. the reference to the reference key of a font file. HRESULT IDWriteFontFile::GetReferenceKey([Out, Buffer] const void** fontFileReferenceKey,[Out] int* fontFileReferenceKeySize) Initializes a new instance of the class. The native pointer. Obtains the reference to the reference key of a font file. The returned reference is valid until the font file object is released. When this method returns, contains an address of a reference to the font file reference key. Note that the reference value is only valid until the font file object it is obtained from is released. This parameter is passed uninitialized. When this method returns, contains the size of the font file reference key in bytes. This parameter is passed uninitialized. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFontFile::GetReferenceKey([Out, Buffer] const void** fontFileReferenceKey,[Out] unsigned int* fontFileReferenceKeySize) Obtains the file loader associated with a font file object. When this method returns, contains the address of a reference to the font file loader associated with the font file object. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFontFile::GetLoader([Out] IDWriteFontFileLoader** fontFileLoader) Analyzes a file and returns whether it represents a font, and whether the font type is supported by the font system. TRUE if the font type is supported by the font system; otherwise, . When this method returns, contains a value that indicates the type of the font file. Note that even if isSupportedFontType is , the fontFileType value may be different from . When this method returns, contains a value that indicates the type of the font face. If fontFileType is not equal to , then that can be constructed from the font file. When this method returns, contains the number of font faces contained in the font file. If this method succeeds, it returns . Otherwise, it returns an error code. Important??Certain font file types are recognized, but not supported by the font system. For example, the font system will recognize a file as a Type 1 font file but will not be able to construct a font face object from it. In such situations, Analyze will set isSupportedFontType output parameter to . HRESULT IDWriteFontFile::Analyze([Out] BOOL* isSupportedFontType,[Out] DWRITE_FONT_FILE_TYPE* fontFileType,[Out, Optional] DWRITE_FONT_FACE_TYPE* fontFaceType,[Out] unsigned int* numberOfFaces) Obtains the file loader associated with a font file object. HRESULT IDWriteFontFile::GetLoader([Out] IDWriteFontFileLoader** fontFileLoader) Encapsulates a collection of font files. The font system uses this interface to enumerate font files when building a font collection. IDWriteFontFileEnumerator Advances to the next font file in the collection. When it is first created, the enumerator is positioned before the first element of the collection and the first call to MoveNext advances to the first file. the value TRUE if the enumerator advances to a file; otherwise, FALSE if the enumerator advances past the last file in the collection. HRESULT IDWriteFontFileEnumerator::MoveNext([Out] BOOL* hasCurrentFile) Gets a reference to the current font file. a reference to the newly created object. HRESULT IDWriteFontFileEnumerator::GetCurrentFontFile([Out] IDWriteFontFile** fontFile) Internal FontFileEnumerator Callback Return a pointer to the unamanged version of this callback. The callback. A pointer to a shadow c++ callback Advances to the next font file in the collection. When it is first created, the enumerator is positioned before the first element of the collection and the first call to MoveNext advances to the first file. the value TRUE if the enumerator advances to a file; otherwise, FALSE if the enumerator advances past the last file in the collection. HRESULT IDWriteFontFileEnumerator::MoveNext([Out] BOOL* hasCurrentFile) Gets a reference to the current font file. a reference to the newly created object. HRESULT IDWriteFontFileEnumerator::GetCurrentFontFile([Out] IDWriteFontFile** fontFile) Handles loading font file resources of a particular type from a font file reference key into a font file stream object. IDWriteFontFileLoader Creates a font file stream object that encapsulates an open file resource. The resource is closed when the last reference to fontFileStream is released. A reference to a font file reference key that uniquely identifies the font file resource within the scope of the font loader being used. The buffer allocated for this key must at least be the size, in bytes, specified by fontFileReferenceKeySize. a reference to the newly created object. HRESULT IDWriteFontFileLoader::CreateStreamFromKey([In, Buffer] const void* fontFileReferenceKey,[None] int fontFileReferenceKeySize,[Out] IDWriteFontFileStream** fontFileStream) Internal FontFileLoader Callback Return a pointer to the unamanged version of this callback. The callback. A pointer to a shadow c++ callback HRESULT IDWriteFontFileLoader::CreateStreamFromKey([In, Buffer] const void* fontFileReferenceKey,[None] int fontFileReferenceKeySize,[Out] IDWriteFontFileStream** fontFileStream) Handles loading font file resources of a particular type from a font file reference key into a font file stream object. IDWriteFontFileLoader Creates a font file stream object that encapsulates an open file resource. The resource is closed when the last reference to fontFileStream is released. A reference to a font file reference key that uniquely identifies the font file resource within the scope of the font loader being used. The buffer allocated for this key must at least be the size, in bytes, specified by fontFileReferenceKeySize. a reference to the newly created object. HRESULT IDWriteFontFileLoader::CreateStreamFromKey([In, Buffer] const void* fontFileReferenceKey,[None] int fontFileReferenceKeySize,[Out] IDWriteFontFileStream** fontFileStream) Initializes a new instance of the class. The native pointer. Creates a font file stream object that encapsulates an open file resource. A reference to a font file reference key that uniquely identifies the font file resource within the scope of the font loader being used. The buffer allocated for this key must at least be the size, in bytes, specified by fontFileReferenceKeySize. The size of font file reference key, in bytes. When this method returns, contains the address of a reference to the newly created object. If this method succeeds, it returns . Otherwise, it returns an error code. The resource is closed when the last reference to fontFileStream is released. HRESULT IDWriteFontFileLoader::CreateStreamFromKey([In, Buffer] const void* fontFileReferenceKey,[In] unsigned int fontFileReferenceKeySize,[Out] IDWriteFontFileStream** fontFileStream) Loads font file data from a custom font file loader. IDWriteFontFileStream Reads a fragment from a font file. Note that ReadFileFragment implementations must check whether the requested font file fragment is within the file bounds. Otherwise, an error should be returned from ReadFileFragment. {{DirectWrite}} may invoke methods on the same object from multiple threads simultaneously. Therefore, ReadFileFragment implementations that rely on internal mutable state must serialize access to such state across multiple threads. For example, an implementation that uses separate Seek and Read operations to read a file fragment must place the code block containing Seek and Read calls under a lock or a critical section. When this method returns, contains an address of a reference to the start of the font file fragment. This parameter is passed uninitialized. The offset of the fragment, in bytes, from the beginning of the font file. The size of the file fragment, in bytes. When this method returns, contains the address of a reference to a reference to the client-defined context to be passed to {{ReleaseFileFragment}}. HRESULT IDWriteFontFileStream::ReadFileFragment([Out, Buffer] const void** fragmentStart,[None] __int64 fileOffset,[None] __int64 fragmentSize,[Out] void** fragmentContext) Releases a fragment from a file. A reference to the client-defined context of a font fragment returned from {{ReadFileFragment}}. void IDWriteFontFileStream::ReleaseFileFragment([None] void* fragmentContext) Obtains the total size of a file. Implementing GetFileSize() for asynchronously loaded font files may require downloading the complete file contents. Therefore, this method should be used only for operations that either require a complete font file to be loaded (for example, copying a font file) or that need to make decisions based on the value of the file size (for example, validation against a persisted file size). the total size of the file. HRESULT IDWriteFontFileStream::GetFileSize([Out] __int64* fileSize) Obtains the last modified time of the file. The "last modified time" is used by DirectWrite font selection algorithms to determine whether one font resource is more up to date than another one. the last modified time of the file in the format that represents the number of 100-nanosecond intervals since January 1, 1601 (UTC). HRESULT IDWriteFontFileStream::GetLastWriteTime([Out] __int64* lastWriteTime) Internal FontFileStream Callback Return a pointer to the unamanged version of this callback. The callback. A pointer to a shadow c++ callback HRESULT IDWriteFontFileStream::ReadFileFragment([Out, Buffer] const void** fragmentStart,[None] __int64 fileOffset,[None] __int64 fragmentSize,[Out] void** fragmentContext) void IDWriteFontFileStream::ReleaseFileFragment([None] void* fragmentContext) HRESULT IDWriteFontFileStream::GetFileSize([Out] __int64* fileSize) HRESULT IDWriteFontFileStream::GetLastWriteTime([Out] __int64* lastWriteTime) Loads font file data from a custom font file loader. IDWriteFontFileStream Reads a fragment from a font file. Note that ReadFileFragment implementations must check whether the requested font file fragment is within the file bounds. Otherwise, an error should be returned from ReadFileFragment. {{DirectWrite}} may invoke methods on the same object from multiple threads simultaneously. Therefore, ReadFileFragment implementations that rely on internal mutable state must serialize access to such state across multiple threads. For example, an implementation that uses separate Seek and Read operations to read a file fragment must place the code block containing Seek and Read calls under a lock or a critical section. When this method returns, contains an address of a reference to the start of the font file fragment. This parameter is passed uninitialized. The offset of the fragment, in bytes, from the beginning of the font file. The size of the file fragment, in bytes. When this method returns, contains the address of a reference to a reference to the client-defined context to be passed to {{ReleaseFileFragment}}. HRESULT IDWriteFontFileStream::ReadFileFragment([Out, Buffer] const void** fragmentStart,[None] __int64 fileOffset,[None] __int64 fragmentSize,[Out] void** fragmentContext) Releases a fragment from a file. A reference to the client-defined context of a font fragment returned from {{ReadFileFragment}}. void IDWriteFontFileStream::ReleaseFileFragment([None] void* fragmentContext) Obtains the total size of a file. Implementing GetFileSize() for asynchronously loaded font files may require downloading the complete file contents. Therefore, this method should be used only for operations that either require a complete font file to be loaded (for example, copying a font file) or that need to make decisions based on the value of the file size (for example, validation against a persisted file size). the total size of the file. HRESULT IDWriteFontFileStream::GetFileSize([Out] __int64* fileSize) Obtains the last modified time of the file. The "last modified time" is used by DirectWrite font selection algorithms to determine whether one font resource is more up to date than another one. the last modified time of the file in the format that represents the number of 100-nanosecond intervals since January 1, 1601 (UTC). HRESULT IDWriteFontFileStream::GetLastWriteTime([Out] __int64* lastWriteTime) Initializes a new instance of the class. The native pointer. Reads a fragment from a font file. When this method returns, contains an address of a reference to the start of the font file fragment. This parameter is passed uninitialized. The offset of the fragment, in bytes, from the beginning of the font file. The size of the file fragment, in bytes. When this method returns, contains the address of a reference to a reference to the client-defined context to be passed to ReleaseFileFragment. If this method succeeds, it returns . Otherwise, it returns an error code. Note that ReadFileFragment implementations must check whether the requested font file fragment is within the file bounds. Otherwise, an error should be returned from ReadFileFragment.DirectWrite may invoke methods on the same object from multiple threads simultaneously. Therefore, ReadFileFragment implementations that rely on internal mutable state must serialize access to such state across multiple threads. For example, an implementation that uses separate Seek and Read operations to read a file fragment must place the code block containing Seek and Read calls under a lock or a critical section. HRESULT IDWriteFontFileStream::ReadFileFragment([Out] const void** fragmentStart,[In] unsigned longlong fileOffset,[In] unsigned longlong fragmentSize,[Out] void** fragmentContext) Releases a fragment from a file. A reference to the client-defined context of a font fragment returned from ReadFileFragment. void IDWriteFontFileStream::ReleaseFileFragment([In] void* fragmentContext) Obtains the total size of a file. When this method returns, contains the total size of the file. If this method succeeds, it returns . Otherwise, it returns an error code. Implementing GetFileSize() for asynchronously loaded font files may require downloading the complete file contents. Therefore, this method should be used only for operations that either require a complete font file to be loaded (for example, copying a font file) or that need to make decisions based on the value of the file size (for example, validation against a persisted file size). HRESULT IDWriteFontFileStream::GetFileSize([Out] unsigned longlong* fileSize) Obtains the last modified time of the file. When this method returns, contains the last modified time of the file in the format that represents the number of 100-nanosecond intervals since January 1, 1601 (UTC). If this method succeeds, it returns . Otherwise, it returns an error code. The "last modified time" is used by DirectWrite font selection algorithms to determine whether one font resource is more up to date than another one. HRESULT IDWriteFontFileStream::GetLastWriteTime([Out] unsigned longlong* lastWriteTime) Provides interoperability with GDI, such as methods to convert a font face to a structure, or to convert a GDI font description into a font face. It is also used to create bitmap render target objects. IDWriteGdiInterop Creates a font object that matches the properties specified by the LOGFONT structure. A structure containing a GDI-compatible font description. a reference to a newly created . HRESULT IDWriteGdiInterop::CreateFontFromLOGFONT([In] const LOGFONTW* logFont,[Out] IDWriteFont** font) Initializes a LOGFONT structure based on the GDI-compatible properties of the specified font. The conversion to a LOGFONT by using ConvertFontToLOGFONT operates at the logical font level and does not guarantee that it will map to a specific physical font. It is not guaranteed that GDI will select the same physical font for displaying text formatted by a LOGFONT as the object that was converted. An object to be converted into a GDI-compatible LOGFONT structure. When this method returns, contains a structure that receives a GDI-compatible font description. TRUE if the specified font object is part of the system font collection; otherwise, FALSE. HRESULT IDWriteGdiInterop::ConvertFontToLOGFONT([None] IDWriteFont* font,[In] LOGFONTW* logFont,[Out] BOOL* isSystemFont) Initializes a new instance of the class. The native pointer. Creates a font object that matches the properties specified by the structure. A structure containing a GDI-compatible font description. When this method returns, contains an address of a reference to a newly created object if successful; otherwise, null. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteGdiInterop::CreateFontFromLOGFONT([In] const void* logFont,[Out] IDWriteFont** font) Initializes a structure based on the GDI-compatible properties of the specified font. An object to be converted into a GDI-compatible structure. When this method returns, contains a structure that receives a GDI-compatible font description. When this method returns, contains TRUE if the specified font object is part of the system font collection; otherwise, . If this method succeeds, it returns . Otherwise, it returns an error code. The conversion to a by using ConvertFontToLOGFONT operates at the logical font level and does not guarantee that it will map to a specific physical font. It is not guaranteed that GDI will select the same physical font for displaying text formatted by a as the object that was converted. HRESULT IDWriteGdiInterop::ConvertFontToLOGFONT([In] IDWriteFont* font,[In] void* logFont,[Out] BOOL* isSystemFont) Initializes a structure based on the GDI-compatible properties of the specified font. An object to be converted into a GDI-compatible structure. When this method returns, contains a reference to a structure that receives a GDI-compatible font description. If this method succeeds, it returns . Otherwise, it returns an error code. The conversion to a by using ConvertFontFaceToLOGFONT operates at the logical font level and does not guarantee that it will map to a specific physical font. It is not guaranteed that GDI will select the same physical font for displaying text formatted by a as the object that was converted. HRESULT IDWriteGdiInterop::ConvertFontFaceToLOGFONT([In] IDWriteFontFace* font,[In] void* logFont) Creates an object that corresponds to the currently selected HFONT of the specified . A handle to a device context into which a font has been selected. It is assumed that the client has already performed font mapping and that the font selected into the device context is the actual font to be used for rendering glyphs. Contains an address of a reference to the newly created font face object, or null in case of failure. The font face returned is guaranteed to reference the same physical typeface that would be used for drawing glyphs (but not necessarily characters) using ExtTextOut. This function is intended for scenarios in which an application wants to use GDI and Uniscribe 1.x for text layout and shaping, but DirectWrite for final rendering. This function assumes the client is performing text output using glyph indexes. HRESULT IDWriteGdiInterop::CreateFontFaceFromHdc([In] HDC hdc,[Out] IDWriteFontFace** fontFace) Creates an object that encapsulates a bitmap and memory DC (device context) which can be used for rendering glyphs. A handle to the optional device context used to create a compatible memory DC (device context). The width of the bitmap render target. The height of the bitmap render target. When this method returns, contains an address of a reference to the newly created object. HRESULT IDWriteGdiInterop::CreateBitmapRenderTarget([In, Optional] HDC hdc,[In] unsigned int width,[In] unsigned int height,[Out] IDWriteBitmapRenderTarget** renderTarget) Contains the information needed by renderers to draw glyph runs. All coordinates are in device independent pixels (DIPs). DWRITE_GLYPH_RUN The physical font face object to draw with. IDWriteFontFace* fontFace The logical size of the font in DIPs (equals 1/96 inch), not points. float fontEmSize The number of glyphs in the glyph run. unsigned int glyphCount A reference to an array of indices to render for the glyph run. const unsigned short* glyphIndices A reference to an array containing glyph advance widths for the glyph run. const float* glyphAdvances A reference to an array containing glyph offsets for the glyph run. const DWRITE_GLYPH_OFFSET* glyphOffsets The implicit resolved bidi level of the run. Odd levels indicate right-to-left languages like Hebrew and Arabic, while even levels indicate left-to-right languages like English and Japanese (when written horizontally). For right-to-left languages, the text origin is on the right, and text should be drawn to the left. unsigned int bidiLevel Gets or sets the associated with this GlypRun. The font face. An array of glyph indices. This array contains elements. An optional array of glyph advances. This array could be null or contains elements. An optional array of glyph offsets. This array could be null or contains elements. If true, specifies that glyphs are rotated 90 degrees to the left and vertical metrics are used. Vertical writing is achieved by specifying isSideways = true and rotating the entire run 90 degrees to the right via a rotate transform. BOOL isSideways Contains low-level information used to render a glyph run. IDWriteGlyphRunAnalysis Creates a glyph run analysis object, which encapsulates information used to render a glyph run. The factory. A structure that contains the properties of the glyph run (font face, advances, and so on). Number of physical pixels per DIP (device independent pixel). For example, if rendering onto a 96 DPI bitmap then pixelsPerDip is 1. If rendering onto a 120 DPI bitmap then pixelsPerDip is 1.25. A value that specifies the rendering mode, which must be one of the raster rendering modes (that is, not default and not outline). Specifies the measuring mode to use with glyphs. The horizontal position (X-coordinate) of the baseline origin, in DIPs. Vertical position (Y-coordinate) of the baseline origin, in DIPs. The glyph run analysis object contains the results of analyzing the glyph run, including the positions of all the glyphs and references to all of the rasterized glyphs in the font cache. HRESULT IDWriteFactory::CreateGlyphRunAnalysis([In] const DWRITE_GLYPH_RUN* glyphRun,[None] float pixelsPerDip,[In, Optional] const DWRITE_MATRIX* transform,[None] DWRITE_RENDERING_MODE renderingMode,[None] DWRITE_MEASURING_MODE measuringMode,[None] float baselineOriginX,[None] float baselineOriginY,[Out] IDWriteGlyphRunAnalysis** glyphRunAnalysis) Creates a glyph run analysis object, which encapsulates information used to render a glyph run. The factory. A structure that contains the properties of the glyph run (font face, advances, and so on). Number of physical pixels per DIP (device independent pixel). For example, if rendering onto a 96 DPI bitmap then pixelsPerDip is 1. If rendering onto a 120 DPI bitmap then pixelsPerDip is 1.25. Optional transform applied to the glyphs and their positions. This transform is applied after the scaling specified the emSize and pixelsPerDip. A value that specifies the rendering mode, which must be one of the raster rendering modes (that is, not default and not outline). Specifies the measuring mode to use with glyphs. The horizontal position (X-coordinate) of the baseline origin, in DIPs. Vertical position (Y-coordinate) of the baseline origin, in DIPs. The glyph run analysis object contains the results of analyzing the glyph run, including the positions of all the glyphs and references to all of the rasterized glyphs in the font cache. HRESULT IDWriteFactory::CreateGlyphRunAnalysis([In] const DWRITE_GLYPH_RUN* glyphRun,[None] float pixelsPerDip,[In, Optional] const DWRITE_MATRIX* transform,[None] DWRITE_RENDERING_MODE renderingMode,[None] DWRITE_MEASURING_MODE measuringMode,[None] float baselineOriginX,[None] float baselineOriginY,[Out] IDWriteGlyphRunAnalysis** glyphRunAnalysis) Initializes a new instance of the class. The native pointer. Gets the bounding rectangle of the physical pixels affected by the glyph run. Specifies the type of texture requested. If a bi-level texture is requested, the bounding rectangle includes only bi-level glyphs. Otherwise, the bounding rectangle includes only antialiased glyphs. When this method returns, contains the bounding rectangle of the physical pixels affected by the glyph run, or an empty rectangle if there are no glyphs of the specified texture type. HRESULT IDWriteGlyphRunAnalysis::GetAlphaTextureBounds([In] DWRITE_TEXTURE_TYPE textureType,[Out] RECT* textureBounds) Creates an alpha texture of the specified type for glyphs within a specified bounding rectangle. A value that specifies the type of texture requested. This can be DWRITE_TEXTURE_BILEVEL_1x1 or . If a bi-level texture is requested, the texture contains only bi-level glyphs. Otherwise, the texture contains only antialiased glyphs. The bounding rectangle of the texture, which can be different than the bounding rectangle returned by GetAlphaTextureBounds. When this method returns, contains the array of alpha values from the texture. The buffer allocated for this array must be at least the size of bufferSize. The size of the alphaValues array, in bytes. The minimum size depends on the dimensions of the rectangle and the type of texture requested. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteGlyphRunAnalysis::CreateAlphaTexture([In] DWRITE_TEXTURE_TYPE textureType,[In] const RECT* textureBounds,[Out, Buffer] unsigned char* alphaValues,[In] unsigned int bufferSize) Gets alpha blending properties required for ClearType blending. An object that specifies the ClearType level and enhanced contrast, gamma, pixel geometry, and rendering mode. In most cases, the values returned by the output parameters of this method are based on the properties of this object, unless a GDI-compatible rendering mode was specified. When this method returns, contains the gamma value to use for gamma correction. When this method returns, contains the enhanced contrast value to be used for blending. When this method returns, contains the ClearType level used in the alpha blending. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteGlyphRunAnalysis::GetAlphaBlendParams([In] IDWriteRenderingParams* renderingParams,[Out] float* blendGamma,[Out] float* blendEnhancedContrast,[Out] float* blendClearTypeLevel) Contains additional properties related to those in . DWRITE_GLYPH_RUN_DESCRIPTION An array of characters containing the locale name associated with this run. const wchar_t* localeName An array of characters containing the text associated with the glyphs. const wchar_t* string The number of characters in UTF16 code-units. Note that this may be different than the number of glyphs. unsigned int stringLength An array of indices to the glyph indices array, of the first glyphs of all the glyph clusters of the glyphs to render. const unsigned short* clusterMap Corresponding text position in the string this glyph run came from. This is relative to the beginning of the string represented by the object. unsigned int textPosition A Item. A glyph index A glyph advance A glyph offset Internal InlineObject Callback Return a pointer to the unamanged version of this callback. The callback. A pointer to a shadow c++ callback HRESULT IDWriteInlineObject::Draw([None] void* clientDrawingContext,[None] IDWriteTextRenderer* renderer,[None] float originX,[None] float originY,[None] BOOL isSideways,[None] BOOL isRightToLeft,[None] IUnknown* clientDrawingEffect) HRESULT IDWriteInlineObject::GetMetrics([Out] DWRITE_INLINE_OBJECT_METRICS* metrics) HRESULT IDWriteInlineObject::GetOverhangMetrics([Out] DWRITE_OVERHANG_METRICS* overhangs) HRESULT IDWriteInlineObject::GetBreakConditions([Out] DWRITE_BREAK_CONDITION* breakConditionBefore,[Out] DWRITE_BREAK_CONDITION* breakConditionAfter) Line breakpoint characteristics of a character. DWRITE_LINE_BREAKPOINT Indicates a breaking condition before the character. byte breakConditionBefore Indicates a breaking condition after the character. byte breakConditionAfter Indicates a breaking condition before the character. unsigned char breakConditionBefore Indicates a breaking condition after the character. unsigned char breakConditionAfter Indicates that the character is some form of whitespace, which may be meaningful for justification. unsigned char isWhitespace Indicates that the character is a soft hyphen, often used to indicate hyphenation points inside words. unsigned char isSoftHyphen Reserved for future use. unsigned char padding Represents a collection of strings indexed by locale name. IDWriteLocalizedStrings Get the locale name from the language. Zero-based index of the locale name to be retrieved. The locale name from the language HRESULT IDWriteLocalizedStrings::GetLocaleName([None] int index,[Out, Buffer] wchar_t* localeName,[None] int size) Get the string from the language/string pair. Zero-based index of the string from the language/string pair to be retrieved. The locale name from the language HRESULT IDWriteLocalizedStrings::GetLocaleName([None] int index,[Out, Buffer] wchar_t* localeName,[None] int size) Initializes a new instance of the class. The native pointer. Gets the number of language/string pairs. The number of language/string pairs. unsigned int IDWriteLocalizedStrings::GetCount() Gets the zero-based index of the locale name/string pair with the specified locale name. A null-terminated array of characters containing the locale name to look for. The zero-based index of the locale name/string pair. This method initializes index to UINT_MAX. When this method returns, contains TRUE if the locale name exists; otherwise, . This method initializes exists to . Note that if the locale name does not exist, the return value is a success and the exists parameter is . If you are getting the font family name for a font and the specified locale name does not exist, one option is to set the index to 0 as shown below. There is always at least one locale for a font family. UINT32 index = 0; exists = false; wchar_t localeName[LOCALE_NAME_MAX_LENGTH]; if (SUCCEEDED(hr)) { // Get the default locale for this user. int defaultLocaleSuccess = GetUserDefaultLocaleName(localeName, LOCALE_NAME_MAX_LENGTH); // If the default locale is returned, find that locale name, otherwise use "en-us". if (defaultLocaleSuccess) { hr = pFamilyNames->FindLocaleName(localeName, &index, &exists); } if (SUCCEEDED(hr) && !exists) // if the above find did not find a match, retry with US English { hr = pFamilyNames->FindLocaleName(L"en-us", &index, &exists); } } // If the specified locale doesn't exist, select the first on the list. if (!exists) index = 0; HRESULT IDWriteLocalizedStrings::FindLocaleName([In] const wchar_t* localeName,[Out] unsigned int* index,[Out] BOOL* exists) Gets the length in characters (not including the null terminator) of the locale name with the specified index. Zero-based index of the locale name to be retrieved. When this method returns, contains the length in characters of the locale name, not including the null terminator. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteLocalizedStrings::GetLocaleNameLength([In] unsigned int index,[Out] unsigned int* length) Copies the locale name with the specified index to the specified array. Zero-based index of the locale name to be retrieved. When this method returns, contains a character array, which is null-terminated, that receives the locale name from the language/string pair. The buffer allocated for this array must be at least the size of size, in element count. The size of the array in characters. The size must include space for the terminating null character. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteLocalizedStrings::GetLocaleName([In] unsigned int index,[Out, Buffer] wchar_t* localeName,[In] unsigned int size) Gets the length in characters (not including the null terminator) of the string with the specified index. A zero-based index of the language/string pair. The length in characters of the string, not including the null terminator, from the language/string pair. If this method succeeds, it returns . Otherwise, it returns an error code. Use GetStringLength to get the string length before calling the method, as shown in the following code. UINT32 length = 0; // Get the string length. if (SUCCEEDED(hr)) { hr = pFamilyNames->GetStringLength(index, &length); } // Allocate a string big enough to hold the name. wchar_t* name = new (std::nothrow) wchar_t[length+1]; if (name == null) { hr = E_OUTOFMEMORY; } // Get the family name. if (SUCCEEDED(hr)) { hr = pFamilyNames->GetString(index, name, length+1); } HRESULT IDWriteLocalizedStrings::GetStringLength([In] unsigned int index,[Out] unsigned int* length) Copies the string with the specified index to the specified array. The zero-based index of the language/string pair to be examined. The null terminated array of characters that receives the string from the language/string pair. The buffer allocated for this array should be at least the size of size. GetStringLength can be used to get the size of the array before using this method. The size of the array in characters. The size must include space for the terminating null character. GetStringLength can be used to get the size of the array before using this method. If this method succeeds, it returns . Otherwise, it returns an error code. The string returned must be allocated by the caller. You can get the size of the string by using the GetStringLength method prior to calling GetString, as shown in the following example. UINT32 length = 0; // Get the string length. if (SUCCEEDED(hr)) { hr = pFamilyNames->GetStringLength(index, &length); } // Allocate a string big enough to hold the name. wchar_t* name = new (std::nothrow) wchar_t[length+1]; if (name == null) { hr = E_OUTOFMEMORY; } // Get the family name. if (SUCCEEDED(hr)) { hr = pFamilyNames->GetString(index, name, length+1); } HRESULT IDWriteLocalizedStrings::GetString([In] unsigned int index,[Out, Buffer] wchar_t* stringBuffer,[In] unsigned int size) Gets the number of language/string pairs. GetCount unsigned int IDWriteLocalizedStrings::GetCount() Holds the appropriate digits and numeric punctuation for a specified locale. IDWriteNumberSubstitution Creates a number substitution object using a locale name, substitution method, and an indicator whether to ignore user overrides (use NLS defaults for the given culture instead). A reference to a DirectWrite factory A value that specifies how to apply number substitution on digits and related punctuation. The name of the locale to be used in the numberSubstitution object. A Boolean flag that indicates whether to ignore user overrides. HRESULT IDWriteFactory::CreateNumberSubstitution([In] DWRITE_NUMBER_SUBSTITUTION_METHOD substitutionMethod,[In] const wchar_t* localeName,[In] BOOL ignoreUserOverride,[Out] IDWriteNumberSubstitution** numberSubstitution) Initializes a new instance of the class. The native pointer. Defines the pixel snapping properties such as pixels per DIP(device-independent pixel) and the current transform matrix of a text renderer. IDWritePixelSnapping Determines whether pixel snapping is disabled. The recommended default is FALSE, unless doing animation that requires subpixel vertical placement. The context passed to IDWriteTextLayout::Draw. Receives TRUE if pixel snapping is disabled or FALSE if it not. HRESULT IsPixelSnappingDisabled([None] void* clientDrawingContext,[Out] BOOL* isDisabled) Gets a transform that maps abstract coordinates to DIPs. The drawing context passed to . a structure which has transform information for pixel snapping. HRESULT GetCurrentTransform([None] void* clientDrawingContext,[Out] DWRITE_MATRIX* transform) Gets the number of physical pixels per DIP. Because a DIP (device-independent pixel) is 1/96 inch, the pixelsPerDip value is the number of logical pixels per inch divided by 96. The drawing context passed to . the number of physical pixels per DIP HRESULT GetPixelsPerDip([None] void* clientDrawingContext,[Out] FLOAT* pixelsPerDip) Internal TessellationSink Callback Determines whether pixel snapping is disabled. The recommended default is FALSE, unless doing animation that requires subpixel vertical placement. This pointer The context passed to IDWriteTextLayout::Draw. Output disabled Receives TRUE if pixel snapping is disabled or FALSE if it not. HRESULT IsPixelSnappingDisabled([None] void* clientDrawingContext,[Out] BOOL* isDisabled) Gets a transform that maps abstract coordinates to DIPs. This pointer The drawing context passed to . Matrix transform a structure which has transform information for pixel snapping. HRESULT GetCurrentTransform([None] void* clientDrawingContext,[Out] DWRITE_MATRIX* transform) Gets the number of physical pixels per DIP. Because a DIP (device-independent pixel) is 1/96 inch, the pixelsPerDip value is the number of logical pixels per inch divided by 96. This pointer The drawing context passed to . Dip the number of physical pixels per DIP HRESULT GetPixelsPerDip([None] void* clientDrawingContext,[Out] FLOAT* pixelsPerDip) Represents text rendering settings such as ClearType level, enhanced contrast, and gamma correction for glyph rasterization and filtering. IDWriteRenderingParams Creates a rendering parameters object with default settings for the primary monitor. Different monitors may have different rendering parameters, for more information see the {{How to Add Support for Multiple Monitors}} topic. A reference to a DirectWrite factory HRESULT IDWriteFactory::CreateRenderingParams([Out] IDWriteRenderingParams** renderingParams) Creates a rendering parameters object with default settings for the specified monitor. In most cases, this is the preferred way to create a rendering parameters object. A reference to a DirectWrite factory A handle for the specified monitor. HRESULT IDWriteFactory::CreateMonitorRenderingParams([None] void* monitor,[Out] IDWriteRenderingParams** renderingParams) Creates a rendering parameters object with the specified properties. A reference to a DirectWrite factory The gamma level to be set for the new rendering parameters object. The enhanced contrast level to be set for the new rendering parameters object. The ClearType level to be set for the new rendering parameters object. Represents the internal structure of a device pixel (that is, the physical arrangement of red, green, and blue color components) that is assumed for purposes of rendering text. A value that represents the method (for example, ClearType natural quality) for rendering glyphs. HRESULT IDWriteFactory::CreateCustomRenderingParams([None] float gamma,[None] float enhancedContrast,[None] float clearTypeLevel,[None] DWRITE_PIXEL_GEOMETRY pixelGeometry,[None] DWRITE_RENDERING_MODE renderingMode,[Out] IDWriteRenderingParams** renderingParams) Initializes a new instance of the class. The native pointer. Gets the gamma value used for gamma correction. Valid values must be greater than zero and cannot exceed 256. Returns the gamma value used for gamma correction. Valid values must be greater than zero and cannot exceed 256. The gamma value is used for gamma correction, which compensates for the non-linear luminosity response of most monitors. float IDWriteRenderingParams::GetGamma() Gets the enhanced contrast property of the rendering parameters object. Valid values are greater than or equal to zero. Returns the amount of contrast enhancement. Valid values are greater than or equal to zero. Enhanced contrast is the amount to increase the darkness of text, and typically ranges from 0 to 1. Zero means no contrast enhancement. float IDWriteRenderingParams::GetEnhancedContrast() Gets the ClearType level of the rendering parameters object. The ClearType level of the rendering parameters object. The ClearType level represents the amount of ClearType ? that is, the degree to which the red, green, and blue subpixels of each pixel are treated differently. Valid values range from zero (meaning no ClearType, which is equivalent to grayscale anti-aliasing) to one (meaning full ClearType) float IDWriteRenderingParams::GetClearTypeLevel() Gets the pixel geometry of the rendering parameters object. A value that indicates the type of pixel geometry used in the rendering parameters object. DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams::GetPixelGeometry() Gets the rendering mode of the rendering parameters object. A value that indicates the rendering mode of the rendering parameters object. By default, the rendering mode is initialized to , which means the rendering mode is determined automatically based on the font and size. To determine the recommended rendering mode to use for a given font and size and rendering parameters object, use the method. DWRITE_RENDERING_MODE IDWriteRenderingParams::GetRenderingMode() Gets the gamma value used for gamma correction. Valid values must be greater than zero and cannot exceed 256. The gamma value is used for gamma correction, which compensates for the non-linear luminosity response of most monitors. GetGamma float IDWriteRenderingParams::GetGamma() Gets the enhanced contrast property of the rendering parameters object. Valid values are greater than or equal to zero. Enhanced contrast is the amount to increase the darkness of text, and typically ranges from 0 to 1. Zero means no contrast enhancement. GetEnhancedContrast float IDWriteRenderingParams::GetEnhancedContrast() Gets the ClearType level of the rendering parameters object. The ClearType level represents the amount of ClearType ? that is, the degree to which the red, green, and blue subpixels of each pixel are treated differently. Valid values range from zero (meaning no ClearType, which is equivalent to grayscale anti-aliasing) to one (meaning full ClearType) GetClearTypeLevel float IDWriteRenderingParams::GetClearTypeLevel() Gets the pixel geometry of the rendering parameters object. GetPixelGeometry DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams::GetPixelGeometry() Gets the rendering mode of the rendering parameters object. By default, the rendering mode is initialized to , which means the rendering mode is determined automatically based on the font and size. To determine the recommended rendering mode to use for a given font and size and rendering parameters object, use the method. GetRenderingMode DWRITE_RENDERING_MODE IDWriteRenderingParams::GetRenderingMode() Defines glyph characteristic information that an application needs to implement justification. Justification cannot be applied at the glyph. The glyph represents a blank in an Arabic run. An inter-character justification point follows the glyph. The glyph represents a blank outside an Arabic run. Normal middle-of-word glyph that connects to the right (begin). Kashida (U+0640) in the middle of the word. Final form of an alef-like (U+0627, U+0625, U+0623, U+0622). Final form of Ha (U+0647). Final form of Ra (U+0631). Final form of Ba (U+0628). Ligature of alike (U+0628,U+0631). Highest priority: initial shape of Seen class (U+0633). Highest priority: medial shape of Seen class (U+0633). Contains shaping output properties for an output glyph. DWRITE_SHAPING_GLYPH_PROPERTIES Indicates that the glyph has justification applied. short justification Indicates that the glyph has justification applied. unsigned short justification Indicates that the glyph is the start of a cluster. unsigned short isClusterStart Indicates that the glyph is a diacritic mark. unsigned short isDiacritic Indicates that the glyph is a word boundary with no visible space. unsigned short isZeroWidthSpace Reserved for future use. unsigned short reserved This interface is implemented by the text analyzer's client to receive the output of a given text analysis. IDWriteTextAnalysisSink Reports script analysis for the specified text range. The starting position from which to report. The number of UTF16 units of the reported range. A reference to a structure that contains a zero-based index representation of a writing system script and a value indicating whether additional shaping of text is required. A successful code or error code to stop analysis. HRESULT IDWriteTextAnalysisSink::SetScriptAnalysis([None] int textPosition,[None] int textLength,[In] const DWRITE_SCRIPT_ANALYSIS* scriptAnalysis) Sets line-break opportunities for each character, starting from the specified position. The starting text position from which to report. The number of UTF16 units of the reported range. A reference to a structure that contains breaking conditions set for each character from the starting position to the end of the specified range. A successful code or error code to stop analysis. HRESULT IDWriteTextAnalysisSink::SetLineBreakpoints([None] int textPosition,[None] int textLength,[In, Buffer] const DWRITE_LINE_BREAKPOINT* lineBreakpoints) Sets a bidirectional level on the range, which is called once per run change (either explicit or resolved implicit). The starting position from which to report. The number of UTF16 units of the reported range. The explicit level from the paragraph reading direction and any embedded control codes RLE/RLO/LRE/LRO/PDF, which is determined before any additional rules. The final implicit level considering the explicit level and characters' natural directionality, after all Bidi rules have been applied. A successful code or error code to stop analysis. HRESULT IDWriteTextAnalysisSink::SetBidiLevel([None] int textPosition,[None] int textLength,[None] int explicitLevel,[None] int resolvedLevel) Sets the number substitution on the text range affected by the text analysis. The starting position from which to report. The number of UTF16 units of the reported range. An object that holds the appropriate digits and numeric punctuation for a given locale. Use to create this object. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT IDWriteTextAnalysisSink::SetNumberSubstitution([None] int textPosition,[None] int textLength,[None] IDWriteNumberSubstitution* numberSubstitution) Internal TextAnalysisSink Callback Return a pointer to the unamanged version of this callback. The callback. A pointer to a shadow c++ callback HRESULT IDWriteTextAnalysisSink::SetScriptAnalysis([None] int textPosition,[None] int textLength,[In] const DWRITE_SCRIPT_ANALYSIS* scriptAnalysis) HRESULT IDWriteTextAnalysisSink::SetLineBreakpoints([None] int textPosition,[None] int textLength,[In, Buffer] const DWRITE_LINE_BREAKPOINT* lineBreakpoints) HRESULT IDWriteTextAnalysisSink::SetBidiLevel([None] int textPosition,[None] int textLength,[None] int explicitLevel,[None] int resolvedLevel) HRESULT IDWriteTextAnalysisSink::SetNumberSubstitution([None] int textPosition,[None] int textLength,[None] IDWriteNumberSubstitution* numberSubstitution) Implemented by the text analyzer's client to provide text to the analyzer. It allows the separation between the logical view of text as a continuous stream of characters identifiable by unique text positions, and the actual memory layout of potentially discrete blocks of text in the client's backing store. IDWriteTextAnalysisSource Gets a block of text starting at the specified text position. Returning NULL indicates the end of text, which is the position after the last character. This function is called iteratively for each consecutive block, tying together several fragmented blocks in the backing store into a virtual contiguous string. Although applications can implement sparse textual content that maps only part of the backing store, the application must map any text that is in the range passed to any analysis functions. The first position of the piece to obtain. All positions are in UTF16 code units, not whole characters, which matters when supplementary characters are used. a block of text HRESULT IDWriteTextAnalysisSource::GetTextAtPosition([None] int textPosition,[Out] const wchar_t** textString,[Out] int* textLength) Gets a block of text immediately preceding the specified position. NULL indicates no chunk available at the specified position, either because textPosition equals 0, textPosition is greater than the entire text content length, or the queried position is not mapped into the application's backing store. Although applications can implement sparse textual content that maps only part of the backing store, the application must map any text that is in the range passed to any analysis functions. The position immediately after the last position of the block of text to obtain. text immediately preceding the specified position HRESULT IDWriteTextAnalysisSource::GetTextBeforePosition([None] int textPosition,[Out] const wchar_t** textString,[Out] int* textLength) Gets the locale name on the range affected by the text analysis. The text position to examine. Contains the length of the text being affected by the text analysis up to the next differing locale. the locale name on the range affected by the text analysis HRESULT IDWriteTextAnalysisSource::GetLocaleName([None] int textPosition,[Out] int* textLength,[Out] const wchar_t** localeName) The localeName reference must remain valid until the next call or until the analysis returns. Gets the number substitution from the text range affected by the text analysis. Any implementation should return the number substitution with an incremented reference count, and the analysis will release when finished with it (either before the next call or before it returns). However, the sink callback may hold onto it after that. The starting position from which to report. Contains the length of the text, in characters, remaining in the text range up to the next differing number substitution. the number substitution from the text range affected by the text analysis. HRESULT IDWriteTextAnalysisSource::GetNumberSubstitution([None] int textPosition,[Out] int* textLength,[Out] IDWriteNumberSubstitution** numberSubstitution) Gets the paragraph reading direction. The reading direction of the current paragraph. DWRITE_READING_DIRECTION IDWriteTextAnalysisSource::GetParagraphReadingDirection() Internal TextAnalysisSource Callback Return a pointer to the unamanged version of this callback. The callback. A pointer to a shadow c++ callback HRESULT IDWriteTextAnalysisSource::GetTextAtPosition([None] int textPosition,[Out] const wchar_t** textString,[Out] int* textLength) HRESULT IDWriteTextAnalysisSource::GetTextBeforePosition([None] int textPosition,[Out] const wchar_t** textString,[Out] int* textLength) DWRITE_READING_DIRECTION IDWriteTextAnalysisSource::GetParagraphReadingDirection() HRESULT IDWriteTextAnalysisSource::GetLocaleName([None] int textPosition,[Out] int* textLength,[Out] const wchar_t** localeName) HRESULT IDWriteTextAnalysisSource::GetNumberSubstitution([None] int textPosition,[Out] int* textLength,[Out] IDWriteNumberSubstitution** numberSubstitution) Analyzes various text properties for complex script processing such as bidirectional (bidi) support for languages like Arabic, determination of line break opportunities, glyph placement, and number substitution. IDWriteTextAnalyzer Returns an interface for performing text analysis. A reference to a DirectWrite factory HRESULT IDWriteFactory::CreateTextAnalyzer([Out] IDWriteTextAnalyzer** textAnalyzer) Analyzes a text range for script boundaries, reading text attributes from the source and reporting the Unicode script ID to the sink callback {{SetScript}}. A reference to the source object to analyze. The starting text position within the source object. The text length to analyze. A reference to the sink callback object that receives the text analysis. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT IDWriteTextAnalyzer::AnalyzeScript([None] IDWriteTextAnalysisSource* analysisSource,[None] int textPosition,[None] int textLength,[None] IDWriteTextAnalysisSink* analysisSink) Analyzes a text range for script directionality, reading attributes from the source and reporting levels to the sink callback {{SetBidiLevel}}. A reference to a source object to analyze. The starting text position within the source object. The text length to analyze. A reference to the sink callback object that receives the text analysis. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT IDWriteTextAnalyzer::AnalyzeBidi([None] IDWriteTextAnalysisSource* analysisSource,[None] int textPosition,[None] int textLength,[None] IDWriteTextAnalysisSink* analysisSink) While the function can handle multiple paragraphs, the text range should not arbitrarily split the middle of paragraphs. Otherwise, the returned levels may be wrong, because the Bidi algorithm is meant to apply to the paragraph as a whole. Analyzes a text range for spans where number substitution is applicable, reading attributes from the source and reporting substitutable ranges to the sink callback {{SetNumberSubstitution}}. The source object to analyze. The starting position within the source object. The length to analyze. A reference to the sink callback object that receives the text analysis. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT IDWriteTextAnalyzer::AnalyzeNumberSubstitution([None] IDWriteTextAnalysisSource* analysisSource,[None] int textPosition,[None] int textLength,[None] IDWriteTextAnalysisSink* analysisSink) Although the function can handle multiple ranges of differing number substitutions, the text ranges should not arbitrarily split the middle of numbers. Otherwise, it will treat the numbers separately and will not translate any intervening punctuation. Analyzes a text range for potential breakpoint opportunities, reading attributes from the source and reporting breakpoint opportunities to the sink callback {{SetLineBreakpoints}}. A reference to the source object to analyze. The starting text position within the source object. The text length to analyze. A reference to the sink callback object that receives the text analysis. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT IDWriteTextAnalyzer::AnalyzeLineBreakpoints([None] IDWriteTextAnalysisSource* analysisSource,[None] int textPosition,[None] int textLength,[None] IDWriteTextAnalysisSink* analysisSink) Although the function can handle multiple paragraphs, the text range should not arbitrarily split the middle of paragraphs, unless the specified text span is considered a whole unit. Otherwise, the returned properties for the first and last characters will inappropriately allow breaks. Gets the glyphs (TODO doc) The text string. Length of the text. The font face. if set to true [is sideways]. if set to true [is right to left]. The script analysis. Name of the locale. The number substitution. The features. The feature range lengths. The max glyph count. The cluster map. The text props. The glyph indices. The glyph props. The actual glyph count. If the method succeeds, it returns . HRESULT IDWriteTextAnalyzer::GetGlyphs([In, Buffer] const wchar_t* textString,[In] unsigned int textLength,[In] IDWriteFontFace* fontFace,[In] BOOL isSideways,[In] BOOL isRightToLeft,[In] const DWRITE_SCRIPT_ANALYSIS* scriptAnalysis,[In, Buffer, Optional] const wchar_t* localeName,[In, Optional] IDWriteNumberSubstitution* numberSubstitution,[In, Optional] const void** features,[In, Buffer, Optional] const unsigned int* featureRangeLengths,[In] unsigned int featureRanges,[In] unsigned int maxGlyphCount,[Out, Buffer] unsigned short* clusterMap,[Out, Buffer] DWRITE_SHAPING_TEXT_PROPERTIES* textProps,[Out, Buffer] unsigned short* glyphIndices,[Out, Buffer] DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps,[Out] unsigned int* actualGlyphCount) Gets the glyph placements. The text string. The cluster map. The text props. Length of the text. The glyph indices. The glyph props. The glyph count. The font face. Size of the font em. if set to true [is sideways]. if set to true [is right to left]. The script analysis. Name of the locale. The features. The feature range lengths. The glyph advances. The glyph offsets. If the method succeeds, it returns . HRESULT IDWriteTextAnalyzer::GetGlyphPlacements([In, Buffer] const wchar_t* textString,[In, Buffer] const unsigned short* clusterMap,[In, Buffer] DWRITE_SHAPING_TEXT_PROPERTIES* textProps,[In] unsigned int textLength,[In, Buffer] const unsigned short* glyphIndices,[In, Buffer] const DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps,[In] unsigned int glyphCount,[In] IDWriteFontFace* fontFace,[In] float fontEmSize,[In] BOOL isSideways,[In] BOOL isRightToLeft,[In] const DWRITE_SCRIPT_ANALYSIS* scriptAnalysis,[In, Buffer, Optional] const wchar_t* localeName,[In, Optional] const void** features,[In, Buffer, Optional] const unsigned int* featureRangeLengths,[In] unsigned int featureRanges,[Out, Buffer] float* glyphAdvances,[Out, Buffer] DWRITE_GLYPH_OFFSET* glyphOffsets) Gets the GDI compatible glyph placements. The text string. The cluster map. The text props. Length of the text. The glyph indices. The glyph props. The glyph count. The font face. Size of the font em. The pixels per dip. The transform. if set to true [use GDI natural]. if set to true [is sideways]. if set to true [is right to left]. The script analysis. Name of the locale. The features. The feature range lengths. The glyph advances. The glyph offsets. If the method succeeds, it returns . HRESULT IDWriteTextAnalyzer::GetGdiCompatibleGlyphPlacements([In, Buffer] const wchar_t* textString,[In, Buffer] const unsigned short* clusterMap,[In, Buffer] DWRITE_SHAPING_TEXT_PROPERTIES* textProps,[In] unsigned int textLength,[In, Buffer] const unsigned short* glyphIndices,[In, Buffer] const DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps,[In] unsigned int glyphCount,[In] IDWriteFontFace* fontFace,[In] float fontEmSize,[In] float pixelsPerDip,[In, Optional] const DWRITE_MATRIX* transform,[In] BOOL useGdiNatural,[In] BOOL isSideways,[In] BOOL isRightToLeft,[In] const DWRITE_SCRIPT_ANALYSIS* scriptAnalysis,[In, Buffer, Optional] const wchar_t* localeName,[In, Optional] const void** features,[In, Buffer, Optional] const unsigned int* featureRangeLengths,[In] unsigned int featureRanges,[Out, Buffer] float* glyphAdvances,[Out, Buffer] DWRITE_GLYPH_OFFSET* glyphOffsets) Allocates the features from the jagged array.. The features. A pointer to the allocated native features or 0 if features is null or empty. Initializes a new instance of the class. The native pointer. Analyzes a text range for script boundaries, reading text attributes from the source and reporting the Unicode script ID to the sink callback SetScript. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextAnalyzer::AnalyzeScript([In] IDWriteTextAnalysisSource* analysisSource,[In] unsigned int textPosition,[In] unsigned int textLength,[In] IDWriteTextAnalysisSink* analysisSink) Analyzes a text range for script directionality, reading attributes from the source and reporting levels to the sink callback SetBidiLevel. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. While the function can handle multiple paragraphs, the text range should not arbitrarily split the middle of paragraphs. Otherwise, the returned levels may be wrong, because the Bidi algorithm is meant to apply to the paragraph as a whole. HRESULT IDWriteTextAnalyzer::AnalyzeBidi([In] IDWriteTextAnalysisSource* analysisSource,[In] unsigned int textPosition,[In] unsigned int textLength,[In] IDWriteTextAnalysisSink* analysisSink) Analyzes a text range for spans where number substitution is applicable, reading attributes from the source and reporting substitutable ranges to the sink callback SetNumberSubstitution. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. Although the function can handle multiple ranges of differing number substitutions, the text ranges should not arbitrarily split the middle of numbers. Otherwise, it will treat the numbers separately and will not translate any intervening punctuation. HRESULT IDWriteTextAnalyzer::AnalyzeNumberSubstitution([In] IDWriteTextAnalysisSource* analysisSource,[In] unsigned int textPosition,[In] unsigned int textLength,[In] IDWriteTextAnalysisSink* analysisSink) Analyzes a text range for potential breakpoint opportunities, reading attributes from the source and reporting breakpoint opportunities to the sink callback SetLineBreakpoints. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. Although the function can handle multiple paragraphs, the text range should not arbitrarily split the middle of paragraphs, unless the specified text span is considered a whole unit. Otherwise, the returned properties for the first and last characters will inappropriately allow breaks. HRESULT IDWriteTextAnalyzer::AnalyzeLineBreakpoints([In] IDWriteTextAnalysisSource* analysisSource,[In] unsigned int textPosition,[In] unsigned int textLength,[In] IDWriteTextAnalysisSink* analysisSink) Parses the input text string and maps it to the set of glyphs and associated glyph data according to the font and the writing system's rendering rules. An array of characters to convert to glyphs. The length of textString. The font face that is the source of the output glyphs. A Boolean flag set to TRUE if the text is intended to be drawn vertically. A Boolean flag set to TRUE for right-to-left text. A reference to a Script analysis result from an AnalyzeScript call. The locale to use when selecting glyphs. For example the same character may map to different glyphs for ja-jp versus zh-chs. If this is null, then the default mapping based on the script is used. A reference to an optional number substitution which selects the appropriate glyphs for digits and related numeric characters, depending on the results obtained from AnalyzeNumberSubstitution. Passing null indicates that no substitution is needed and that the digits should receive nominal glyphs. An array of references to the sets of typographic features to use in each feature range. The length of each feature range, in characters. The sum of all lengths should be equal to textLength. The number of feature ranges. The maximum number of glyphs that can be returned. When this method returns, contains the mapping from character ranges to glyph ranges. When this method returns, contains a reference to an array of structures that contains shaping properties for each character. The output glyph indices. When this method returns, contains a reference to an array of structures that contain shaping properties for each output glyph. When this method returns, contains the actual number of glyphs returned if the call succeeds. If this method succeeds, it returns . Otherwise, it returns an error code. Note that the mapping from characters to glyphs is, in general, many-to-many. The recommended estimate for the per-glyph output buffers is (3 * textLength / 2 + 16). This is not guaranteed to be sufficient. The value of the actualGlyphCount parameter is only valid if the call succeeds. In the event that maxGlyphCount is not big enough, HRESULT_FROM_WIN32() will be returned. The application should allocate a larger buffer and try again. HRESULT IDWriteTextAnalyzer::GetGlyphs([In, Buffer] const wchar_t* textString,[In] unsigned int textLength,[In] IDWriteFontFace* fontFace,[In] BOOL isSideways,[In] BOOL isRightToLeft,[In] const DWRITE_SCRIPT_ANALYSIS* scriptAnalysis,[In, Optional] const wchar_t* localeName,[In, Optional] IDWriteNumberSubstitution* numberSubstitution,[In, Optional] const void** features,[In, Buffer, Optional] const unsigned int* featureRangeLengths,[In] unsigned int featureRanges,[In] unsigned int maxGlyphCount,[Out, Buffer] unsigned short* clusterMap,[Out, Buffer] DWRITE_SHAPING_TEXT_PROPERTIES* textProps,[Out, Buffer] unsigned short* glyphIndices,[Out, Buffer] DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps,[Out] unsigned int* actualGlyphCount) Places glyphs output from the GetGlyphs method according to the font and the writing system's rendering rules. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextAnalyzer::GetGlyphPlacements([In, Buffer] const wchar_t* textString,[In, Buffer] const unsigned short* clusterMap,[In, Buffer] DWRITE_SHAPING_TEXT_PROPERTIES* textProps,[In] unsigned int textLength,[In, Buffer] const unsigned short* glyphIndices,[In, Buffer] const DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps,[In] unsigned int glyphCount,[In] IDWriteFontFace* fontFace,[In] float fontEmSize,[In] BOOL isSideways,[In] BOOL isRightToLeft,[In] const DWRITE_SCRIPT_ANALYSIS* scriptAnalysis,[In, Optional] const wchar_t* localeName,[In, Optional] const void** features,[In, Buffer, Optional] const unsigned int* featureRangeLengths,[In] unsigned int featureRanges,[Out, Buffer] float* glyphAdvances,[Out, Buffer] DWRITE_GLYPH_OFFSET* glyphOffsets) Place glyphs output from the GetGlyphs method according to the font and the writing system's rendering rules. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextAnalyzer::GetGdiCompatibleGlyphPlacements([In, Buffer] const wchar_t* textString,[In, Buffer] const unsigned short* clusterMap,[In, Buffer] DWRITE_SHAPING_TEXT_PROPERTIES* textProps,[In] unsigned int textLength,[In, Buffer] const unsigned short* glyphIndices,[In, Buffer] const DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps,[In] unsigned int glyphCount,[In] IDWriteFontFace* fontFace,[In] float fontEmSize,[In] float pixelsPerDip,[In, Optional] const DWRITE_MATRIX* transform,[In] BOOL useGdiNatural,[In] BOOL isSideways,[In] BOOL isRightToLeft,[In] const DWRITE_SCRIPT_ANALYSIS* scriptAnalysis,[In, Optional] const wchar_t* localeName,[In, Optional] const void** features,[In, Buffer, Optional] const unsigned int* featureRangeLengths,[In] unsigned int featureRanges,[Out, Buffer] float* glyphAdvances,[Out, Buffer] DWRITE_GLYPH_OFFSET* glyphOffsets) The interface describes the font and paragraph properties used to format text, and it describes locale information. IDWriteTextFormat Creates a text format object used for text layout with normal weight, style and stretch. an instance of An array of characters that contains the name of the font family The logical size of the font in DIP ("device-independent pixel") units. A DIP equals 1/96 inch. HRESULT CreateTextFormat([In] const wchar* fontFamilyName,[None] IDWriteFontCollection* fontCollection,[None] DWRITE_FONT_WEIGHT fontWeight,[None] DWRITE_FONT_STYLE fontStyle,[None] DWRITE_FONT_STRETCH fontStretch,[None] FLOAT fontSize,[In] const wchar* localeName,[Out] IDWriteTextFormat** textFormat) Creates a text format object used for text layout with normal stretch. an instance of An array of characters that contains the name of the font family A value that indicates the font weight for the text object created by this method. A value that indicates the font style for the text object created by this method. The logical size of the font in DIP ("device-independent pixel") units. A DIP equals 1/96 inch. HRESULT CreateTextFormat([In] const wchar* fontFamilyName,[None] IDWriteFontCollection* fontCollection,[None] DWRITE_FONT_WEIGHT fontWeight,[None] DWRITE_FONT_STYLE fontStyle,[None] DWRITE_FONT_STRETCH fontStretch,[None] FLOAT fontSize,[In] const wchar* localeName,[Out] IDWriteTextFormat** textFormat) Creates a text format object used for text layout. an instance of An array of characters that contains the name of the font family A value that indicates the font weight for the text object created by this method. A value that indicates the font style for the text object created by this method. A value that indicates the font stretch for the text object created by this method. The logical size of the font in DIP ("device-independent pixel") units. A DIP equals 1/96 inch. HRESULT CreateTextFormat([In] const wchar* fontFamilyName,[None] IDWriteFontCollection* fontCollection,[None] DWRITE_FONT_WEIGHT fontWeight,[None] DWRITE_FONT_STYLE fontStyle,[None] DWRITE_FONT_STRETCH fontStretch,[None] FLOAT fontSize,[In] const wchar* localeName,[Out] IDWriteTextFormat** textFormat) Creates a text format object used for text layout. an instance of An array of characters that contains the name of the font family A pointer to a font collection object. When this is NULL, indicates the system font collection. A value that indicates the font weight for the text object created by this method. A value that indicates the font style for the text object created by this method. A value that indicates the font stretch for the text object created by this method. The logical size of the font in DIP ("device-independent pixel") units. A DIP equals 1/96 inch. HRESULT CreateTextFormat([In] const wchar* fontFamilyName,[None] IDWriteFontCollection* fontCollection,[None] DWRITE_FONT_WEIGHT fontWeight,[None] DWRITE_FONT_STYLE fontStyle,[None] DWRITE_FONT_STRETCH fontStretch,[None] FLOAT fontSize,[In] const wchar* localeName,[Out] IDWriteTextFormat** textFormat) Creates a text format object used for text layout. an instance of An array of characters that contains the name of the font family A pointer to a font collection object. When this is NULL, indicates the system font collection. A value that indicates the font weight for the text object created by this method. A value that indicates the font style for the text object created by this method. A value that indicates the font stretch for the text object created by this method. The logical size of the font in DIP ("device-independent pixel") units. A DIP equals 1/96 inch. An array of characters that contains the locale name. HRESULT CreateTextFormat([In] const wchar* fontFamilyName,[None] IDWriteFontCollection* fontCollection,[None] DWRITE_FONT_WEIGHT fontWeight,[None] DWRITE_FONT_STYLE fontStyle,[None] DWRITE_FONT_STRETCH fontStretch,[None] FLOAT fontSize,[In] const wchar* localeName,[Out] IDWriteTextFormat** textFormat) Initializes a new instance of the class. The native pointer. Sets the alignment option of a paragraph relative to the layout box's top and bottom edge. The paragraph alignment option being set for a paragraph; see for more information. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextFormat::SetParagraphAlignment([In] DWRITE_PARAGRAPH_ALIGNMENT paragraphAlignment) Sets the word wrapping option. The word wrapping option being set for a paragraph; see for more information. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextFormat::SetWordWrapping([In] DWRITE_WORD_WRAPPING wordWrapping) Sets the paragraph reading direction. The text reading direction (for example, for languages, such as Arabic, that read from right to left) for a paragraph. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextFormat::SetReadingDirection([In] DWRITE_READING_DIRECTION readingDirection) Sets the paragraph flow direction. The paragraph flow direction; see for more information. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextFormat::SetFlowDirection([In] DWRITE_FLOW_DIRECTION flowDirection) Sets a fixed distance between two adjacent tab stops. The fixed distance between two adjacent tab stops. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextFormat::SetIncrementalTabStop([In] float incrementalTabStop) Sets trimming options for text overflowing the layout width. Text trimming options. Application-defined omission sign. This parameter may be null. See for more information. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextFormat::SetTrimming([In] const DWRITE_TRIMMING* trimmingOptions,[In] IDWriteInlineObject* trimmingSign) Sets the line spacing. Specifies how line height is being determined; see for more information. The line height, or distance between one baseline to another. The distance from top of line to baseline. A reasonable ratio to lineSpacing is 80 percent. If this method succeeds, it returns . Otherwise, it returns an error code. For the default method, spacing depends solely on the content. For uniform spacing, the specified line height overrides the content. HRESULT IDWriteTextFormat::SetLineSpacing([In] DWRITE_LINE_SPACING_METHOD lineSpacingMethod,[In] float lineSpacing,[In] float baseline) Gets the alignment option of text relative to the layout box's leading and trailing edge. Returns the text alignment option of the current paragraph. DWRITE_TEXT_ALIGNMENT IDWriteTextFormat::GetTextAlignment() Gets the alignment option of a paragraph which is relative to the top and bottom edges of a layout box. A value that indicates the current paragraph alignment option. DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat::GetParagraphAlignment() Gets the word wrapping option. Returns the word wrapping option; see for more information. DWRITE_WORD_WRAPPING IDWriteTextFormat::GetWordWrapping() Gets the current reading direction for text in a paragraph. A value that indicates the current reading direction for text in a paragraph. DWRITE_READING_DIRECTION IDWriteTextFormat::GetReadingDirection() Gets the direction that text lines flow. The direction that text lines flow within their parent container. For example, indicates that text lines are placed from top to bottom. DWRITE_FLOW_DIRECTION IDWriteTextFormat::GetFlowDirection() Gets the incremental tab stop position. The incremental tab stop value. float IDWriteTextFormat::GetIncrementalTabStop() Gets the trimming options for text that overflows the layout box. When this method returns, it contains a reference to a structure that holds the text trimming options for the overflowing text. When this method returns, contains an address of a reference to a trimming omission sign. This parameter may be null. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextFormat::GetTrimming([Out] DWRITE_TRIMMING* trimmingOptions,[Out] IDWriteInlineObject** trimmingSign) Gets the line spacing adjustment set for a multiline text paragraph. A value that indicates how line height is determined. When this method returns, contains the line height, or distance between one baseline to another. When this method returns, contains the distance from top of line to baseline. A reasonable ratio to lineSpacing is 80 percent. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextFormat::GetLineSpacing([Out] DWRITE_LINE_SPACING_METHOD* lineSpacingMethod,[Out] float* lineSpacing,[Out] float* baseline) Gets the current font collection. When this method returns, contains an address of a reference to the font collection being used for the current text. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextFormat::GetFontCollection([Out] IDWriteFontCollection** fontCollection) Gets the length of the font family name. The size of the character array, in character count, not including the terminated null character. unsigned int IDWriteTextFormat::GetFontFamilyNameLength() Gets a copy of the font family name. When this method returns, contains a reference to a character array, which is null-terminated, that receives the current font family name. The buffer allocated for this array should be at least the size, in elements, of nameSize. The size of the fontFamilyName character array, in character count, including the terminated null character. To find the size of fontFamilyName, use GetFontFamilyNameLength. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextFormat::GetFontFamilyName([Out, Buffer] wchar_t* fontFamilyName,[In] unsigned int nameSize) Gets the font weight of the text. A value that indicates the type of weight (such as normal, bold, or black). DWRITE_FONT_WEIGHT IDWriteTextFormat::GetFontWeight() Gets the font style of the text. A value which indicates the type of font style (such as slope or incline). DWRITE_FONT_STYLE IDWriteTextFormat::GetFontStyle() Gets the font stretch of the text. A value which indicates the type of font stretch (such as normal or condensed). DWRITE_FONT_STRETCH IDWriteTextFormat::GetFontStretch() Gets the font size in DIP unites. The current font size in DIP units. float IDWriteTextFormat::GetFontSize() Gets the length of the locale name. The size of the character array in character count, not including the terminated null character. unsigned int IDWriteTextFormat::GetLocaleNameLength() Gets a copy of the locale name. Contains a character array that receives the current locale name. The size of the character array, in character count, including the terminated null character. Use GetLocaleNameLength to get the size of the locale name character array. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextFormat::GetLocaleName([Out, Buffer] wchar_t* localeName,[In] unsigned int nameSize) Gets a copy of the font family name. the current font family name. HRESULT IDWriteTextFormat::GetFontFamilyName([Out, Buffer] wchar_t* fontFamilyName,[None] int nameSize) Gets a copy of the locale name. the current locale name. HRESULT IDWriteTextFormat::GetLocaleName([Out, Buffer] wchar_t* localeName,[None] int nameSize) Gets the alignment option of text relative to the layout box's leading and trailing edge. GetTextAlignment DWRITE_TEXT_ALIGNMENT IDWriteTextFormat::GetTextAlignment() Gets the alignment option of a paragraph which is relative to the top and bottom edges of a layout box. GetParagraphAlignment DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat::GetParagraphAlignment() Gets the word wrapping option. GetWordWrapping DWRITE_WORD_WRAPPING IDWriteTextFormat::GetWordWrapping() Gets the current reading direction for text in a paragraph. GetReadingDirection DWRITE_READING_DIRECTION IDWriteTextFormat::GetReadingDirection() Gets the direction that text lines flow. GetFlowDirection DWRITE_FLOW_DIRECTION IDWriteTextFormat::GetFlowDirection() Gets the incremental tab stop position. GetIncrementalTabStop float IDWriteTextFormat::GetIncrementalTabStop() Gets the current font collection. GetFontCollection HRESULT IDWriteTextFormat::GetFontCollection([Out] IDWriteFontCollection** fontCollection) Gets the font weight of the text. GetFontWeight DWRITE_FONT_WEIGHT IDWriteTextFormat::GetFontWeight() Gets the font style of the text. GetFontStyle DWRITE_FONT_STYLE IDWriteTextFormat::GetFontStyle() Gets the font stretch of the text. GetFontStretch DWRITE_FONT_STRETCH IDWriteTextFormat::GetFontStretch() Gets the font size in DIP unites. GetFontSize float IDWriteTextFormat::GetFontSize() The interface represents a block of text after it has been fully analyzed and formatted. IDWriteTextLayout Takes a string, text format, and associated constraints, and produces an object that represents the fully analyzed and formatted result. an instance of An array of characters that contains the string to create a new object from. This array must be of length stringLength and can contain embedded NULL characters. A pointer to an object that indicates the format to apply to the string. The width of the layout box. The height of the layout box. HRESULT CreateTextLayout([In, Buffer] const wchar* string,[None] UINT32 stringLength,[None] IDWriteTextFormat* textFormat,[None] FLOAT maxWidth,[None] FLOAT maxHeight,[Out] IDWriteTextLayout** textLayout) Create a Gdi Compatible TextLayout. Takes a string, format, and associated constraints, and produces an object representing the result, formatted for a particular display resolution and measuring mode. The resulting text layout should only be used for the intended resolution, and for cases where text scalability is desired {{CreateTextLayout}} should be used instead. an instance of An array of characters that contains the string to create a new object from. This array must be of length stringLength and can contain embedded NULL characters. The text formatting object to apply to the string. The width of the layout box. The height of the layout box. The number of physical pixels per DIP (device independent pixel). For example, if rendering onto a 96 DPI device pixelsPerDip is 1. If rendering onto a 120 DPI device pixelsPerDip is 1.25 (120/96). Instructs the text layout to use the same metrics as GDI bi-level text when set to FALSE. When set to TRUE, instructs the text layout to use the same metrics as text measured by GDI using a font created with CLEARTYPE_NATURAL_QUALITY. HRESULT IDWriteFactory::CreateGdiCompatibleTextLayout([In, Buffer] const wchar_t* string,[None] int stringLength,[None] IDWriteTextFormat* textFormat,[None] float layoutWidth,[None] float layoutHeight,[None] float pixelsPerDip,[In, Optional] const DWRITE_MATRIX* transform,[None] BOOL useGdiNatural,[Out] IDWriteTextLayout** textLayout) Create a Gdi Compatible TextLayout. Takes a string, format, and associated constraints, and produces an object representing the result, formatted for a particular display resolution and measuring mode. The resulting text layout should only be used for the intended resolution, and for cases where text scalability is desired {{CreateTextLayout}} should be used instead. an instance of An array of characters that contains the string to create a new object from. This array must be of length stringLength and can contain embedded NULL characters. The text formatting object to apply to the string. The width of the layout box. The height of the layout box. The number of physical pixels per DIP (device independent pixel). For example, if rendering onto a 96 DPI device pixelsPerDip is 1. If rendering onto a 120 DPI device pixelsPerDip is 1.25 (120/96). An optional transform applied to the glyphs and their positions. This transform is applied after the scaling specifies the font size and pixels per DIP. Instructs the text layout to use the same metrics as GDI bi-level text when set to FALSE. When set to TRUE, instructs the text layout to use the same metrics as text measured by GDI using a font created with CLEARTYPE_NATURAL_QUALITY. HRESULT IDWriteFactory::CreateGdiCompatibleTextLayout([In, Buffer] const wchar_t* string,[None] int stringLength,[None] IDWriteTextFormat* textFormat,[None] float layoutWidth,[None] float layoutHeight,[None] float pixelsPerDip,[In, Optional] const DWRITE_MATRIX* transform,[None] BOOL useGdiNatural,[Out] IDWriteTextLayout** textLayout) Draws text using the specified client drawing context. To draw text with this method, a textLayout object needs to be created by the application using . After the textLayout object is obtained, the application calls the IDWriteTextLayout::Draw method to draw the text, decorations, and inline objects. The actual drawing is done through the callback interface passed in as the textRenderer argument; there, the corresponding DrawGlyphRun API is called. Pointer to the set of callback functions used to draw parts of a text string. The x-coordinate of the layout's left side. The y-coordinate of the layout's top side. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT Draw([None] void* clientDrawingContext,[None] IDWriteTextRenderer* renderer,[None] FLOAT originX,[None] FLOAT originY) Draws text using the specified client drawing context. To draw text with this method, a textLayout object needs to be created by the application using . After the textLayout object is obtained, the application calls the IDWriteTextLayout::Draw method to draw the text, decorations, and inline objects. The actual drawing is done through the callback interface passed in as the textRenderer argument; there, the corresponding DrawGlyphRun API is called. An application-defined drawing context. Pointer to the set of callback functions used to draw parts of a text string. The x-coordinate of the layout's left side. The y-coordinate of the layout's top side. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT Draw([None] void* clientDrawingContext,[None] IDWriteTextRenderer* renderer,[None] FLOAT originX,[None] FLOAT originY) Retrieves logical properties and measurements of each glyph cluster. If maxClusterCount is not large enough, then E_NOT_SUFFICIENT_BUFFER, which is equivalent to HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), is returned and actualClusterCount is set to the number of clusters needed. Returns metrics, such as line-break or total advance width, for a glyph cluster. HRESULT IDWriteTextLayout::GetClusterMetrics([Out, Buffer, Optional] DWRITE_CLUSTER_METRICS* clusterMetrics,[None] int maxClusterCount,[Out] int* actualClusterCount) Sets the application-defined drawing effect. An , such as a color or gradient brush, can be set as a drawing effect if you are using the to draw text and that brush will be used to draw the specified range of text. This drawing effect is associated with the specified range and will be passed back to the application by way of the callback when the range is drawn at drawing time. Application-defined drawing effects that apply to the range. This data object will be passed back to the application's drawing callbacks for final rendering. The text range to which this change applies. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT IDWriteTextLayout::SetDrawingEffect([None] IUnknown* drawingEffect,[None] DWRITE_TEXT_RANGE textRange) Gets the application-defined drawing effect at the specified text position. The position of the text whose drawing effect is to be retrieved. a reference to the current application-defined drawing effect. Usually this effect is a foreground brush that is used in glyph drawing. HRESULT IDWriteTextLayout::GetDrawingEffect([None] int currentPosition,[Out] IUnknown** drawingEffect,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the application-defined drawing effect at the specified text position. The position of the text whose drawing effect is to be retrieved. Contains the range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to the drawing effect. a reference to the current application-defined drawing effect. Usually this effect is a foreground brush that is used in glyph drawing. HRESULT IDWriteTextLayout::GetDrawingEffect([None] int currentPosition,[Out] IUnknown** drawingEffect,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the font collection associated with the text at the specified position. The position of the text to inspect. a reference to the current font collection. HRESULT IDWriteTextLayout::GetFontCollection([None] int currentPosition,[Out] IDWriteFontCollection** fontCollection,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the font family name of the text at the specified position. The position of the text to examine. the font family name HRESULT IDWriteTextLayout::GetFontFamilyName([None] int currentPosition,[Out, Buffer] wchar_t* fontFamilyName,[None] int nameSize,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the font family name of the text at the specified position. The position of the text to examine. The range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to the font family name. the font family name HRESULT IDWriteTextLayout::GetFontFamilyName([None] int currentPosition,[Out, Buffer] wchar_t* fontFamilyName,[None] int nameSize,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the font em height of the text at the specified position. The position of the text to inspect. the size of the font in ems of the text at the specified position. HRESULT IDWriteTextLayout::GetFontSize([None] int currentPosition,[Out] float* fontSize,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the font stretch of the text at the specified position. The position of the text to inspect. a value which indicates the type of font stretch (also known as width) being applied at the specified position. HRESULT IDWriteTextLayout::GetFontStretch([None] int currentPosition,[Out] DWRITE_FONT_STRETCH* fontStretch,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the font style (also known as slope) of the text at the specified position. The position of the text to inspect. a value which indicates the type of font style (also known as slope or incline) being applied at the specified position. HRESULT IDWriteTextLayout::GetFontStyle([None] int currentPosition,[Out] DWRITE_FONT_STYLE* fontStyle,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the font weight of the text at the specified position. The position of the text to inspect. a value which indicates the type of font weight being applied at the specified position. HRESULT IDWriteTextLayout::GetFontWeight([None] int currentPosition,[Out] DWRITE_FONT_WEIGHT* fontWeight,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the inline object at the specified position. The specified text position. an application-defined inline object. HRESULT IDWriteTextLayout::GetInlineObject([None] int currentPosition,[Out] IDWriteInlineObject** inlineObject,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Retrieves the information about each individual text line of the text string. If maxLineCount is not large enough E_NOT_SUFFICIENT_BUFFER, which is equivalent to HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), is returned and *actualLineCount is set to the number of lines needed. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT IDWriteTextLayout::GetLineMetrics([Out, Buffer, Optional] DWRITE_LINE_METRICS* lineMetrics,[None] int maxLineCount,[Out] int* actualLineCount) Gets the locale name of the text at the specified position. The position of the text to inspect. the locale name of the text at the specified position. HRESULT IDWriteTextLayout::GetLocaleName([None] int currentPosition,[Out, Buffer] wchar_t* localeName,[None] int nameSize,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the locale name of the text at the specified position. The position of the text to inspect. The range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to the locale name. the locale name of the text at the specified position. HRESULT IDWriteTextLayout::GetLocaleName([None] int currentPosition,[Out, Buffer] wchar_t* localeName,[None] int nameSize,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Get the strikethrough presence of the text at the specified position. The position of the text to inspect. A Boolean flag that indicates whether strikethrough is present at the position indicated by currentPosition. HRESULT IDWriteTextLayout::GetStrikethrough([None] int currentPosition,[Out] BOOL* hasStrikethrough,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the typography setting of the text at the specified position. The position of the text to inspect. a reference to the current typography setting. HRESULT IDWriteTextLayout::GetTypography([None] int currentPosition,[Out] IDWriteTypography** typography,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the underline presence of the text at the specified position. The current text position. A Boolean flag that indicates whether underline is present at the position indicated by currentPosition. HRESULT IDWriteTextLayout::GetUnderline([None] int currentPosition,[Out] BOOL* hasUnderline,[Out, Optional] DWRITE_TEXT_RANGE* textRange) The application calls this function to get a set of hit-test metrics corresponding to a range of text positions. One of the main usages is to implement highlight selection of the text string. The function returns E_NOT_SUFFICIENT_BUFFER, which is equivalent to HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), when the buffer size of hitTestMetrics is too small to hold all the regions calculated by the function. In this situation, the function sets the output value *actualHitTestMetricsCount to the number of geometries calculated. The application is responsible for allocating a new buffer of greater size and calling the function again. A good value to use as an initial value for maxHitTestMetricsCount may be calculated from the following equation: maxHitTestMetricsCount = lineCount * maxBidiReorderingDepth where lineCount is obtained from the value of the output argument *actualLineCount (from the function IDWriteTextLayout::GetLineLengths), and the maxBidiReorderingDepth value from the DWRITE_TEXT_METRICS structure of the output argument *textMetrics (from the function IDWriteFactory::CreateTextLayout). The first text position of the specified range. The number of positions of the specified range. The origin pixel location X at the left of the layout box. This offset is added to the hit-test metrics returned. The origin pixel location Y at the top of the layout box. This offset is added to the hit-test metrics returned. a reference to a buffer of the output geometry fully enclosing the specified position range. The buffer must be at least as large as maxHitTestMetricsCount. HRESULT IDWriteTextLayout::HitTestTextRange([None] int textPosition,[None] int textLength,[None] float originX,[None] float originY,[Out, Buffer, Optional] DWRITE_HIT_TEST_METRICS* hitTestMetrics,[None] int maxHitTestMetricsCount,[Out] int* actualHitTestMetricsCount) Sets the inline object. The application may call this function to specify the set of properties describing an application-defined inline object for specific range. This inline object applies to the specified range and will be passed back to the application by way of the DrawInlineObject callback when the range is drawn. Any text in that range will be suppressed. An application-defined inline object. Text range to which this change applies. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT IDWriteTextLayout::SetInlineObject([None] IDWriteInlineObject* inlineObject,[None] DWRITE_TEXT_RANGE textRange) Initializes a new instance of the class. The native pointer. Sets the layout maximum width. A value that indicates the maximum width of the layout box. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextLayout::SetMaxWidth([In] float maxWidth) Sets the layout maximum height. A value that indicates the maximum height of the layout box. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextLayout::SetMaxHeight([In] float maxHeight) Sets the font collection. The font collection to set. Text range to which this change applies. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextLayout::SetFontCollection([In] IDWriteFontCollection* fontCollection,[In] DWRITE_TEXT_RANGE textRange) Sets null-terminated font family name for text within a specified text range. The font family name that applies to the entire text string within the range specified by textRange. Text range to which this change applies. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextLayout::SetFontFamilyName([In] const wchar_t* fontFamilyName,[In] DWRITE_TEXT_RANGE textRange) Sets the font weight for text within a text range specified by a structure. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. The font weight can be set to one of the predefined font weight values provided in the enumeration or an integer from 1 to 999. Values outside this range will cause the method to fail with an E_INVALIDARG return value.The following illustration shows an example of Normal and UltraBold weights for the Palatino Linotype typeface. HRESULT IDWriteTextLayout::SetFontWeight([In] DWRITE_FONT_WEIGHT fontWeight,[In] DWRITE_TEXT_RANGE textRange) Sets the font style for text within a text range specified by a structure. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. The font style can be set to Normal, Italic or Oblique. The following illustration shows three styles for the Palatino font. For more information, see . HRESULT IDWriteTextLayout::SetFontStyle([In] DWRITE_FONT_STYLE fontStyle,[In] DWRITE_TEXT_RANGE textRange) Sets the font stretch for text within a specified text range. A value which indicates the type of font stretch for text within the range specified by textRange. Text range to which this change applies. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextLayout::SetFontStretch([In] DWRITE_FONT_STRETCH fontStretch,[In] DWRITE_TEXT_RANGE textRange) Sets the font size in DIP units for text within a specified text range. The font size in DIP units to be set for text in the range specified by textRange. Text range to which this change applies. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextLayout::SetFontSize([In] float fontSize,[In] DWRITE_TEXT_RANGE textRange) Sets underlining for text within a specified text range. A Boolean flag that indicates whether underline takes place within a specified text range. Text range to which this change applies. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextLayout::SetUnderline([In] BOOL hasUnderline,[In] DWRITE_TEXT_RANGE textRange) Sets strikethrough for text within a specified text range. A Boolean flag that indicates whether strikethrough takes place in the range specified by textRange. Text range to which this change applies. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextLayout::SetStrikethrough([In] BOOL hasStrikethrough,[In] DWRITE_TEXT_RANGE textRange) Sets the application-defined drawing effect. Application-defined drawing effects that apply to the range. This data object will be passed back to the application's drawing callbacks for final rendering. The text range to which this change applies. If this method succeeds, it returns . Otherwise, it returns an error code. An , such as a color or gradient brush, can be set as a drawing effect if you are using the to draw text and that brush will be used to draw the specified range of text.This drawing effect is associated with the specified range and will be passed back to the application by way of the callback when the range is drawn at drawing time. HRESULT IDWriteTextLayout::SetDrawingEffect([In] void* drawingEffect,[In] DWRITE_TEXT_RANGE textRange) Sets the inline object. An application-defined inline object. Text range to which this change applies. If this method succeeds, it returns . Otherwise, it returns an error code. The application may call this function to specify the set of properties describing an application-defined inline object for specific range.This inline object applies to the specified range and will be passed back to the application by way of the DrawInlineObject callback when the range is drawn. Any text in that range will be suppressed. HRESULT IDWriteTextLayout::SetInlineObject([In] IDWriteInlineObject* inlineObject,[In] DWRITE_TEXT_RANGE textRange) Sets font typography features for text within a specified text range. Pointer to font typography settings. Text range to which this change applies. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextLayout::SetTypography([In] IDWriteTypography* typography,[In] DWRITE_TEXT_RANGE textRange) Sets the locale name for text within a specified text range. A null-terminated locale name string. Text range to which this change applies. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextLayout::SetLocaleName([In] const wchar_t* localeName,[In] DWRITE_TEXT_RANGE textRange) Gets the layout maximum width. Returns the layout maximum width. float IDWriteTextLayout::GetMaxWidth() Gets the layout maximum height. The layout maximum height. float IDWriteTextLayout::GetMaxHeight() Gets the font collection associated with the text at the specified position. The position of the text to inspect. The range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to the underline. Contains an address of a reference to the current font collection. HRESULT IDWriteTextLayout::GetFontCollection([In] unsigned int currentPosition,[Out] IDWriteFontCollection** fontCollection,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Get the length of the font family name at the current position. The current text position. When this method returns, contains the size of the character array containing the font family name, in character count, not including the terminated null character. The range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to the font family. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextLayout::GetFontFamilyNameLength([In] unsigned int currentPosition,[Out] unsigned int* nameLength,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Copies the font family name of the text at the specified position. The position of the text to examine. When this method returns, contains an array of characters that receives the current font family name. You must allocate storage for this parameter. The size of the character array in character count including the terminated null character. The range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to the font family name. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextLayout::GetFontFamilyName([In] unsigned int currentPosition,[Out, Buffer] wchar_t* fontFamilyName,[In] unsigned int nameSize,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the font weight of the text at the specified position. The position of the text to inspect. The range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to the font weight. When this method returns, contains a value which indicates the type of font weight being applied at the specified position. HRESULT IDWriteTextLayout::GetFontWeight([In] unsigned int currentPosition,[Out] DWRITE_FONT_WEIGHT* fontWeight,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the font style (also known as slope) of the text at the specified position. The position of the text to inspect. The range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to the font style. When this method returns, contains a value which indicates the type of font style (also known as slope or incline) being applied at the specified position. HRESULT IDWriteTextLayout::GetFontStyle([In] unsigned int currentPosition,[Out] DWRITE_FONT_STYLE* fontStyle,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the font stretch of the text at the specified position. The position of the text to inspect. The range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to the font stretch. When this method returns, contains a value which indicates the type of font stretch (also known as width) being applied at the specified position. HRESULT IDWriteTextLayout::GetFontStretch([In] unsigned int currentPosition,[Out] DWRITE_FONT_STRETCH* fontStretch,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the font em height of the text at the specified position. The position of the text to inspect. The range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to the font size. When this method returns, contains the size of the font in ems of the text at the specified position. HRESULT IDWriteTextLayout::GetFontSize([In] unsigned int currentPosition,[Out] float* fontSize,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the underline presence of the text at the specified position. The current text position. The range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to the underline. A Boolean flag that indicates whether underline is present at the position indicated by currentPosition. HRESULT IDWriteTextLayout::GetUnderline([In] unsigned int currentPosition,[Out] BOOL* hasUnderline,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Get the strikethrough presence of the text at the specified position. The position of the text to inspect. Contains the range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to strikethrough. A Boolean flag that indicates whether strikethrough is present at the position indicated by currentPosition. HRESULT IDWriteTextLayout::GetStrikethrough([In] unsigned int currentPosition,[Out] BOOL* hasStrikethrough,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the application-defined drawing effect at the specified text position. The position of the text whose drawing effect is to be retrieved. Contains the range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to the drawing effect. When this method returns, contains an address of a reference to the current application-defined drawing effect. Usually this effect is a foreground brush that is used in glyph drawing. HRESULT IDWriteTextLayout::GetDrawingEffect([In] unsigned int currentPosition,[Out] void** drawingEffect,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the inline object at the specified position. The specified text position. The range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to the inline object. Contains the application-defined inline object. HRESULT IDWriteTextLayout::GetInlineObject([In] unsigned int currentPosition,[Out] IDWriteInlineObject** inlineObject,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the typography setting of the text at the specified position. The position of the text to inspect. The range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to the typography. When this method returns, contains an address of a reference to the current typography setting. HRESULT IDWriteTextLayout::GetTypography([In] unsigned int currentPosition,[Out] IDWriteTypography** typography,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the length of the locale name of the text at the specified position. The position of the text to inspect. Size of the character array, in character count, not including the terminated null character. The range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to the locale name. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextLayout::GetLocaleNameLength([In] unsigned int currentPosition,[Out] unsigned int* nameLength,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Gets the locale name of the text at the specified position. The position of the text to inspect. When this method returns, contains the character array receiving the current locale name. Size of the character array, in character count, including the terminated null character. The range of text that has the same formatting as the text at the position specified by currentPosition. This means the run has the exact formatting as the position specified, including but not limited to the locale name. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextLayout::GetLocaleName([In] unsigned int currentPosition,[Out, Buffer] wchar_t* localeName,[In] unsigned int nameSize,[Out, Optional] DWRITE_TEXT_RANGE* textRange) Draws text using the specified client drawing context. An application-defined drawing context. Pointer to the set of callback functions used to draw parts of a text string. The x-coordinate of the layout's left side. The y-coordinate of the layout's top side. If this method succeeds, it returns . Otherwise, it returns an error code. To draw text with this method, a textLayout object needs to be created by the application using .After the textLayout object is obtained, the application calls the method to draw the text, decorations, and inline objects. The actual drawing is done through the callback interface passed in as the textRenderer argument; there, the corresponding DrawGlyphRun API is called. HRESULT IDWriteTextLayout::Draw([In, Optional] void* clientDrawingContext,[In] IDWriteTextRenderer* renderer,[In] float originX,[In] float originY) Retrieves the information about each individual text line of the text string. When this method returns, contains a reference to an array of structures containing various calculated length values of individual text lines. The maximum size of the lineMetrics array. When this method returns, contains the actual size of the lineMetrics array that is needed. If this method succeeds, it returns . Otherwise, it returns an error code. If maxLineCount is not large enough E_NOT_SUFFICIENT_BUFFER, which is equivalent to HRESULT_FROM_WIN32(), is returned and *actualLineCount is set to the number of lines needed. HRESULT IDWriteTextLayout::GetLineMetrics([Out, Buffer, Optional] DWRITE_LINE_METRICS* lineMetrics,[In] unsigned int maxLineCount,[Out] unsigned int* actualLineCount) Retrieves overall metrics for the formatted string. When this method returns, contains the measured distances of text and associated content after being formatted. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextLayout::GetMetrics([Out] DWRITE_TEXT_METRICS* textMetrics) Returns the overhangs (in DIPs) of the layout and all objects contained in it, including text glyphs and inline objects. Overshoots of visible extents (in DIPs) outside the layout. If this method succeeds, it returns . Otherwise, it returns an error code. Underlines and strikethroughs do not contribute to the black box determination, since these are actually drawn by the renderer, which is allowed to draw them in any variety of styles. HRESULT IDWriteTextLayout::GetOverhangMetrics([Out] DWRITE_OVERHANG_METRICS* overhangs) Retrieves logical properties and measurements of each glyph cluster. When this method returns, contains metrics, such as line-break or total advance width, for a glyph cluster. The maximum size of the clusterMetrics array. When this method returns, contains the actual size of the clusterMetrics array that is needed. If this method succeeds, it returns . Otherwise, it returns an error code. If maxClusterCount is not large enough, then E_NOT_SUFFICIENT_BUFFER, which is equivalent to HRESULT_FROM_WIN32(), is returned and actualClusterCount is set to the number of clusters needed. HRESULT IDWriteTextLayout::GetClusterMetrics([Out, Buffer, Optional] DWRITE_CLUSTER_METRICS* clusterMetrics,[In] unsigned int maxClusterCount,[Out] unsigned int* actualClusterCount) Determines the minimum possible width the layout can be set to without emergency breaking between the characters of whole words occurring. Minimum width. HRESULT IDWriteTextLayout::DetermineMinWidth([Out] float* minWidth) The application calls this function passing in a specific pixel location relative to the top-left location of the layout box and obtains the information about the correspondent hit-test metrics of the text string where the hit-test has occurred. When the specified pixel location is outside the text string, the function sets the output value *isInside to . The pixel location X to hit-test, relative to the top-left location of the layout box. The pixel location Y to hit-test, relative to the top-left location of the layout box. An output flag that indicates whether the hit-test location is at the leading or the trailing side of the character. When the output *isInside value is set to , this value is set according to the output hitTestMetrics->textPosition value to represent the edge closest to the hit-test location. An output flag that indicates whether the hit-test location is inside the text string. When , the position nearest the text's edge is returned. The output geometry fully enclosing the hit-test location. When the output *isInside value is set to , this structure represents the geometry enclosing the edge closest to the hit-test location. HRESULT IDWriteTextLayout::HitTestPoint([In] float pointX,[In] float pointY,[Out] BOOL* isTrailingHit,[Out] BOOL* isInside,[Out] DWRITE_HIT_TEST_METRICS* hitTestMetrics) The application calls this function to get the pixel location relative to the top-left of the layout box given the text position and the logical side of the position. This function is normally used as part of caret positioning of text where the caret is drawn at the location corresponding to the current text editing position. It may also be used as a way to programmatically obtain the geometry of a particular text position in UI automation. The text position used to get the pixel location. A Boolean flag that indicates whether the pixel location is of the leading or the trailing side of the specified text position. When this method returns, contains the output pixel location X, relative to the top-left location of the layout box. When this method returns, contains the output pixel location Y, relative to the top-left location of the layout box. When this method returns, contains the output geometry fully enclosing the specified text position. HRESULT IDWriteTextLayout::HitTestTextPosition([In] unsigned int textPosition,[In] BOOL isTrailingHit,[Out] float* pointX,[Out] float* pointY,[Out] DWRITE_HIT_TEST_METRICS* hitTestMetrics) The application calls this function to get a set of hit-test metrics corresponding to a range of text positions. One of the main usages is to implement highlight selection of the text string. The function returns E_NOT_SUFFICIENT_BUFFER, which is equivalent to HRESULT_FROM_WIN32(), when the buffer size of hitTestMetrics is too small to hold all the regions calculated by the function. In this situation, the function sets the output value *actualHitTestMetricsCount to the number of geometries calculated. The application is responsible for allocating a new buffer of greater size and calling the function again. A good value to use as an initial value for maxHitTestMetricsCount may be calculated from the following equation: maxHitTestMetricsCount = lineCount * maxBidiReorderingDepth where lineCount is obtained from the value of the output argument *actualLineCount (from the function IDWriteTextLayout::GetLineLengths), and the maxBidiReorderingDepth value from the structure of the output argument *textMetrics (from the function ). The first text position of the specified range. The number of positions of the specified range. The origin pixel location X at the left of the layout box. This offset is added to the hit-test metrics returned. The origin pixel location Y at the top of the layout box. This offset is added to the hit-test metrics returned. When this method returns, contains a reference to a buffer of the output geometry fully enclosing the specified position range. The buffer must be at least as large as maxHitTestMetricsCount. Maximum number of boxes hitTestMetrics could hold in its buffer memory. Actual number of geometries hitTestMetrics holds in its buffer memory. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTextLayout::HitTestTextRange([In] unsigned int textPosition,[In] unsigned int textLength,[In] float originX,[In] float originY,[Out, Buffer, Optional] DWRITE_HIT_TEST_METRICS* hitTestMetrics,[In] unsigned int maxHitTestMetricsCount,[Out] unsigned int* actualHitTestMetricsCount) Gets the layout maximum width. GetMaxWidth float IDWriteTextLayout::GetMaxWidth() Gets the layout maximum height. GetMaxHeight float IDWriteTextLayout::GetMaxHeight() Retrieves overall metrics for the formatted string. GetMetrics HRESULT IDWriteTextLayout::GetMetrics([Out] DWRITE_TEXT_METRICS* textMetrics) Returns the overhangs (in DIPs) of the layout and all objects contained in it, including text glyphs and inline objects. Underlines and strikethroughs do not contribute to the black box determination, since these are actually drawn by the renderer, which is allowed to draw them in any variety of styles. GetOverhangMetrics HRESULT IDWriteTextLayout::GetOverhangMetrics([Out] DWRITE_OVERHANG_METRICS* overhangs) Specifies a range of text positions where format is applied in the text represented by an object. DWRITE_TEXT_RANGE Initializes a new instance of the struct. The start position. The length. No documentation. unsigned int startPosition No documentation. unsigned int length Represents a set of application-defined callbacks that perform rendering of text, inline objects, and decorations such as underlines. IDWriteTextRenderer IDWriteTextLayout::Draw calls this function to instruct the client to render a run of glyphs. The function calls this callback function with all the information about glyphs to render. The application implements this callback by mostly delegating the call to the underlying platform's graphics API such as {{Direct2D}} to draw glyphs on the drawing context. An application that uses GDI can implement this callback in terms of the method. The application-defined drawing context passed to . The pixel location (X-coordinate) at the baseline origin of the glyph run. The pixel location (Y-coordinate) at the baseline origin of the glyph run. The measuring method for glyphs in the run, used with the other properties to determine the rendering mode. Pointer to the glyph run instance to render. A pointer to the optional glyph run description instance which contains properties of the characters associated with this run. Application-defined drawing effects for the glyphs to render. Usually this argument represents effects such as the foreground brush filling the interior of text. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT DrawGlyphRun([None] void* clientDrawingContext,[None] FLOAT baselineOriginX,[None] FLOAT baselineOriginY,[None] DWRITE_MEASURING_MODE measuringMode,[In] const DWRITE_GLYPH_RUN* glyphRun,[In] const DWRITE_GLYPH_RUN_DESCRIPTION* glyphRunDescription,[None] IUnknown* clientDrawingEffect) IDWriteTextLayout::Draw calls this function to instruct the client to draw an underline. A single underline can be broken into multiple calls, depending on how the formatting changes attributes. If font sizes/styles change within an underline, the thickness and offset will be averaged weighted according to characters. To get an appropriate starting pixel position, add underline::offset to the baseline. Otherwise there will be no spacing between the text. The x coordinate will always be passed as the left side, regardless of text directionality. This simplifies drawing and reduces the problem of round-off that could potentially cause gaps or a double stamped alpha blend. To avoid alpha overlap, round the end points to the nearest device pixel. The application-defined drawing context passed to IDWriteTextLayout::Draw. The pixel location (X-coordinate) at the baseline origin of the run where underline applies. The pixel location (Y-coordinate) at the baseline origin of the run where underline applies. Pointer to a structure containing underline logical information. Application-defined effect to apply to the underline. Usually this argument represents effects such as the foreground brush filling the interior of a line. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT DrawUnderline([None] void* clientDrawingContext,[None] FLOAT baselineOriginX,[None] FLOAT baselineOriginY,[In] const DWRITE_UNDERLINE* underline,[None] IUnknown* clientDrawingEffect) IDWriteTextLayout::Draw calls this function to instruct the client to draw a strikethrough. A single strikethrough can be broken into multiple calls, depending on how the formatting changes attributes. Strikethrough is not averaged across font sizes/styles changes. To get an appropriate starting pixel position, add strikethrough::offset to the baseline. Like underlines, the x coordinate will always be passed as the left side, regardless of text directionality. The application-defined drawing context passed to IDWriteTextLayout::Draw. The pixel location (X-coordinate) at the baseline origin of the run where strikethrough applies. The pixel location (Y-coordinate) at the baseline origin of the run where strikethrough applies. Pointer to a structure containing strikethrough logical information. Application-defined effect to apply to the strikethrough. Usually this argument represents effects such as the foreground brush filling the interior of a line. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT DrawStrikethrough([None] void* clientDrawingContext,[None] FLOAT baselineOriginX,[None] FLOAT baselineOriginY,[In] const DWRITE_STRIKETHROUGH* strikethrough,[None] IUnknown* clientDrawingEffect) IDWriteTextLayout::Draw calls this application callback when it needs to draw an inline object. The application-defined drawing context passed to IDWriteTextLayout::Draw. X-coordinate at the top-left corner of the inline object. Y-coordinate at the top-left corner of the inline object. The application-defined inline object set using IDWriteTextFormat::SetInlineObject. A Boolean flag that indicates whether the object's baseline runs alongside the baseline axis of the line. A Boolean flag that indicates whether the object is in a right-to-left context, hinting that the drawing may want to mirror the normal image. Application-defined drawing effects for the glyphs to render. Usually this argument represents effects such as the foreground brush filling the interior of a line. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT DrawInlineObject([None] void* clientDrawingContext,[None] FLOAT originX,[None] FLOAT originY,[None] IDWriteInlineObject* inlineObject,[None] BOOL isSideways,[None] BOOL isRightToLeft,[None] IUnknown* clientDrawingEffect) Describes the pixel format and dpi of a bitmap. D2D1_BITMAP_PROPERTIES Initializes a new instance of the struct. The pixel format. Initializes a new instance of the struct. The pixel format. The dpi X. The dpi Y. The bitmap's pixel format and alpha mode. D2D1_PIXEL_FORMAT pixelFormat The horizontal dpi of the bitmap. float dpiX The vertical dpi of the bitmap. float dpiY Renders to an intermediate texture created by the CreateCompatibleRenderTarget method. ID2D1BitmapRenderTarget Creates a bitmap render target for use during intermediate offscreen drawing that is compatible with the current render targe with same size, pixel size and pixel format. an instance of A value that specifies whether the new render target must be compatible with GDI. HRESULT CreateCompatibleRenderTarget([In, Optional] const D2D1_SIZE_F* desiredSize,[In, Optional] const D2D1_SIZE_U* desiredPixelSize,[In, Optional] const D2D1_PIXEL_FORMAT* desiredFormat,[None] D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options,[Out] ID2D1BitmapRenderTarget** bitmapRenderTarget) Creates a bitmap render target for use during intermediate offscreen drawing that is compatible with the current render target with same pixel size and pixel format. an instance of A value that specifies whether the new render target must be compatible with GDI. The desired size of the new render target in device-independent pixels if it should be different from the original render target. For more information, see the Remarks section. HRESULT CreateCompatibleRenderTarget([In, Optional] const D2D1_SIZE_F* desiredSize,[In, Optional] const D2D1_SIZE_U* desiredPixelSize,[In, Optional] const D2D1_PIXEL_FORMAT* desiredFormat,[None] D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options,[Out] ID2D1BitmapRenderTarget** bitmapRenderTarget) Creates a bitmap render target for use during intermediate offscreen drawing that is compatible with the current render target with same size and pixel size. an instance of The desired pixel format and alpha mode of the new render target. If the pixel format is set to DXGI_FORMAT_UNKNOWN, the new render target uses the same pixel format as the original render target. If the alpha mode is , the alpha mode of the new render target defaults to D2D1_ALPHA_MODE_PREMULTIPLIED. For information about supported pixel formats, see {{Supported Pixel Formats and Alpha Modes}}. A value that specifies whether the new render target must be compatible with GDI. HRESULT CreateCompatibleRenderTarget([In, Optional] const D2D1_SIZE_F* desiredSize,[In, Optional] const D2D1_SIZE_U* desiredPixelSize,[In, Optional] const D2D1_PIXEL_FORMAT* desiredFormat,[None] D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options,[Out] ID2D1BitmapRenderTarget** bitmapRenderTarget) Creates a bitmap render target for use during intermediate offscreen drawing that is compatible with the current render target. The pixel size and DPI of the new render target can be altered by specifying values for desiredSize or desiredPixelSize: If desiredSize is specified but desiredPixelSize is not, the pixel size is computed from the desired size using the parent target DPI. If the desiredSize maps to a integer-pixel size, the DPI of the compatible render target is the same as the DPI of the parent target. If desiredSize maps to a fractional-pixel size, the pixel size is rounded up to the nearest integer and the DPI for the compatible render target is slightly higher than the DPI of the parent render target. In all cases, the coordinate (desiredSize.width, desiredSize.height) maps to the lower-right corner of the compatible render target.If the desiredPixelSize is specified and desiredSize is not, the DPI of the new render target is the same as the original render target.If both desiredSize and desiredPixelSize are specified, the DPI of the new render target is computed to account for the difference in scale.If neither desiredSize nor desiredPixelSize is specified, the new render target size and DPI match the original render target. an instance of The desired size of the new render target in device-independent pixels if it should be different from the original render target. For more information, see the Remarks section. The desired size of the new render target in pixels if it should be different from the original render target. For more information, see the Remarks section. The desired pixel format and alpha mode of the new render target. If the pixel format is set to DXGI_FORMAT_UNKNOWN, the new render target uses the same pixel format as the original render target. If the alpha mode is , the alpha mode of the new render target defaults to D2D1_ALPHA_MODE_PREMULTIPLIED. For information about supported pixel formats, see {{Supported Pixel Formats and Alpha Modes}}. A value that specifies whether the new render target must be compatible with GDI. HRESULT CreateCompatibleRenderTarget([In, Optional] const D2D1_SIZE_F* desiredSize,[In, Optional] const D2D1_SIZE_U* desiredPixelSize,[In, Optional] const D2D1_PIXEL_FORMAT* desiredFormat,[None] D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options,[Out] ID2D1BitmapRenderTarget** bitmapRenderTarget) Initializes a new instance of the class. The native pointer. Retrieves the bitmap for this render target. The returned bitmap can be used for drawing operations. When this method returns, contains the address of a reference to the bitmap for this render target. This bitmap can be used for drawing operations. If this method succeeds, it returns . Otherwise, it returns an error code. The DPI for the obtained from GetBitmap will be the DPI of the when the render target was created. Changing the DPI of the by calling SetDpi doesn't affect the DPI of the bitmap, even if SetDpi is called before GetBitmap. Using SetDpi to change the DPI of the does affect how contents are rendered into the bitmap: it just doesn't affect the DPI of the bitmap retrieved by GetBitmap. HRESULT ID2D1BitmapRenderTarget::GetBitmap([Out] ID2D1Bitmap** bitmap) Retrieves the bitmap for this render target. The returned bitmap can be used for drawing operations. The DPI for the obtained from GetBitmap will be the DPI of the when the render target was created. Changing the DPI of the by calling SetDpi doesn't affect the DPI of the bitmap, even if SetDpi is called before GetBitmap. Using SetDpi to change the DPI of the does affect how contents are rendered into the bitmap: it just doesn't affect the DPI of the bitmap retrieved by GetBitmap. GetBitmap HRESULT ID2D1BitmapRenderTarget::GetBitmap([Out] ID2D1Bitmap** bitmap) Default abstract implementation of TextRenderer. Need to implement a least a DrawXXX method to use it. Determines whether pixel snapping is disabled. The recommended default is FALSE, unless doing animation that requires subpixel vertical placement. The context passed to IDWriteTextLayout::Draw. Receives TRUE if pixel snapping is disabled or FALSE if it not. HRESULT IsPixelSnappingDisabled([None] void* clientDrawingContext,[Out] BOOL* isDisabled) Gets a transform that maps abstract coordinates to DIPs. The drawing context passed to . a structure which has transform information for pixel snapping. HRESULT GetCurrentTransform([None] void* clientDrawingContext,[Out] DWRITE_MATRIX* transform) Gets the number of physical pixels per DIP. Because a DIP (device-independent pixel) is 1/96 inch, the pixelsPerDip value is the number of logical pixels per inch divided by 96. The drawing context passed to . the number of physical pixels per DIP HRESULT GetPixelsPerDip([None] void* clientDrawingContext,[Out] FLOAT* pixelsPerDip) IDWriteTextLayout::Draw calls this function to instruct the client to render a run of glyphs. The function calls this callback function with all the information about glyphs to render. The application implements this callback by mostly delegating the call to the underlying platform's graphics API such as {{Direct2D}} to draw glyphs on the drawing context. An application that uses GDI can implement this callback in terms of the method. The application-defined drawing context passed to . The pixel location (X-coordinate) at the baseline origin of the glyph run. The pixel location (Y-coordinate) at the baseline origin of the glyph run. The measuring method for glyphs in the run, used with the other properties to determine the rendering mode. Pointer to the glyph run instance to render. A pointer to the optional glyph run description instance which contains properties of the characters associated with this run. Application-defined drawing effects for the glyphs to render. Usually this argument represents effects such as the foreground brush filling the interior of text. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT DrawGlyphRun([None] void* clientDrawingContext,[None] FLOAT baselineOriginX,[None] FLOAT baselineOriginY,[None] DWRITE_MEASURING_MODE measuringMode,[In] const DWRITE_GLYPH_RUN* glyphRun,[In] const DWRITE_GLYPH_RUN_DESCRIPTION* glyphRunDescription,[None] IUnknown* clientDrawingEffect) IDWriteTextLayout::Draw calls this function to instruct the client to draw an underline. A single underline can be broken into multiple calls, depending on how the formatting changes attributes. If font sizes/styles change within an underline, the thickness and offset will be averaged weighted according to characters. To get an appropriate starting pixel position, add underline::offset to the baseline. Otherwise there will be no spacing between the text. The x coordinate will always be passed as the left side, regardless of text directionality. This simplifies drawing and reduces the problem of round-off that could potentially cause gaps or a double stamped alpha blend. To avoid alpha overlap, round the end points to the nearest device pixel. The application-defined drawing context passed to IDWriteTextLayout::Draw. The pixel location (X-coordinate) at the baseline origin of the run where underline applies. The pixel location (Y-coordinate) at the baseline origin of the run where underline applies. Pointer to a structure containing underline logical information. Application-defined effect to apply to the underline. Usually this argument represents effects such as the foreground brush filling the interior of a line. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT DrawUnderline([None] void* clientDrawingContext,[None] FLOAT baselineOriginX,[None] FLOAT baselineOriginY,[In] const DWRITE_UNDERLINE* underline,[None] IUnknown* clientDrawingEffect) IDWriteTextLayout::Draw calls this function to instruct the client to draw a strikethrough. A single strikethrough can be broken into multiple calls, depending on how the formatting changes attributes. Strikethrough is not averaged across font sizes/styles changes. To get an appropriate starting pixel position, add strikethrough::offset to the baseline. Like underlines, the x coordinate will always be passed as the left side, regardless of text directionality. The application-defined drawing context passed to IDWriteTextLayout::Draw. The pixel location (X-coordinate) at the baseline origin of the run where strikethrough applies. The pixel location (Y-coordinate) at the baseline origin of the run where strikethrough applies. Pointer to a structure containing strikethrough logical information. Application-defined effect to apply to the strikethrough. Usually this argument represents effects such as the foreground brush filling the interior of a line. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT DrawStrikethrough([None] void* clientDrawingContext,[None] FLOAT baselineOriginX,[None] FLOAT baselineOriginY,[In] const DWRITE_STRIKETHROUGH* strikethrough,[None] IUnknown* clientDrawingEffect) IDWriteTextLayout::Draw calls this application callback when it needs to draw an inline object. The application-defined drawing context passed to IDWriteTextLayout::Draw. X-coordinate at the top-left corner of the inline object. Y-coordinate at the top-left corner of the inline object. The application-defined inline object set using IDWriteTextFormat::SetInlineObject. A Boolean flag that indicates whether the object's baseline runs alongside the baseline axis of the line. A Boolean flag that indicates whether the object is in a right-to-left context, hinting that the drawing may want to mirror the normal image. Application-defined drawing effects for the glyphs to render. Usually this argument represents effects such as the foreground brush filling the interior of a line. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT DrawInlineObject([None] void* clientDrawingContext,[None] FLOAT originX,[None] FLOAT originY,[None] IDWriteInlineObject* inlineObject,[None] BOOL isSideways,[None] BOOL isRightToLeft,[None] IUnknown* clientDrawingEffect) Internal TextRenderer Callback Return a pointer to the unamanged version of this callback. The callback. A pointer to a shadow c++ callback HRESULT DrawGlyphRun([None] void* clientDrawingContext,[None] FLOAT baselineOriginX,[None] FLOAT baselineOriginY,[None] DWRITE_MEASURING_MODE measuringMode,[In] const DWRITE_GLYPH_RUN* glyphRun,[In] const DWRITE_GLYPH_RUN_DESCRIPTION* glyphRunDescription,[None] IUnknown* clientDrawingEffect) HRESULT DrawUnderline([None] void* clientDrawingContext,[None] FLOAT baselineOriginX,[None] FLOAT baselineOriginY,[In] const DWRITE_UNDERLINE* underline,[None] IUnknown* clientDrawingEffect) HRESULT DrawStrikethrough([None] void* clientDrawingContext,[None] FLOAT baselineOriginX,[None] FLOAT baselineOriginY,[In] const DWRITE_STRIKETHROUGH* strikethrough,[None] IUnknown* clientDrawingEffect) HRESULT DrawInlineObject([None] void* clientDrawingContext,[None] FLOAT originX,[None] FLOAT originY,[None] IDWriteInlineObject* inlineObject,[None] BOOL isSideways,[None] BOOL isRightToLeft,[None] IUnknown* clientDrawingEffect) Gets the number of OpenType font features for the current font. IDWriteTypography Creates a typography object for use in a text layout. an instance of HRESULT IDWriteFactory::CreateTypography([Out] IDWriteTypography** typography) Initializes a new instance of the class. The native pointer. Adds an OpenType font feature. A structure that contains the OpenType name identifier and the execution parameter for the font feature being added. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteTypography::AddFontFeature([In] DWRITE_FONT_FEATURE fontFeature) Gets the number of OpenType font features for the current font. The number of font features for the current text format. A single run of text can be associated with more than one typographic feature. The object holds a list of these font features. unsigned int IDWriteTypography::GetFontFeatureCount() Gets the font feature at the specified index. The zero-based index of the font feature to retrieve. When this method returns, contains the font feature which is at the specified index. A single run of text can be associated with more than one typographic feature. The object holds a list of these font features. HRESULT IDWriteTypography::GetFontFeature([In] unsigned int fontFeatureIndex,[Out] DWRITE_FONT_FEATURE* fontFeature) Gets the number of OpenType font features for the current font. A single run of text can be associated with more than one typographic feature. The object holds a list of these font features. GetFontFeatureCount unsigned int IDWriteTypography::GetFontFeatureCount() Contains the center point, x-radius, and y-radius of an ellipse. D2D1_ELLIPSE Initializes a new instance of the struct. The center. The radius X. The radius Y. The center point of the ellipse. D2D_POINT_2F point The X-radius of the ellipse. float radiusX The Y-radius of the ellipse. float radiusY Provides access to an device context that can accept GDI drawing commands. ID2D1GdiInteropRenderTarget Indicates that drawing with the device context retrieved using the {{GetDC}} method is finished. ReleaseDC must be called once for each call to {{GetDC}}. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT ID2D1GdiInteropRenderTarget::ReleaseDC([In, Optional] const RECT* update) Initializes a new instance of the class. The native pointer. Retrieves the device context associated with this render target. A value that specifies whether the device context should be cleared. When this method returns, contains the device context associated with this render target. You must allocate storage for this parameter. Calling this method flushes the render target.This command can be called only after BeginDraw and before EndDraw. It should not be called between PushAxisAlignedClip/PopAxisAlignedClip commands or between PushLayer/PopLayer.ReleaseDC must be called once for each call to GetDC. HRESULT ID2D1GdiInteropRenderTarget::GetDC([In] D2D1_DC_INITIALIZE_MODE mode,[Out] HDC* hdc) Indicates that drawing with the device context retrieved using the GetDC method is finished. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. ReleaseDC must be called once for each call to GetDC. HRESULT ID2D1GdiInteropRenderTarget::ReleaseDC([In, Optional] const RECT* update) Indicates the condition at the edges of inline object or text used to determine line-breaking behavior. DWRITE_BREAK_CONDITION Indicates whether a break is allowed by determining the condition of the neighboring text span or inline object. DWRITE_BREAK_CONDITION_NEUTRAL Indicates that a line break is allowed, unless overruled by the condition of the neighboring text span or inline object, either prohibited by a "may not break" condition or forced by a "must break" condition. DWRITE_BREAK_CONDITION_CAN_BREAK Indicates that there should be no line break, unless overruled by a "must break" condition from the neighboring text span or inline object. DWRITE_BREAK_CONDITION_MAY_NOT_BREAK Indicates that the line break must happen, regardless of the condition of the adjacent text span or inline object. DWRITE_BREAK_CONDITION_MUST_BREAK Specifies the type of DirectWrite factory object. A DirectWrite factory object contains information about its internal state, such as font loader registration and cached font data. In most cases you should use the shared factory object, because it allows multiple components that use DirectWrite to share internal DirectWrite state information, thereby reducing memory usage. However, there are cases when it is desirable to reduce the impact of a component on the rest of the process, such as a plug-in from an untrusted source, by sandboxing and isolating it from the rest of the process components. In such cases, you should use an isolated factory for the sandboxed component. DWRITE_FACTORY_TYPE Indicates that the DirectWrite factory is a shared factory and that it allows for the reuse of cached font data across multiple in-process components. Such factories also take advantage of cross process font caching components for better performance. DWRITE_FACTORY_TYPE_SHARED Indicates that the DirectWrite factory object is isolated. Objects created from the isolated factory do not interact with internal DirectWrite state from other components. DWRITE_FACTORY_TYPE_ISOLATED Indicates the direction of flow for placing lines of text in a paragraph. DWRITE_FLOW_DIRECTION Specifies that text lines are placed from top to bottom. DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM Indicates the file format of a complete font face. Font formats that consist of multiple files, such as Type 1 .PFM and .PFB, have a single enum entry. DWRITE_FONT_FACE_TYPE OpenType font face with CFF outlines. DWRITE_FONT_FACE_TYPE_CFF OpenType font face with TrueType outlines. DWRITE_FONT_FACE_TYPE_TRUETYPE OpenType font face that is a part of a TrueType collection. DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION A Type 1 font face. DWRITE_FONT_FACE_TYPE_TYPE1 A vector .FON format font face. DWRITE_FONT_FACE_TYPE_VECTOR A bitmap .FON format font face. DWRITE_FONT_FACE_TYPE_BITMAP Font face type is not recognized by the DirectWrite font system. DWRITE_FONT_FACE_TYPE_UNKNOWN No documentation. DWRITE_FONT_FACE_TYPE_RAW_CFF A value that indicates the typographic feature of text supplied by the font. DWRITE_FONT_FEATURE_TAG Replaces figures separated by a slash with an alternative form. Equivalent OpenType tag: 'afrc' DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS Turns capital characters into petite capitals. It is generally used for words which would otherwise be set in all caps, such as acronyms, but which are desired in petite-cap form to avoid disrupting the flow of text. See the pcap feature description for notes on the relationship of caps, smallcaps and petite caps. Equivalent OpenType tag: 'c2pc' DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS Turns capital characters into small capitals. It is generally used for words which would otherwise be set in all caps, such as acronyms, but which are desired in small-cap form to avoid disrupting the flow of text. Equivalent OpenType tag: 'c2sc' DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS In specified situations, replaces default glyphs with alternate forms which provide better joining behavior. Used in script typefaces which are designed to have some or all of their glyphs join. Equivalent OpenType tag: 'calt' DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES Shifts various punctuation marks up to a position that works better with all-capital sequences or sets of lining figures; also changes oldstyle figures to lining figures. By default, glyphs in a text face are designed to work with lowercase characters. Some characters should be shifted vertically to fit the higher visual center of all-capital or lining text. Also, lining figures are the same height (or close to it) as capitals, and fit much better with all-capital text. Equivalent OpenType tag: 'case' DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS To minimize the number of glyph alternates, it is sometimes desired to decompose a character into two glyphs. Additionally, it may be preferable to compose two characters into a single glyph for better glyph processing. This feature permits such composition/decomposition. The feature should be processed as the first feature processed, and should be processed only when it is called. Equivalent OpenType tag: 'ccmp' DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION Replaces a sequence of glyphs with a single glyph which is preferred for typographic purposes. Unlike other ligature features, clig specifies the context in which the ligature is recommended. This capability is important in some script designs and for swash ligatures. Equivalent OpenType tag: 'clig' DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES Globally adjusts inter-glyph spacing for all-capital text. Most typefaces contain capitals and lowercase characters, and the capitals are positioned to work with the lowercase. When capitals are used for words, they need more space between them for legibility and esthetics. This feature would not apply to monospaced designs. Of course the user may want to override this behavior in order to do more pronounced letterspacing for esthetic reasons. Equivalent OpenType tag: 'cpsp' DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING Replaces default character glyphs with corresponding swash glyphs in a specified context. Note that there may be more than one swash alternate for a given character. Equivalent OpenType tag: 'cswh' DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH In cursive scripts like Arabic, this feature cursively positions adjacent glyphs. Equivalent OpenType tag: 'curs' DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING Replaces a sequence of glyphs with a single glyph which is preferred for typographic purposes. This feature covers those ligatures which may be used for special effect, at the user's preference. Equivalent OpenType tag: 'dlig' DWRITE_FONT_FEATURE_TAG_DEFAULT Replaces standard forms in Japanese fonts with corresponding forms preferred by typographers. For example, a user would invoke this feature to replace kanji character U+5516 with U+555E. Equivalent OpenType tag: 'expt' DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES Replaces figures separated by a slash with 'common' (diagonal) fractions. Equivalent OpenType tag: 'frac' DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS Replaces glyphs set on other widths with glyphs set on full (usually em) widths. In a CJKV font, this may include "lower ASCII" Latin characters and various symbols. In a European font, this feature replaces proportionally-spaced glyphs with monospaced glyphs, which are generally set on widths of 0.6 em. For example, a user may invoke this feature in a Japanese font to get full monospaced Latin glyphs instead of the corresponding proportionally-spaced versions. Equivalent OpenType tag: 'fwid' DWRITE_FONT_FEATURE_TAG_FRACTIONS Produces the half forms of consonants in Indic scripts. For example, in Hindi (Devanagari script), the conjunct KKa, obtained by doubling the Ka, is denoted with a half form of Ka followed by the full form. Equivalent OpenType tag: 'half' DWRITE_FONT_FEATURE_TAG_FULL_WIDTH Produces the halant forms of consonants in Indic scripts. For example, in Sanskrit (Devanagari script), syllable final consonants are frequently required in their halant form. Equivalent OpenType tag: 'haln' DWRITE_FONT_FEATURE_TAG_HALF_FORMS Respaces glyphs designed to be set on full-em widths, fitting them onto half-em widths. This differs from hwid in that it does not substitute new glyphs. Equivalent OpenType tag: 'halt' DWRITE_FONT_FEATURE_TAG_HALANT_FORMS Replaces the default (current) forms with the historical alternates. While some ligatures are also used for historical effect, this feature deals only with single characters. Some fonts include the historical forms as alternates, so they can be used for a 'period' effect. Equivalent OpenType tag: 'hist' DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH Replaces standard kana with forms that have been specially designed for only horizontal writing. This is a typographic optimization for improved fit and more even color. Equivalent OpenType tag: 'hkna' DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS Replaces the default (current) forms with the historical alternates. Some ligatures were in common use in the past, but appear anachronistic today. Some fonts include the historical forms as alternates, so they can be used for a 'period' effect. Equivalent OpenType tag: 'hlig' DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES Replaces glyphs on proportional widths, or fixed widths other than half an em, with glyphs on half-em (en) widths. Many CJKV fonts have glyphs which are set on multiple widths; this feature selects the half-em version. There are various contexts in which this is the preferred behavior, including compatibility with older desktop documents. Equivalent OpenType tag: 'hwid' DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES Used to access the JIS X 0212-1990 glyphs for the cases when the JIS X 0213:2004 form is encoded. The JIS X 0212-1990 (aka, "Hojo Kanji") and JIS X 0213:2004 character sets overlap significantly. In some cases their prototypical glyphs differ. When building fonts that support both JIS X 0212-1990 and JIS X 0213:2004 (such as those supporting the Adobe-Japan 1-6 character collection), it is recommended that JIS X 0213:2004 forms be the preferred encoded form. Equivalent OpenType tag: 'hojo' DWRITE_FONT_FEATURE_TAG_HALF_WIDTH The National Language Council (NLC) of Japan has defined new glyph shapes for a number of JIS characters, which were incorporated into JIS X 0213:2004 as new prototypical forms. The 'jp04' feature is A subset of the 'nlck' feature, and is used to access these prototypical glyphs in a manner that maintains the integrity of JIS X 0213:2004. Equivalent OpenType tag: 'jp04' DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS Replaces default (JIS90) Japanese glyphs with the corresponding forms from the JIS C 6226-1978 (JIS78) specification. Equivalent OpenType tag: 'jp78' DWRITE_FONT_FEATURE_TAG_JIS04_FORMS Replaces default (JIS90) Japanese glyphs with the corresponding forms from the JIS X 0208-1983 (JIS83) specification. Equivalent OpenType tag: 'jp83' DWRITE_FONT_FEATURE_TAG_JIS78_FORMS Replaces Japanese glyphs from the JIS78 or JIS83 specifications with the corresponding forms from the JIS X 0208-1990 (JIS90) specification. Equivalent OpenType tag: 'jp90' DWRITE_FONT_FEATURE_TAG_JIS83_FORMS Adjusts amount of space between glyphs, generally to provide optically consistent spacing between glyphs. Although a well-designed typeface has consistent inter-glyph spacing overall, some glyph combinations require adjustment for improved legibility. Besides standard adjustment in the horizontal direction, this feature can supply size-dependent kerning data via device tables, "cross-stream" kerning in the Y text direction, and adjustment of glyph placement independent of the advance adjustment. Note that this feature may apply to runs of more than two glyphs, and would not be used in monospaced fonts. Also note that this feature does not apply to text set vertically. Equivalent OpenType tag: 'kern' DWRITE_FONT_FEATURE_TAG_JIS90_FORMS Replaces a sequence of glyphs with a single glyph which is preferred for typographic purposes. This feature covers the ligatures which the designer/manufacturer judges should be used in normal conditions. Equivalent OpenType tag: 'liga' DWRITE_FONT_FEATURE_TAG_KERNING Changes selected figures from oldstyle to the default lining form. For example, a user may invoke this feature in order to get lining figures, which fit better with all-capital text. This feature overrides results of the Oldstyle Figures feature (onum). Equivalent OpenType tag: 'lnum' DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES Enables localized forms of glyphs to be substituted for default forms. Many scripts used to write multiple languages over wide geographical areas have developed localized variant forms of specific letters, which are used by individual literary communities. For example, a number of letters in the Bulgarian and Serbian alphabets have forms distinct from their Russian counterparts and from each other. In some cases the localized form differs only subtly from the script 'norm', in others the forms are radically distinct. Equivalent OpenType tag: 'locl' DWRITE_FONT_FEATURE_TAG_LINING_FIGURES Positions mark glyphs with respect to base glyphs. For example, in Arabic script positioning the Hamza above the Yeh. Equivalent OpenType tag: 'mark' DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS Replaces standard typographic forms of Greek glyphs with corresponding forms commonly used in mathematical notation (which are a subset of the Greek alphabet). Equivalent OpenType tag: 'mgrk' DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING Positions marks with respect to other marks. Required in various non-Latin scripts like Arabic. For example, in Arabic, the ligaturised mark Ha with Hamza above it can also be obtained by positioning these marks relative to one another. Equivalent OpenType tag: 'mkmk' DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK Replaces default glyphs with various notational forms (such as glyphs placed in open or solid circles, squares, parentheses, diamonds or rounded boxes). In some cases an annotation form may already be present, but the user may want a different one. Equivalent OpenType tag: 'nalt' DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING Used to access glyphs made from glyph shapes defined by the National Language Council (NLC) of Japan for a number of JIS characters in 2000. Equivalent OpenType tag: 'nlck' DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS Changes selected figures from the default lining style to oldstyle form. For example, a user may invoke this feature to get oldstyle figures, which fit better into the flow of normal upper- and lowercase text. This feature overrides results of the Lining Figures feature (lnum). Equivalent OpenType tag: 'onum' DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS Replaces default alphabetic glyphs with the corresponding ordinal forms for use after figures. One exception to the follows-a-figure rule is the numero character (U+2116), which is actually a ligature substitution, but is best accessed through this feature. Equivalent OpenType tag: 'ordn' DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES Respaces glyphs designed to be set on full-em widths, fitting them onto individual (more or less proportional) horizontal widths. This differs from pwid in that it does not substitute new glyphs (GPOS, not GSUB feature). The user may prefer the monospaced form, or may simply want to ensure that the glyph is well-fit and not rotated in vertical setting (Latin forms designed for proportional spacing would be rotated). Equivalent OpenType tag: 'palt' DWRITE_FONT_FEATURE_TAG_ORDINALS Turns lowercase characters into petite capitals. Forms related to petite capitals, such as specially designed figures, may be included. Some fonts contain an additional size of capital letters, shorter than the regular smallcaps and it is referred to as petite caps. Such forms are most likely to be found in designs with a small lowercase x-height, where they better harmonise with lowercase text than the taller smallcaps (for examples of petite caps, see the Emigre type families Mrs Eaves and Filosofia). Equivalent OpenType tag: 'pcap' DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH Replaces figure glyphs set on uniform (tabular) widths with corresponding glyphs set on glyph-specific (proportional) widths. Tabular widths will generally be the default, but this cannot be safely assumed. Of course this feature would not be present in monospaced designs. Equivalent OpenType tag: 'pnum' DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS Replaces glyphs set on uniform widths (typically full or half-em) with proportionally spaced glyphs. The proportional variants are often used for the Latin characters in CJKV fonts, but may also be used for Kana in Japanese fonts. Equivalent OpenType tag: 'pwid' DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES Replaces glyphs on other widths with glyphs set on widths of one quarter of an em (half an en). The characters involved are normally figures and some forms of punctuation. Equivalent OpenType tag: 'qwid' DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS Replaces a sequence of glyphs with a single glyph which is preferred for typographic purposes. This feature covers those ligatures, which the script determines as required to be used in normal conditions. This feature is important for some scripts to ensure correct glyph formation. Equivalent OpenType tag: 'rlig' DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS Identifies glyphs in the font which have been designed for "ruby", from the old typesetting term for four-point-sized type. Japanese typesetting often uses smaller kana glyphs, generally in superscripted form, to clarify the meaning of kanji which may be unfamiliar to the reader. Equivalent OpenType tag: 'ruby' DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES Replaces the default forms with the stylistic alternates. Many fonts contain alternate glyph designs for a purely esthetic effect; these don't always fit into a clear category like swash or historical. As in the case of swash glyphs, there may be more than one alternate form. Equivalent OpenType tag: 'salt' DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS Replaces lining or oldstyle figures with inferior figures (smaller glyphs which sit lower than the standard baseline, primarily for chemical or mathematical notation). May also replace lowercase characters with alphabetic inferiors. Equivalent OpenType tag: 'sinf' DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES Turns lowercase characters into small capitals. This corresponds to the common SC font layout. It is generally used for display lines set in Large & small caps, such as titles. Forms related to small capitals, such as oldstyle figures, may be included. Equivalent OpenType tag: 'smcp' DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS Replaces 'traditional' Chinese or Japanese forms with the corresponding 'simplified' forms. Equivalent OpenType tag: 'smpl' DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS In addition to, or instead of, stylistic alternatives of individual glyphs (see 'salt' feature), some fonts may contain sets of stylistic variant glyphs corresponding to portions of the character set, such as multiple variants for lowercase letters in a Latin font. Glyphs in stylistic sets may be designed to harmonise visually, interract in particular ways, or otherwise work together. Examples of fonts including stylistic sets are Zapfino Linotype and Adobe's Poetica. Individual features numbered sequentially with the tag name convention 'ss01' 'ss02' 'ss03' . 'ss20' provide a mechanism for glyphs in these sets to be associated via GSUB lookup indexes to default forms and to each other, and for users to select from available stylistic sets Equivalent OpenType tag: 'ss01' DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS See the description for . Equivalent OpenType tag: 'ss02' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1 See the description for . Equivalent OpenType tag: 'ss03' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2 See the description for . Equivalent OpenType tag: 'ss04' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3 See the description for . Equivalent OpenType tag: 'ss05' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4 See the description for . Equivalent OpenType tag: 'ss06' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5 See the description for . Equivalent OpenType tag: 'ss07' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6 See the description for . Equivalent OpenType tag: 'ss08' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7 See the description for . Equivalent OpenType tag: 'ss09' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8 See the description for . Equivalent OpenType tag: 'ss10' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9 See the description for . Equivalent OpenType tag: 'ss11' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10 See the description for . Equivalent OpenType tag: 'ss12' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11 See the description for . Equivalent OpenType tag: 'ss13' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12 See the description for . Equivalent OpenType tag: 'ss14' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13 See the description for . Equivalent OpenType tag: 'ss15' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14 See the description for . Equivalent OpenType tag: 'ss16' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15 See the description for . Equivalent OpenType tag: 'ss17' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16 See the description for . Equivalent OpenType tag: 'ss18' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17 See the description for . Equivalent OpenType tag: 'ss19' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18 See the description for . Equivalent OpenType tag: 'ss20' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19 May replace a default glyph with a subscript glyph, or it may combine a glyph substitution with positioning adjustments for proper placement. Equivalent OpenType tag: 'subs' DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20 Replaces lining or oldstyle figures with superior figures (primarily for footnote indication), and replaces lowercase letters with superior letters (primarily for abbreviated French titles). Equivalent OpenType tag: 'sups' DWRITE_FONT_FEATURE_TAG_SUBSCRIPT Replaces default character glyphs with corresponding swash glyphs. Note that there may be more than one swash alternate for a given character. Equivalent OpenType tag: 'swsh' DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT Replaces the default glyphs with corresponding forms designed specifically for titling. These may be all-capital and/or larger on the body, and adjusted for viewing at larger sizes. Equivalent OpenType tag: 'titl' DWRITE_FONT_FEATURE_TAG_SWASH Replaces 'simplified' Japanese kanji forms with the corresponding 'traditional' forms. This is equivalent to the Traditional Forms feature, but explicitly limited to the traditional forms considered proper for use in personal names (as many as 205 glyphs in some fonts). Equivalent OpenType tag: 'tnam' DWRITE_FONT_FEATURE_TAG_TITLING Replaces figure glyphs set on proportional widths with corresponding glyphs set on uniform (tabular) widths. Tabular widths will generally be the default, but this cannot be safely assumed. Of course this feature would not be present in monospaced designs. Equivalent OpenType tag: 'tnum' DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS Replaces 'simplified' Chinese hanzi or Japanese kanji forms with the corresponding 'traditional' forms. Equivalent OpenType tag: 'trad' DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES Replaces glyphs on other widths with glyphs set on widths of one third of an em. The characters involved are normally figures and some forms of punctuation. Equivalent OpenType tag: 'twid' DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS Maps upper- and lowercase letters to a mixed set of lowercase and small capital forms, resulting in a single case alphabet (for an example of unicase, see the Emigre type family Filosofia). The letters substituted may vary from font to font, as appropriate to the design. If aligning to the x-height, smallcap glyphs may be substituted, or specially designed unicase forms might be used. Substitutions might also include specially designed figures. Equivalent OpenType tag: 'unic' DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS Allows the user to change from the default 0 to a slashed form. Some fonts contain both a default form of zero, and an alternative form which uses a diagonal slash through the counter. Especially in condensed designs, it can be difficult to distinguish between 0 and O (zero and capital O) in any situation where capitals and lining figures may be arbitrarily mixed. Equivalent OpenType tag: 'zero' DWRITE_FONT_FEATURE_TAG_UNICASE No documentation. DWRITE_FONT_FEATURE_TAG_VERTICAL_WRITING No documentation. DWRITE_FONT_FEATURE_TAG_VERTICAL_ALTERNATES_AND_ROTATION No documentation. DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO The type of a font represented by a single font file. Font formats that consist of multiple files, for example Type 1 .PFM and .PFB, have separate enum values for each of the file types. DWRITE_FONT_FILE_TYPE Font type is not recognized by the DirectWrite font system. DWRITE_FONT_FILE_TYPE_UNKNOWN OpenType font with CFF outlines. DWRITE_FONT_FILE_TYPE_CFF OpenType font with TrueType outlines. DWRITE_FONT_FILE_TYPE_TRUETYPE OpenType font that contains a TrueType collection. DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION Type 1 PFM font. DWRITE_FONT_FILE_TYPE_TYPE1_PFM Type 1 PFB font. DWRITE_FONT_FILE_TYPE_TYPE1_PFB Vector .FON font. DWRITE_FONT_FILE_TYPE_VECTOR Bitmap .FON font. DWRITE_FONT_FILE_TYPE_BITMAP Specifies algorithmic style simulations to be applied to the font face. Bold and oblique simulations can be combined via bitwise OR operation. Style simulations are not recommended for good typographic quality. DWRITE_FONT_SIMULATIONS Indicates that no simulations are applied to the font face. DWRITE_FONT_SIMULATIONS_NONE Indicates that algorithmic emboldening is applied to the font face. increases weight by applying a widening algorithm to the glyph outline. This may be used to simulate a bold weight where no designed bold weight is available. DWRITE_FONT_SIMULATIONS_BOLD Indicates that algorithmic italicization is applied to the font face. applies obliquing (shear) to the glyph outline. This may be used to simulate an oblique/italic style where no designed oblique/italic style is available. DWRITE_FONT_SIMULATIONS_OBLIQUE Represents the degree to which a font has been stretched compared to a font's normal aspect ratio. The enumerated values correspond to the usWidthClass definition in the OpenType specification. The usWidthClass represents an integer value between 1 and 9?lower values indicate narrower widths; higher values indicate wider widths. A font stretch describes the degree to which a font form is stretched from its normal aspect ratio, which is the original width to height ratio specified for the glyphs in the font. The following illustration shows an example of Normal and Condensed stretches for the Rockwell Bold typeface.Note??Values other than the ones defined in the enumeration are considered to be invalid, and are rejected by font API functions. DWRITE_FONT_STRETCH Predefined font stretch : Not known (0). DWRITE_FONT_STRETCH_UNDEFINED Predefined font stretch : Ultra-condensed (1). DWRITE_FONT_STRETCH_ULTRA_CONDENSED Predefined font stretch : Extra-condensed (2). DWRITE_FONT_STRETCH_EXTRA_CONDENSED Predefined font stretch : Condensed (3). DWRITE_FONT_STRETCH_CONDENSED Predefined font stretch : Semi-condensed (4). DWRITE_FONT_STRETCH_SEMI_CONDENSED Predefined font stretch : Normal (5). DWRITE_FONT_STRETCH_NORMAL Predefined font stretch : Medium (5). DWRITE_FONT_STRETCH_MEDIUM Predefined font stretch : Semi-expanded (6). DWRITE_FONT_STRETCH_SEMI_EXPANDED Predefined font stretch : Expanded (7). DWRITE_FONT_STRETCH_EXPANDED Predefined font stretch : Extra-expanded (8). DWRITE_FONT_STRETCH_EXTRA_EXPANDED Predefined font stretch : Ultra-expanded (9). DWRITE_FONT_STRETCH_ULTRA_EXPANDED Represents the style of a font face as normal, italic, or oblique. Three terms categorize the slant of a font: normal, italic, and oblique.Font styleDescription NormalThe characters in a normal, or roman, font are upright. Italic The characters in an italic font are truly slanted and appear as they were designed. ObliqueThe characters in an oblique font are artificially slanted.?For Oblique, the slant is achieved by performing a shear transformation on the characters from a normal font. When a true italic font is not available on a computer or printer, an oblique style can be generated from the normal font and used to simulate an italic font. The following illustration shows the normal, italic, and oblique font styles for the Palatino Linotype font. Notice how the italic font style has a more flowing and visually appealing appearance than the oblique font style, which is simply created by skewing the normal font style version of the text.Note?? Values other than the ones defined in the enumeration are considered to be invalid, and they are rejected by font API functions. DWRITE_FONT_STYLE Font style : Normal. DWRITE_FONT_STYLE_NORMAL Font style : Oblique. DWRITE_FONT_STYLE_OBLIQUE Font style : Italic. DWRITE_FONT_STYLE_ITALIC Represents the density of a typeface, in terms of the lightness or heaviness of the strokes. The enumerated values correspond to the usWeightClass definition in the OpenType specification. The usWeightClass represents an integer value between 1 and 999. Lower values indicate lighter weights; higher values indicate heavier weights. Weight differences are generally differentiated by an increased stroke or thickness that is associated with a given character in a typeface, as compared to a "normal" character from that same typeface. The following illustration shows an example of Normal and UltraBold weights for the Palatino Linotype typeface.Note??Not all weights are available for all typefaces. When a weight is not available for a typeface, the closest matching weight is returned.Font weight values less than 1 or greater than 999 are considered invalid, and they are rejected by font API functions. DWRITE_FONT_WEIGHT Predefined font weight : Thin (100). DWRITE_FONT_WEIGHT_THIN Predefined font weight : Extra-light (200). DWRITE_FONT_WEIGHT_EXTRA_LIGHT Predefined font weight : Ultra-light (200). DWRITE_FONT_WEIGHT_ULTRA_LIGHT Predefined font weight : Light (300). DWRITE_FONT_WEIGHT_LIGHT Predefined font weight : Normal (400). DWRITE_FONT_WEIGHT_NORMAL Predefined font weight : Regular (400). DWRITE_FONT_WEIGHT_REGULAR Predefined font weight : Medium (500). DWRITE_FONT_WEIGHT_MEDIUM Predefined font weight : Demi-bold (600). DWRITE_FONT_WEIGHT_DEMI_BOLD Predefined font weight : Semi-bold (600). DWRITE_FONT_WEIGHT_SEMI_BOLD Predefined font weight : Bold (700). DWRITE_FONT_WEIGHT_BOLD Predefined font weight : Extra-bold (800). DWRITE_FONT_WEIGHT_EXTRA_BOLD Predefined font weight : Ultra-bold (800). DWRITE_FONT_WEIGHT_ULTRA_BOLD Predefined font weight : Black (900). DWRITE_FONT_WEIGHT_BLACK Predefined font weight : Heavy (900). DWRITE_FONT_WEIGHT_HEAVY Predefined font weight : Extra-black (950). DWRITE_FONT_WEIGHT_EXTRA_BLACK Predefined font weight : Ultra-black (950). DWRITE_FONT_WEIGHT_ULTRA_BLACK The informational string enumeration which identifies a string embedded in a font file. DWRITE_INFORMATIONAL_STRING_ID Indicates the string containing the unspecified name ID. DWRITE_INFORMATIONAL_STRING_NONE Indicates the string containing the copyright notice provided by the font. DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE Indicates the string containing a version number. DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS Indicates the string containing the trademark information provided by the font. DWRITE_INFORMATIONAL_STRING_TRADEMARK Indicates the string containing the name of the font manufacturer. DWRITE_INFORMATIONAL_STRING_MANUFACTURER Indicates the string containing the name of the font designer. DWRITE_INFORMATIONAL_STRING_DESIGNER Indicates the string containing the URL of the font designer (with protocol, e.g., http://, ftp://). DWRITE_INFORMATIONAL_STRING_DESIGNER_URL Indicates the string containing the description of the font. This may also contain revision information, usage recommendations, history, features, etc. DWRITE_INFORMATIONAL_STRING_DESCRIPTION Indicates the string containing the URL of the font vendor (with protocol, e.g., http://, ftp://). If a unique serial number is embedded in the URL, it can be used to register the font. DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL Indicates the string containing the description of how the font may be legally used, or different example scenarios for licensed use. DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION Indicates the string containing the URL where additional licensing information can be found. DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL Indicates the string containing the GDI-compatible family name. Since GDI allows a maximum of four fonts per family, fonts in the same family may have different GDI-compatible family names (e.g., "Arial", "Arial Narrow", "Arial Black"). DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES Indicates the string containing a GDI-compatible subfamily name. DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES Indicates the string containing the family name preferred by the designer. This enables font designers to group more than four fonts in a single family without losing compatibility with GDI. This name is typically only present if it differs from the GDI-compatible family name. DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES Indicates the string containing the subfamily name preferred by the designer. This name is typically only present if it differs from the GDI-compatible subfamily name. DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES Contains sample text for display in font lists. This can be the font name or any other text that the designer thinks is the best example to display the font in. DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT No documentation. DWRITE_INFORMATIONAL_STRING_FULL_NAME No documentation. DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME No documentation. DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_CID_NAME The method used for line spacing in a text layout. The line spacing method is set by using the SetLineSpacing method of the or interfaces. To get the current line spacing method of a text format or text layou use the GetLineSpacing. DWRITE_LINE_SPACING_METHOD Line spacing depends solely on the content, adjusting to accommodate the size of fonts and inline objects. DWRITE_LINE_SPACING_METHOD_DEFAULT Lines are explicitly set to uniform spacing, regardless of the size of fonts and inline objects. This can be useful to avoid the uneven appearance that can occur from font fallback. DWRITE_LINE_SPACING_METHOD_UNIFORM Specifies how to apply number substitution on digits and related punctuation. DWRITE_NUMBER_SUBSTITUTION_METHOD Specifies that the substitution method should be determined based on the LOCALE_IDIGITSUBSTITUTION value of the specified text culture. DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE If the culture is Arabic or Persian, specifies that the number shapes depend on the context. Either traditional or nominal number shapes are used, depending on the nearest preceding strong character or (if there is none) the reading direction of the paragraph. DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL Specifies that code points 0x30-0x39 are always rendered as nominal numeral shapes (ones of the European number), that is, no substitution is performed. DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE Specifies that numbers are rendered using the national number shapes as specified by the LOCALE_SNATIVEDIGITS value of the specified text culture. DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL Specifies that numbers are rendered using the traditional shapes for the specified culture. For most cultures, this is the same as NativeNational. However, NativeNational results in Latin numbers for some Arabic cultures, whereasDWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL results in arabic numbers for all Arabic cultures. DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL Specifies the alignment of paragraph text along the flow direction axis, relative to the top and bottom of the flow's layout box. DWRITE_PARAGRAPH_ALIGNMENT The top of the text flow is aligned to the top edge of the layout box. DWRITE_PARAGRAPH_ALIGNMENT_NEAR The bottom of the text flow is aligned to the bottom edge of the layout box. DWRITE_PARAGRAPH_ALIGNMENT_FAR The center of the flow is aligned to the center of the layout box. DWRITE_PARAGRAPH_ALIGNMENT_CENTER Represents the internal structure of a device pixel (that is, the physical arrangement of red, green, and blue color components) that is assumed for purposes of rendering text. DWRITE_PIXEL_GEOMETRY The red, green, and blue color components of each pixel are assumed to occupy the same point. DWRITE_PIXEL_GEOMETRY_FLAT Each pixel is composed of three vertical stripes, with red on the left, green in the center, and blue on the right. This is the most common pixel geometry for LCD monitors. DWRITE_PIXEL_GEOMETRY_RGB Each pixel is composed of three vertical stripes, with blue on the left, green in the center, and red on the right. DWRITE_PIXEL_GEOMETRY_BGR Specifies the direction in which reading progresses. DWRITE_READING_DIRECTION Indicates that reading progresses from left to right. DWRITE_READING_DIRECTION_LEFT_TO_RIGHT Indicates that reading progresses from right to left. DWRITE_READING_DIRECTION_RIGHT_TO_LEFT Represents a method of rendering glyphs. DWRITE_RENDERING_MODE Specifies that the rendering mode is determined automatically, based on the font and size. DWRITE_RENDERING_MODE_DEFAULT Specifies that no anti-aliasing is performed. Each pixel is either set to the foreground color of the text or retains the color of the background. DWRITE_RENDERING_MODE_ALIASED Specifies ClearType rendering with the same metrics as bi-level text. Glyphs can only be positioned on whole-pixel boundaries. DWRITE_RENDERING_MODE_GDI_CLASSIC Specifies ClearType rendering with the same metrics as text rendering using GDI using a font created with CLEARTYPE_NATURAL_QUALITY. Glyph metrics are closer to their ideal values than with bi-level text, but glyphs are still positioned on whole-pixel boundaries. DWRITE_RENDERING_MODE_GDI_NATURAL Specifies ClearType rendering with anti-aliasing in the horizontal dimension only. This is typically used with small to medium font sizes (up to 16 ppem). DWRITE_RENDERING_MODE_NATURAL Specifies ClearType rendering with anti-aliasing in both horizontal and vertical dimensions. This is typically used at larger sizes to makes curves and diagonal lines look smoother, at the expense of some softness. DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC Specifies that rendering should bypass the rasterizer and use the outlines directly. This is typically used at very large sizes. DWRITE_RENDERING_MODE_OUTLINE No documentation. DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC No documentation. DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL No documentation. DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL No documentation. DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC Indicates additional shaping requirements for text. DWRITE_SCRIPT_SHAPES Indicates that there is no additional shaping requirements for text. Text is shaped with the writing system default behavior. DWRITE_SCRIPT_SHAPES_DEFAULT Indicates that text should leave no visible control or format control characters. DWRITE_SCRIPT_SHAPES_NO_VISUAL Specifies the alignment of paragraph text along the reading direction axis, relative to the leading and trailing edge of the layout box. DWRITE_TEXT_ALIGNMENT The leading edge of the paragraph text is aligned to the leading edge of the layout box. DWRITE_TEXT_ALIGNMENT_LEADING The trailing edge of the paragraph text is aligned to the trailing edge of the layout box. DWRITE_TEXT_ALIGNMENT_TRAILING The center of the paragraph text is aligned to the center of the layout box. DWRITE_TEXT_ALIGNMENT_CENTER No documentation. DWRITE_TEXT_ALIGNMENT_JUSTIFIED Identifies a type of alpha texture. An alpha texture is a bitmap of alpha values, each representing opacity of a pixel or subpixel. DWRITE_TEXTURE_TYPE Specifies an alpha texture for aliased text rendering (that is, each pixel is either fully opaque or fully transparent), with one byte per pixel. DWRITE_TEXTURE_ALIASED_1x1 Specifies an alpha texture for ClearType text rendering, with three bytes per pixel in the horizontal dimension and one byte per pixel in the vertical dimension. DWRITE_TEXTURE_CLEARTYPE_3x1 Specifies the text granularity used to trim text overflowing the layout box. DWRITE_TRIMMING_GRANULARITY No trimming occurs. Text flows beyond the layout width. DWRITE_TRIMMING_GRANULARITY_NONE Trimming occurs at a character cluster boundary. DWRITE_TRIMMING_GRANULARITY_CHARACTER Trimming occurs at a word boundary. DWRITE_TRIMMING_GRANULARITY_WORD Specifies the word wrapping to be used in a particular multiline paragraph. DWRITE_WORD_WRAPPING Indicates that words are broken across lines to avoid text overflowing the layout box. DWRITE_WORD_WRAPPING_WRAP Indicates that words are kept within the same line even when it overflows the layout box. This option is often used with scrolling to reveal overflow text. DWRITE_WORD_WRAPPING_NO_WRAP Functions Creates a DirectWrite factory object that is used for subsequent creation of individual DirectWrite objects. A value that specifies whether the factory object will be shared or isolated. A value that identifies the DirectWrite factory interface, such as __uuidof(). An address of a reference to the newly created DirectWrite factory object. If this function succeeds, it returns . Otherwise, it returns an error code. This function creates a DirectWrite factory object that is used for subsequent creation of individual DirectWrite objects. DirectWrite factory contains internal state data such as font loader registration and cached font data. In most cases it is recommended you use the shared factory object, because it allows multiple components that use DirectWrite to share internal DirectWrite state data, and thereby reduce memory usage. However, there are cases when it is desirable to reduce the impact of a component, such as a plug-in from an untrusted source, on the rest of the process, by sandboxing and isolating it from the rest of the process components. In such cases, it is recommended you use an isolated factory for the sandboxed component.The following example shows how to create a shared DirectWrite factory. if (SUCCEEDED(hr)) { hr = ( , __uuidof(), reinterpret_cast<**>(&pDWriteFactory_) ); } HRESULT DWriteCreateFactory([In] DWRITE_FACTORY_TYPE factoryType,[In] const GUID& iid,[Out, Fast] IUnknown** factory) Represents a physical font in a font collection. This interface is used to create font faces from physical fonts, or to retrieve information such as font face metrics or face names from existing font faces. IDWriteFont Initializes a new instance of the class. The native pointer. Gets the font family to which the specified font belongs. When this method returns, contains an address of a reference to the font family object to which the specified font belongs. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFont::GetFontFamily([Out] IDWriteFontFamily** fontFamily) Gets the weight, or stroke thickness, of the specified font. A value that indicates the weight for the specified font. DWRITE_FONT_WEIGHT IDWriteFont::GetWeight() Gets the stretch, or width, of the specified font. A value that indicates the type of stretch, or width, applied to the specified font. DWRITE_FONT_STRETCH IDWriteFont::GetStretch() Gets the style, or slope, of the specified font. A value that indicates the type of style, or slope, of the specified font. DWRITE_FONT_STYLE IDWriteFont::GetStyle() Determines whether the font is a symbol font. TRUE if the font is a symbol font; otherwise, . BOOL IDWriteFont::IsSymbolFont() Gets a localized strings collection containing the face names for the font (such as Regular or Bold), indexed by locale name. When this method returns, contains an address to a reference to the newly created localized strings object. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFont::GetFaceNames([Out] IDWriteLocalizedStrings** names) Gets a localized strings collection containing the specified informational strings, indexed by locale name. A value that identifies the informational string to get. For example, specifies a string that contains a description of the font. When this method returns, contains an address of a reference to the newly created localized strings object. When this method returns, TRUE if the font contains the specified string ID; otherwise, . If the font does not contain the string specified by informationalStringID, the return value is but informationalStrings receives a null reference and exists receives the value . HRESULT IDWriteFont::GetInformationalStrings([In] DWRITE_INFORMATIONAL_STRING_ID informationalStringID,[Out] IDWriteLocalizedStrings** informationalStrings,[Out] BOOL* exists) Gets a value that indicates what simulations are applied to the specified font. A value that indicates one or more of the types of simulations (none, bold, or oblique) applied to the specified font. DWRITE_FONT_SIMULATIONS IDWriteFont::GetSimulations() Obtains design units and common metrics for the font face. These metrics are applicable to all the glyphs within a font face and are used by applications for layout calculations. When this method returns, contains a structure that has font metrics for the current font face. The metrics returned by this function are in font design units. void IDWriteFont::GetMetrics([Out] DWRITE_FONT_METRICS* fontMetrics) Determines whether the font supports a specified character. A Unicode (UCS-4) character value for the method to inspect. When this method returns, TRUE if the font supports the specified character; otherwise, . HRESULT IDWriteFont::HasCharacter([In] unsigned int unicodeValue,[Out] BOOL* exists) Creates a font face object for the font. When this method returns, contains an address of a reference to the newly created font face object. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFont::CreateFontFace([Out, Fast] IDWriteFontFace** fontFace) Gets the font family to which the specified font belongs. GetFontFamily HRESULT IDWriteFont::GetFontFamily([Out] IDWriteFontFamily** fontFamily) Gets the weight, or stroke thickness, of the specified font. GetWeight DWRITE_FONT_WEIGHT IDWriteFont::GetWeight() Gets the stretch, or width, of the specified font. GetStretch DWRITE_FONT_STRETCH IDWriteFont::GetStretch() Gets the style, or slope, of the specified font. GetStyle DWRITE_FONT_STYLE IDWriteFont::GetStyle() Determines whether the font is a symbol font. IsSymbolFont BOOL IDWriteFont::IsSymbolFont() Gets a localized strings collection containing the face names for the font (such as Regular or Bold), indexed by locale name. GetFaceNames HRESULT IDWriteFont::GetFaceNames([Out] IDWriteLocalizedStrings** names) Gets a value that indicates what simulations are applied to the specified font. GetSimulations DWRITE_FONT_SIMULATIONS IDWriteFont::GetSimulations() Obtains design units and common metrics for the font face. These metrics are applicable to all the glyphs within a font face and are used by applications for layout calculations. GetMetrics void IDWriteFont::GetMetrics([Out] DWRITE_FONT_METRICS* fontMetrics) Represents a family of related fonts. IDWriteFontFamily Represents a list of fonts. IDWriteFontList Initializes a new instance of the class. The native pointer. Gets the font collection that contains the fonts in the font list. When this method returns, contains the address of a reference to the current object. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteFontList::GetFontCollection([Out] IDWriteFontCollection** fontCollection) Gets the number of fonts in the font list. The number of fonts in the font list. unsigned int IDWriteFontList::GetFontCount() Gets a font given its zero-based index. Zero-based index of the font in the font list. When this method returns, contains the address of a reference to the newly created object. HRESULT IDWriteFontList::GetFont([In] unsigned int index,[Out] IDWriteFont** font) Gets the font collection that contains the fonts in the font list. GetFontCollection HRESULT IDWriteFontList::GetFontCollection([Out] IDWriteFontCollection** fontCollection) Gets the number of fonts in the font list. GetFontCount unsigned int IDWriteFontList::GetFontCount() Initializes a new instance of the class. The native pointer. Creates a localized strings object that contains the family names for the font family, indexed by locale name. The address of a reference to the newly created object. If this method succeeds, it returns . Otherwise, it returns an error code. The following code example shows how to get the font family name from a object. * pFamilyNames = null; // Get a list of localized strings for the family name. if (SUCCEEDED(hr)) { hr = pFontFamily->GetFamilyNames(&pFamilyNames); } UINT32 index = 0; exists = false; wchar_t localeName[LOCALE_NAME_MAX_LENGTH]; if (SUCCEEDED(hr)) { // Get the default locale for this user. int defaultLocaleSuccess = GetUserDefaultLocaleName(localeName, LOCALE_NAME_MAX_LENGTH); // If the default locale is returned, find that locale name, otherwise use "en-us". if (defaultLocaleSuccess) { hr = pFamilyNames->FindLocaleName(localeName, &index, &exists); } if (SUCCEEDED(hr) && !exists) // if the above find did not find a match, retry with US English { hr = pFamilyNames->FindLocaleName(L"en-us", &index, &exists); } } // If the specified locale doesn't exist, select the first on the list. if (!exists) index = 0; UINT32 length = 0; // Get the string length. if (SUCCEEDED(hr)) { hr = pFamilyNames->GetStringLength(index, &length); } // Allocate a string big enough to hold the name. wchar_t* name = new (std::nothrow) wchar_t[length+1]; if (name == null) { hr = E_OUTOFMEMORY; } // Get the family name. if (SUCCEEDED(hr)) { hr = pFamilyNames->GetString(index, name, length+1); } HRESULT IDWriteFontFamily::GetFamilyNames([Out] IDWriteLocalizedStrings** names) Gets the font that best matches the specified properties. A value that is used to match a requested font weight. A value that is used to match a requested font stretch. A value that is used to match a requested font style. When this method returns, contains the address of a reference to the newly created object. HRESULT IDWriteFontFamily::GetFirstMatchingFont([In] DWRITE_FONT_WEIGHT weight,[In] DWRITE_FONT_STRETCH stretch,[In] DWRITE_FONT_STYLE style,[Out] IDWriteFont** matchingFont) Gets a list of fonts in the font family ranked in order of how well they match the specified properties. A value that is used to match a requested font weight. A value that is used to match a requested font stretch. A value that is used to match a requested font style. An address of a reference to the newly created object. HRESULT IDWriteFontFamily::GetMatchingFonts([In] DWRITE_FONT_WEIGHT weight,[In] DWRITE_FONT_STRETCH stretch,[In] DWRITE_FONT_STYLE style,[Out] IDWriteFontList** matchingFonts) Creates a localized strings object that contains the family names for the font family, indexed by locale name. The following code example shows how to get the font family name from a object. * pFamilyNames = null; // Get a list of localized strings for the family name. if (SUCCEEDED(hr)) { hr = pFontFamily->GetFamilyNames(&pFamilyNames); } UINT32 index = 0; exists = false; wchar_t localeName[LOCALE_NAME_MAX_LENGTH]; if (SUCCEEDED(hr)) { // Get the default locale for this user. int defaultLocaleSuccess = GetUserDefaultLocaleName(localeName, LOCALE_NAME_MAX_LENGTH); // If the default locale is returned, find that locale name, otherwise use "en-us". if (defaultLocaleSuccess) { hr = pFamilyNames->FindLocaleName(localeName, &index, &exists); } if (SUCCEEDED(hr) && !exists) // if the above find did not find a match, retry with US English { hr = pFamilyNames->FindLocaleName(L"en-us", &index, &exists); } } // If the specified locale doesn't exist, select the first on the list. if (!exists) index = 0; UINT32 length = 0; // Get the string length. if (SUCCEEDED(hr)) { hr = pFamilyNames->GetStringLength(index, &length); } // Allocate a string big enough to hold the name. wchar_t* name = new (std::nothrow) wchar_t[length+1]; if (name == null) { hr = E_OUTOFMEMORY; } // Get the family name. if (SUCCEEDED(hr)) { hr = pFamilyNames->GetString(index, name, length+1); } GetFamilyNames HRESULT IDWriteFontFamily::GetFamilyNames([Out] IDWriteLocalizedStrings** names) A built-in implementation of the interface, that operates on local font files and exposes local font file information from the font file reference key. Font file references created using CreateFontFileReference use this font file loader. IDWriteLocalFontFileLoader Initializes a new instance of the class. The native pointer. Obtains the length of the absolute file path from the font file reference key. Font file reference key that uniquely identifies the local font file within the scope of the font loader being used. Size of font file reference key in bytes. Length of the file path string, not including the terminated null character. HRESULT IDWriteLocalFontFileLoader::GetFilePathLengthFromKey([In, Buffer] const void* fontFileReferenceKey,[In] unsigned int fontFileReferenceKeySize,[Out] unsigned int* filePathLength) Obtains the absolute font file path from the font file reference key. The font file reference key that uniquely identifies the local font file within the scope of the font loader being used. The size of font file reference key in bytes. The character array that receives the local file path. The length of the file path character array. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT IDWriteLocalFontFileLoader::GetFilePathFromKey([In, Buffer] const void* fontFileReferenceKey,[In] unsigned int fontFileReferenceKeySize,[Out, Buffer] wchar_t* filePath,[In] unsigned int filePathSize) Obtains the last write time of the file from the font file reference key. The font file reference key that uniquely identifies the local font file within the scope of the font loader being used. The size of font file reference key in bytes. The time of the last font file modification. HRESULT IDWriteLocalFontFileLoader::GetLastWriteTimeFromKey([In, Buffer] const void* fontFileReferenceKey,[In] unsigned int fontFileReferenceKeySize,[Out] FILETIME* lastWriteTime) Contains information about a glyph cluster. DWRITE_CLUSTER_METRICS The total advance width of all glyphs in the cluster. float width The number of text positions in the cluster. unsigned short length Indicates whether a line can be broken right after the cluster. unsigned short canWrapLineAfter Indicates whether the cluster corresponds to a whitespace character. unsigned short isWhitespace Indicates whether the cluster corresponds to a newline character. unsigned short isNewline Indicates whether the cluster corresponds to a soft hyphen character. unsigned short isSoftHyphen Indicates whether the cluster is read from right to left. unsigned short isRightToLeft Reserved for future use. unsigned short padding The structure specifies the metrics that are applicable to all glyphs within the font face. DWRITE_FONT_METRICS The number of font design units per em unit. Font files use their own coordinate system of font design units. A font design unit is the smallest measurable unit in the em square, an imaginary square that is used to size and align glyphs. The concept of em square is used as a reference scale factor when defining font size and device transformation semantics. The size of one em square is also commonly used to compute the paragraph identation value. unsigned short designUnitsPerEm The ascent value of the font face in font design units. Ascent is the distance from the top of font character alignment box to the English baseline. unsigned short ascent The descent value of the font face in font design units. Descent is the distance from the bottom of font character alignment box to the English baseline. unsigned short descent The line gap in font design units. Recommended additional white space to add between lines to improve legibility. The recommended line spacing (baseline-to-baseline distance) is the sum of ascent, descent, and lineGap. The line gap is usually positive or zero but can be negative, in which case the recommended line spacing is less than the height of the character alignment box. short lineGap The cap height value of the font face in font design units. Cap height is the distance from the English baseline to the top of a typical English capital. Capital "H" is often used as a reference character for the purpose of calculating the cap height value. unsigned short capHeight The x-height value of the font face in font design units. x-height is the distance from the English baseline to the top of lowercase letter "x", or a similar lowercase character. unsigned short xHeight The underline position value of the font face in font design units. Underline position is the position of underline relative to the English baseline. The value is usually made negative in order to place the underline below the baseline. short underlinePosition The suggested underline thickness value of the font face in font design units. unsigned short underlineThickness The strikethrough position value of the font face in font design units. Strikethrough position is the position of strikethrough relative to the English baseline. The value is usually made positive in order to place the strikethrough above the baseline. short strikethroughPosition The suggested strikethrough thickness value of the font face in font design units. unsigned short strikethroughThickness Specifies the metrics of an individual glyph. The units depend on how the metrics are obtained. DWRITE_GLYPH_METRICS Specifies the X offset from the glyph origin to the left edge of the black box. The glyph origin is the current horizontal writing position. A negative value means the black box extends to the left of the origin (often true for lowercase italic 'f'). int leftSideBearing Specifies the X offset from the origin of the current glyph to the origin of the next glyph when writing horizontally. unsigned int advanceWidth Specifies the X offset from the right edge of the black box to the origin of the next glyph when writing horizontally. The value is negative when the right edge of the black box overhangs the layout box. int rightSideBearing Specifies the vertical offset from the vertical origin to the top of the black box. Thus, a positive value adds whitespace whereas a negative value means the glyph overhangs the top of the layout box. int topSideBearing Specifies the Y offset from the vertical origin of the current glyph to the vertical origin of the next glyph when writing vertically. Note that the term "origin" by itself denotes the horizontal origin. The vertical origin is different. Its Y coordinate is specified by verticalOriginY value, and its X coordinate is half the advanceWidth to the right of the horizontal origin. unsigned int advanceHeight Specifies the vertical distance from the bottom edge of the black box to the advance height. This is positive when the bottom edge of the black box is within the layout box, or negative when the bottom edge of black box overhangs the layout box. int bottomSideBearing Specifies the Y coordinate of a glyph's vertical origin, in the font's design coordinate system. The y coordinate of a glyph's vertical origin is the sum of the glyph's top side bearing and the top (that is, yMax) of the glyph's bounding box. int verticalOriginY The optional adjustment to a glyph's position. An glyph offset changes the position of a glyph without affecting the pen position. Offsets are in logical, pre-transform units. DWRITE_GLYPH_OFFSET The offset in the advance direction of the run. A positive advance offset moves the glyph to the right (in pre-transform coordinates) if the run is left-to-right or to the left if the run is right-to-left. float advanceOffset The offset in the ascent direction, that is, the direction ascenders point. A positive ascender offset moves the glyph up (in pre-transform coordinates). A negative ascender offset moves the glyph down. float ascenderOffset Describes the region obtained by a hit test. DWRITE_HIT_TEST_METRICS The first text position within the hit region. unsigned int textPosition The number of text positions within the hit region. unsigned int length The x-coordinate of the upper-left corner of the hit region. float left The y-coordinate of the upper-left corner of the hit region. float top The width of the hit region. float width The height of the hit region. float height The BIDI level of the text positions within the hit region. unsigned int bidiLevel true if the hit region contains text; otherwise, false. BOOL isText No documentation. BOOL isTrimmed Contains properties describing the geometric measurement of an application-defined inline object. DWRITE_INLINE_OBJECT_METRICS The width of the inline object. float width The height of the inline object. float height The distance from the top of the object to the point where it is lined up with the adjacent text. If the baseline is at the bottom, then baseline simply equals height. float baseline A Boolean flag that indicates whether the object is to be placed upright or alongside the text baseline for vertical text. BOOL supportsSideways Contains information about a formatted line of text. DWRITE_LINE_METRICS The number of text positions in the text line. This includes any trailing whitespace and newline characters. unsigned int length The number of whitespace positions at the end of the text line. Newline sequences are considered whitespace. unsigned int trailingWhitespaceLength The number of characters in the newline sequence at the end of the text line. If the count is zero, then the text line was either wrapped or it is the end of the text. unsigned int newlineLength The height of the text line. float height The distance from the top of the text line to its baseline. float baseline The line is trimmed. BOOL isTrimmed The structure specifies the graphics transform to be applied to rendered glyphs. DWRITE_MATRIX A value indicating the horizontal scaling / cosine of rotation. float m11 A value indicating the vertical shear / sine of rotation. float m12 A value indicating the horizontal shear / negative sine of rotation. float m21 A value indicating the vertical scaling / cosine of rotation. float m22 A value indicating the horizontal shift (always orthogonal regardless of rotation). float dx A value indicating the vertical shift (always orthogonal regardless of rotation.) float dy Indicates how much any visible DIPs (device independent pixels) overshoot each side of the layout or inline objects. DWRITE_OVERHANG_METRICS The distance from the left-most visible DIP to its left-alignment edge. float left The distance from the top-most visible DIP to its top alignment edge. float top The distance from the right-most visible DIP to its right-alignment edge. float right The distance from the bottom-most visible DIP to its lower-alignment edge. float bottom Stores the association of text and its writing system script, as well as some display attributes. DWRITE_SCRIPT_ANALYSIS The zero-based index representation of writing system script. unsigned short script A value that indicates additional shaping requirement of text. DWRITE_SCRIPT_SHAPES shapes Shaping output properties for an output glyph. DWRITE_SHAPING_TEXT_PROPERTIES Indicates that the glyph is shaped alone. unsigned short isShapedAlone Reserved for future use. unsigned short reserved Contains information regarding the size and placement of strikethroughs. All coordinates are in device independent pixels (DIPs). DWRITE_STRIKETHROUGH A value that indicates the width of the strikethrough, measured parallel to the baseline. float width A value that indicates the thickness of the strikethrough, measured perpendicular to the baseline. float thickness A value that indicates the offset of the strikethrough from the baseline. A positive offset represents a position below the baseline and a negative offset is above. Typically, the offset will be negative. float offset Reading direction of the text associated with the strikethrough. This value is used to interpret whether the width value runs horizontally or vertically. DWRITE_READING_DIRECTION readingDirection Flow direction of the text associated with the strikethrough. This value is used to interpret whether the thickness value advances top to bottom, left to right, or right to left. DWRITE_FLOW_DIRECTION flowDirection An array of characters containing the locale of the text that is the strikethrough is being drawn over. const wchar_t* localeName The measuring mode can be useful to the renderer to determine how underlines are rendered, such as rounding the thickness to a whole pixel in GDI-compatible modes. DWRITE_MEASURING_MODE measuringMode Contains the metrics associated with text after layout. All coordinates are in device independent pixels (DIPs). DWRITE_TEXT_METRICS A value that indicates the left-most point of formatted text relative to the layout box, while excluding any glyph overhang. float left A value that indicates the top-most point of formatted text relative to the layout box, while excluding any glyph overhang. float top A value that indicates the width of the formatted text, while ignoring trailing whitespace at the end of each line. float width The width of the formatted text, taking into account the trailing whitespace at the end of each line. float widthIncludingTrailingWhitespace The height of the formatted text. The height of an empty string is set to the same value as that of the default font. float height The initial width given to the layout. It can be either larger or smaller than the text content width, depending on whether the text was wrapped. float layoutWidth Initial height given to the layout. Depending on the length of the text, it may be larger or smaller than the text content height. float layoutHeight The maximum reordering count of any line of text, used to calculate the most number of hit-testing boxes needed. If the layout has no bidirectional text, or no text at all, the minimum level is 1. unsigned int maxBidiReorderingDepth No documentation. unsigned int lineCount Specifies the trimming option for text overflowing the layout box. DWRITE_TRIMMING A value that specifies the text granularity used to trim text overflowing the layout box. DWRITE_TRIMMING_GRANULARITY granularity A character code used as the delimiter that signals the beginning of the portion of text to be preserved. Most useful for path ellipsis, where the delimiter would be a slash. unsigned int delimiter A value that indicates how many occurrences of the delimiter to step back. unsigned int delimiterCount Contains a set of typographic features to be applied during text shaping. DWRITE_TYPOGRAPHIC_FEATURES A reference to a structure that specifies properties used to identify and execute typographic features in the font. DWRITE_FONT_FEATURE* features A value that indicates the number of features being applied to a font face. unsigned int featureCount Contains information about the width, thickness, offset, run height, reading direction, and flow direction of an underline. All coordinates are in device independent pixels (DIPs). DWRITE_UNDERLINE A value that indicates the width of the underline, measured parallel to the baseline. float width A value that indicates the thickness of the underline, measured perpendicular to the baseline. float thickness A value that indicates the offset of the underline from the baseline. A positive offset represents a position below the baseline (away from the text) and a negative offset is above (toward the text). float offset A value that indicates the height of the tallest run where the underline is applied. float runHeight A value that indicates the reading direction of the text associated with the underline. This value is used to interpret whether the width value runs horizontally or vertically. DWRITE_READING_DIRECTION readingDirection A value that indicates the flow direction of the text associated with the underline. This value is used to interpret whether the thickness value advances top to bottom, left to right, or right to left. DWRITE_FLOW_DIRECTION flowDirection An array of characters which contains the locale of the text that the underline is being drawn under. For example, in vertical text, the underline belongs on the left for Chinese but on the right for Japanese. const wchar_t* localeName The measuring mode can be useful to the renderer to determine how underlines are rendered, such as rounding the thickness to a whole pixel in GDI-compatible modes. DWRITE_MEASURING_MODE measuringMode No documentation. D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE No documentation. D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR No documentation. D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_LINEAR No documentation. D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_CUBIC No documentation. D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR No documentation. D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_ANISOTROPIC No documentation. D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC No documentation. D2D1_2DAFFINETRANSFORM_PROP No documentation. D2D1_2DAFFINETRANSFORM_PROP_INTERPOLATION_MODE No documentation. D2D1_2DAFFINETRANSFORM_PROP_BORDER_MODE No documentation. D2D1_2DAFFINETRANSFORM_PROP_TRANSFORM_MATRIX Specifies how the alpha value of a bitmap or render target should be treated. The enumeration is used with the enumeration to specify the alpha mode of a render target or bitmap. Different render targets and bitmaps support different alpha modes. For a list, see Supported Pixel Formats and Alpha Modes.The Differences Between Straight and Premultiplied AlphaWhen describing an RGBA color using straight alpha, the alpha value of the color is stored in the alpha channel. For example, to describe a red color that is 60% opaque, you'd use the following values: (255, 0, 0, 255 * 0.6) = (255, 0, 0, 153). The 255 value indicates full red, and 153 (which is 60 percent of 255) indicates that the color should have an opacity of 60 percent.When describing an RGBA color using premultiplied alpha, each color is multiplied by the alpha value: (255 * 0.6, 0 * 0.6, 0 * 0.6, 255 * 0.6) = (153, 0, 0, 153).Regardless of the alpha mode of the render target, D2D1_COLOR_F values are always interpreted as straight alpha. For example, when specifying the color of an for use with a bitmap that uses the premultiplied alpha mode, you'd specify the color just as you would if the bitmap used straight alpha. When you paint with the brush, Direct2D translates the color to the destination format for you.Alpha Mode for Render TargetsRegardless of the alpha mode setting, a render target's contents support transparency. For example, if you draw a partially transparent red rectangle with a render target with an alpha mode of , the rectangle will appear pink (if the background is white), as you might expect.If you draw a partially transparent red rectangle when the alpha mode is , the rectangle will appear pink (assuming the background is white) and you can see through it to whatever is behind the render target. This is useful when using a to render to a transparent window or when using an compatible render target (a render targeted created by the CreateCompatibleRenderTarget method) to create a bitmap that supports transparency.ClearType and Alpha ModesIf you specify an alpha mode other than for a render target, the text antialiasing mode automatically changes from CLEARTYPE to GRAYSCALE. (When you specify an alpha mode of , Direct2D sets the alpha for you depending on the type of render target. For a list of what the setting resolves to for each render target, see the Supported Pixel Formats and Alpha Modes overview.)You can use the SetTextAntialiasMode method to change the text antialias mode back to CLEARTYPE, but rendering ClearType text to a transparent surface can create unpredictable results. If you want to render ClearType text to an transparent render target, we recommend that you use one of the following two techniques.Use the PushAxisAlignedClip method to clip the render target to the area where the text will be rendered, then call the Clear method and specify an opaque color, then render your text. Use DrawRectangle to draw an opaque rectangle behind the area where the text will be rendered. D2D1_ALPHA_MODE The alpha value might not be meaningful. D2D1_ALPHA_MODE_UNKNOWN The alpha value has been premultiplied. Each color is first scaled by the alpha value. The alpha value itself is the same in both straight and premultiplied alpha. Typically, no color channel value is greater than the alpha channel value. If a color channel value in a premultiplied format is greater than the alpha channel, the standard source-over blending math results in an additive blend. D2D1_ALPHA_MODE_PREMULTIPLIED The alpha value has not been premultiplied. The alpha channel indicates the transparency of the color. D2D1_ALPHA_MODE_STRAIGHT The alpha value is ignored. D2D1_ALPHA_MODE_IGNORE Specifies how the edges of nontext primitives are rendered. D2D1_ANTIALIAS_MODE Edges are antialiased using the Direct2D per-primitive method of high-quality antialiasing. D2D1_ANTIALIAS_MODE_PER_PRIMITIVE Objects are aliased in most cases. Objects are antialiased only when they are drawn to a render target created by the CreateDxgiSurfaceRenderTarget method and Direct3D multisampling has been enabled on the backing DirectX Graphics Infrastructure (DXGI) surface. D2D1_ANTIALIAS_MODE_ALIASED Specifies whether an arc should be greater than 180 degrees. D2D1_ARC_SIZE An arc's sweep should be 180 degrees or less. D2D1_ARC_SIZE_SMALL An arc's sweep should be 180 degrees or greater. D2D1_ARC_SIZE_LARGE No documentation. D2D1_ARITHMETICCOMPOSITE_PROP No documentation. D2D1_ARITHMETICCOMPOSITE_PROP_COEFFICIENTS No documentation. D2D1_ATLAS_PROP No documentation. D2D1_ATLAS_PROP_INPUT_RECT No documentation. D2D1_ATLAS_PROP_INPUT_PADDING_RECT Specifies the algorithm that is used when images are scaled or rotated. To stretch an image, each pixel in the original image must be mapped to a group of pixels in the larger image. To shrink an image, groups of pixels in the original image must be mapped to single pixels in the smaller image. The effectiveness of the algorithms that perform these mappings determines the quality of a scaled image. Algorithms that produce higher-quality scaled images tend to require more processing time. provides faster but lower-quality interpolation, while provides higher-quality interpolation. D2D1_BITMAP_INTERPOLATION_MODE Use the exact color of the nearest bitmap pixel to the current rendering pixel. D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR Interpolate a color from the four bitmap pixels that are the nearest to the rendering pixel. D2D1_BITMAP_INTERPOLATION_MODE_LINEAR [This documentation is preliminary and is subject to change.] If is specified, the bitmap can be used for drawing but cannot be set as a target and cannot be read by the CPU.If is specfied, the bitmap can be used as a target for .D2D1_BITMAP_OPTIONS_CANNOT_DRAW must be specified in conjunction with . If specified, the bitmap can be used as a target but it cannot be drawn from. Attempting to draw with a bitmap that has this flag set will result in the device context returning the error D2DERR_BITMAP_CANNOT_DRAW.If is specified, the bitmap can be mapped using . This flag requires and cannot be combined with any other flags. The bitmap must be updated with either CopyFromBitmap or CopyFromRenderTarget.D2D1_BITMAP_OPTIONS_GDI_COMPATIBLE specifies that a Windows Graphics Device Interface (GDI) device context associated with this bitmap is available. This must be used in conjunction with . The must be either or . D2D1_BITMAP_OPTIONS The bitmap is created with default properties. D2D1_BITMAP_OPTIONS_NONE The bitmap can be used as a device context target. D2D1_BITMAP_OPTIONS_TARGET The bitmap cannot be used as an input. D2D1_BITMAP_OPTIONS_CANNOT_DRAW The bitmap can be read from from the CPU. D2D1_BITMAP_OPTIONS_CPU_READ The bitmap works with . D2D1_BITMAP_OPTIONS_GDI_COMPATIBLE No documentation. D2D1_BITMAPSOURCE_ALPHA_MODE No documentation. D2D1_BITMAPSOURCE_ALPHA_MODE_PREMULTIPLIED No documentation. D2D1_BITMAPSOURCE_ALPHA_MODE_STRAIGHT No documentation. D2D1_BITMAPSOURCE_INTERPOLATION_MODE No documentation. D2D1_BITMAPSOURCE_INTERPOLATION_MODE_NEAREST_NEIGHBOR No documentation. D2D1_BITMAPSOURCE_INTERPOLATION_MODE_LINEAR No documentation. D2D1_BITMAPSOURCE_INTERPOLATION_MODE_CUBIC No documentation. D2D1_BITMAPSOURCE_INTERPOLATION_MODE_FANT No documentation. D2D1_BITMAPSOURCE_INTERPOLATION_MODE_MIPMAP_LINEAR No documentation. D2D1_BITMAPSOURCE_PROP No documentation. D2D1_BITMAPSOURCE_PROP_WIC_BITMAP_SOURCE No documentation. D2D1_BITMAPSOURCE_PROP_SCALE No documentation. D2D1_BITMAPSOURCE_PROP_INTERPOLATION_MODE No documentation. D2D1_BITMAPSOURCE_PROP_ENABLE_DPI_CORRECTION No documentation. D2D1_BITMAPSOURCE_PROP_ALPHA_MODE [This documentation is preliminary and is subject to change.] D2D1_BLEND Specifies the first RGB data source and includes an optional preblend operation. D2D1_BLEND_ZERO Specifies the second RGB data source and includes an optional preblend operation. D2D1_BLEND_ONE Specifies how to combine the RGB data sources. D2D1_BLEND_SRC_COLOR Specifies the first alpha data source and includes an optional preblend operation. Blend options that end in _COLOR are not allowed. D2D1_BLEND_INV_SRC_COLOR Specifies the second alpha data source and includes an optional preblend operation. Blend options that end in _COLOR are not allowed. D2D1_BLEND_SRC_ALPHA Specifies how to combine the alpha data sources. D2D1_BLEND_INV_SRC_ALPHA Parameters to the blend operations. The blend must use for this to be used. D2D1_BLEND_DEST_ALPHA No documentation. D2D1_BLEND_INV_DEST_ALPHA No documentation. D2D1_BLEND_DEST_COLOR No documentation. D2D1_BLEND_INV_DEST_COLOR No documentation. D2D1_BLEND_SRC_ALPHA_SAT No documentation. D2D1_BLEND_BLEND_FACTOR No documentation. D2D1_BLEND_INV_BLEND_FACTOR No documentation. D2D1_BLEND_MODE No documentation. D2D1_BLEND_MODE_MULTIPLY No documentation. D2D1_BLEND_MODE_SCREEN No documentation. D2D1_BLEND_MODE_DARKEN No documentation. D2D1_BLEND_MODE_LIGHTEN No documentation. D2D1_BLEND_MODE_DISSOLVE No documentation. D2D1_BLEND_MODE_COLOR_BURN No documentation. D2D1_BLEND_MODE_LINEAR_BURN No documentation. D2D1_BLEND_MODE_DARKER_COLOR No documentation. D2D1_BLEND_MODE_LIGHTER_COLOR No documentation. D2D1_BLEND_MODE_COLOR_DODGE No documentation. D2D1_BLEND_MODE_LINEAR_DODGE No documentation. D2D1_BLEND_MODE_OVERLAY No documentation. D2D1_BLEND_MODE_SOFT_LIGHT No documentation. D2D1_BLEND_MODE_HARD_LIGHT No documentation. D2D1_BLEND_MODE_VIVID_LIGHT No documentation. D2D1_BLEND_MODE_LINEAR_LIGHT No documentation. D2D1_BLEND_MODE_PIN_LIGHT No documentation. D2D1_BLEND_MODE_HARD_MIX No documentation. D2D1_BLEND_MODE_DIFFERENCE No documentation. D2D1_BLEND_MODE_EXCLUSION No documentation. D2D1_BLEND_MODE_HUE No documentation. D2D1_BLEND_MODE_SATURATION No documentation. D2D1_BLEND_MODE_COLOR No documentation. D2D1_BLEND_MODE_LUMINOSITY No documentation. D2D1_BLEND_MODE_SUBTRACT No documentation. D2D1_BLEND_MODE_DIVISION [This documentation is preliminary and is subject to change.] This enumeration has the same numeric values as . D2D1_BLEND_OPERATION Add source 1 and source 2. D2D1_BLEND_OPERATION_ADD Subtract source 1 from source 2. D2D1_BLEND_OPERATION_SUBTRACT Subtract source 2 from source 1. D2D1_BLEND_OPERATION_REV_SUBTRACT Find the minimum of source 1 and source 2. D2D1_BLEND_OPERATION_MIN Find the maximum of source 1 and source 2. D2D1_BLEND_OPERATION_MAX No documentation. D2D1_BLEND_PROP No documentation. D2D1_BLEND_PROP_MODE No documentation. D2D1_BORDER_EDGE_MODE No documentation. D2D1_BORDER_EDGE_MODE_CLAMP No documentation. D2D1_BORDER_EDGE_MODE_WRAP No documentation. D2D1_BORDER_EDGE_MODE_MIRROR No documentation. D2D1_BORDER_MODE No documentation. D2D1_BORDER_MODE_SOFT No documentation. D2D1_BORDER_MODE_HARD No documentation. D2D1_BORDER_PROP No documentation. D2D1_BORDER_PROP_EDGE_MODE_X No documentation. D2D1_BORDER_PROP_EDGE_MODE_Y No documentation. D2D1_BRIGHTNESS_PROP No documentation. D2D1_BRIGHTNESS_PROP_WHITE_POINT No documentation. D2D1_BRIGHTNESS_PROP_BLACK_POINT [This documentation is preliminary and is subject to change.] D2D1_BUFFER_PRECISION The buffer precision is not specified. D2D1_BUFFER_PRECISION_UNKNOWN Use 8-bit normalized integer per channel. D2D1_BUFFER_PRECISION_8BPC_UNORM Use 16-bit floats per channel. D2D1_BUFFER_PRECISION_8BPC_UNORM_SRGB Use 16-bit normalized integer per channel. D2D1_BUFFER_PRECISION_16BPC_UNORM Use 32-bit floats per channel. D2D1_BUFFER_PRECISION_16BPC_FLOAT No documentation. D2D1_BUFFER_PRECISION_32BPC_FLOAT Describes the shape at the end of a line or segment. The following illustration shows the available cap styles for lines or segments. The red portion of the line shows the extra area added by the line cap setting. D2D1_CAP_STYLE A cap that does not extend past the last point of the line. Comparable to cap used for objects other than lines. D2D1_CAP_STYLE_FLAT Half of a square that has a length equal to the line thickness. D2D1_CAP_STYLE_SQUARE A semicircle that has a diameter equal to the line thickness. D2D1_CAP_STYLE_ROUND An isosceles right triangle whose hypotenuse is equal in length to the thickness of the line. D2D1_CAP_STYLE_TRIANGLE [This documentation is preliminary and is subject to change.] D2D1_CHANGE_TYPE There were no changes. D2D1_CHANGE_TYPE_NONE The properties of the effect changed. D2D1_CHANGE_TYPE_PROPERTIES The context state changed. D2D1_CHANGE_TYPE_CONTEXT No documentation. D2D1_CHANGE_TYPE_GRAPH [This documentation is preliminary and is subject to change.] D2D1_CHANNEL_DEPTH The channel depth is the default. It is inherited from the inputs. D2D1_CHANNEL_DEPTH_DEFAULT The channel depth is 1. D2D1_CHANNEL_DEPTH_1 The channel depth is 4. D2D1_CHANNEL_DEPTH_4 No documentation. D2D1_CHANNEL_SELECTOR No documentation. D2D1_CHANNEL_SELECTOR_R No documentation. D2D1_CHANNEL_SELECTOR_G No documentation. D2D1_CHANNEL_SELECTOR_B No documentation. D2D1_CHANNEL_SELECTOR_A No documentation. D2D1_COLOR_INTERPOLATION_MODE No documentation. D2D1_COLOR_INTERPOLATION_MODE_STRAIGHT No documentation. D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED No documentation. D2D1_COLORMANAGEMENT_ALPHA_MODE No documentation. D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED No documentation. D2D1_COLORMANAGEMENT_ALPHA_MODE_STRAIGHT No documentation. D2D1_COLORMANAGEMENT_PROP No documentation. D2D1_COLORMANAGEMENT_PROP_SOURCE_COLOR_CONTEXT No documentation. D2D1_COLORMANAGEMENT_PROP_SOURCE_RENDERING_INTENT No documentation. D2D1_COLORMANAGEMENT_PROP_DESTINATION_COLOR_CONTEXT No documentation. D2D1_COLORMANAGEMENT_PROP_DESTINATION_RENDERING_INTENT No documentation. D2D1_COLORMANAGEMENT_PROP_ALPHA_MODE No documentation. D2D1_COLORMANAGEMENT_RENDERING_INTENT No documentation. D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL No documentation. D2D1_COLORMANAGEMENT_RENDERING_INTENT_RELATIVE_COLORIMETRIC No documentation. D2D1_COLORMANAGEMENT_RENDERING_INTENT_SATURATION No documentation. D2D1_COLORMANAGEMENT_RENDERING_INTENT_ABSOLUTE_COLORIMETRIC No documentation. D2D1_COLORMATRIX_ALPHA_MODE No documentation. D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED No documentation. D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT No documentation. D2D1_COLORMATRIX_PROP No documentation. D2D1_COLORMATRIX_PROP_COLOR_MATRIX No documentation. D2D1_COLORMATRIX_PROP_ALPHA_MODE [This documentation is preliminary and is subject to change.] D2D1_COLOR_SPACE The color space is otherwise described, such as with a color profile. D2D1_COLOR_SPACE_CUSTOM The color space is sRGB. D2D1_COLOR_SPACE_SRGB The color space is scRGB. D2D1_COLOR_SPACE_SCRGB Specifies the different methods by which two geometries can be combined. The following illustration shows the different geometry combine modes. D2D1_COMBINE_MODE The two regions are combined by taking the union of both. Given two geometries, A and B, the resulting geometry is geometry A + geometry B. D2D1_COMBINE_MODE_UNION The two regions are combined by taking their intersection. The new area consists of the overlapping region between the two geometries. D2D1_COMBINE_MODE_INTERSECT The two regions are combined by taking the area that exists in the first region but not the second and the area that exists in the second region but not the first. Given two geometries, A and B, the new region consists of (A-B) + (B-A). D2D1_COMBINE_MODE_XOR The second region is excluded from the first. Given two geometries, A and B, the area of geometry B is removed from the area of geometry A, producing a region that is A-B. D2D1_COMBINE_MODE_EXCLUDE Specifies additional features supportable by a compatible render target when it is created. This enumeration allows a bitwise combination of its member values. Use this enumeration when creating a compatible render target with the CreateCompatibleRenderTarget method. For more information about compatible render targets, see the Render Targets Overview.The option may only be requested if the parent render target was created with (for most render targets) or (for render targets created by the CreateCompatibleRenderTarget method). D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS The render target supports no additional features. D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE The render target supports interoperability with the Windows Graphics Device Interface (GDI). D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_GDI_COMPATIBLE [This documentation is preliminary and is subject to change.] D2D1_COMPOSITE_MODE The composite mode is the default for the type of object. D2D1_COMPOSITE_MODE_SOURCE_OVER The standard source-over-destination blend mode. D2D1_COMPOSITE_MODE_DESTINATION_OVER The destination is rendered over the source. D2D1_COMPOSITE_MODE_SOURCE_IN Performs a logical clip of the source pixels against the destination pixels. D2D1_COMPOSITE_MODE_DESTINATION_IN Performs a logical clip of the destination pixels against the source pixels. D2D1_COMPOSITE_MODE_SOURCE_OUT This is the logical inverse to source in. D2D1_COMPOSITE_MODE_DESTINATION_OUT The is the logical inverse to destination in. D2D1_COMPOSITE_MODE_SOURCE_ATOP Writes the source pixels over the destination where there are destination pixels. D2D1_COMPOSITE_MODE_DESTINATION_ATOP Writes the destination pixels over the source where there are destination pixels. D2D1_COMPOSITE_MODE_XOR The source is inverted with the destination. D2D1_COMPOSITE_MODE_PLUS The channel components are summed. D2D1_COMPOSITE_MODE_SOURCE_COPY The source is copied to the destination; the destination pixels are ignored. D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY The destination is copied over the source pixels. D2D1_COMPOSITE_MODE_MASK_INVERT No documentation. D2D1_COMPOSITE_PROP No documentation. D2D1_COMPOSITE_PROP_MODE No documentation. D2D1_CONVOLVEMATRIX_PROP No documentation. D2D1_CONVOLVEMATRIX_PROP_KERNEL_UNIT_LENGTH No documentation. D2D1_CONVOLVEMATRIX_PROP_SCALE_MODE No documentation. D2D1_CONVOLVEMATRIX_PROP_KERNEL_SIZE_X No documentation. D2D1_CONVOLVEMATRIX_PROP_KERNEL_SIZE_Y No documentation. D2D1_CONVOLVEMATRIX_PROP_KERNEL_MATRIX No documentation. D2D1_CONVOLVEMATRIX_PROP_DIVISOR No documentation. D2D1_CONVOLVEMATRIX_PROP_BIAS No documentation. D2D1_CONVOLVEMATRIX_PROP_KERNEL_OFFSET No documentation. D2D1_CONVOLVEMATRIX_PROP_PRESERVE_ALPHA No documentation. D2D1_CONVOLVEMATRIX_PROP_EXPAND_OUTPUT No documentation. D2D1_CONVOLVEMATRIX_SCALE_MODE No documentation. D2D1_CONVOLVEMATRIX_SCALE_MODE_NEAREST_NEIGHBOR No documentation. D2D1_CONVOLVEMATRIX_SCALE_MODE_LINEAR No documentation. D2D1_CONVOLVEMATRIX_SCALE_MODE_CUBIC No documentation. D2D1_CONVOLVEMATRIX_SCALE_MODE_MULTI_SAMPLE_LINEAR No documentation. D2D1_CONVOLVEMATRIX_SCALE_MODE_ANISOTROPIC No documentation. D2D1_CONVOLVEMATRIX_SCALE_MODE_HIGH_QUALITY_CUBIC No documentation. D2D1_CROP_PROP No documentation. D2D1_CROP_PROP_RECT No documentation. D2D1_CROP_PROP_BORDER_MODE Describes the sequence of dashes and gaps in a stroke. The following illustration shows several available dash styles. For more information, see the Stroke Style Example. D2D1_DASH_STYLE A solid line with no breaks. D2D1_DASH_STYLE_SOLID A dash followed by a gap of equal length. The dash and the gap are each twice as long as the stroke thickness. The equivalent dash array for is {2, 2}. D2D1_DASH_STYLE_DASH A dot followed by a longer gap. The equivalent dash array for is {0, 2}. D2D1_DASH_STYLE_DOT A dash, followed by a gap, followed by a dot, followed by another gap. The equivalent dash array for is {2, 2, 0, 2}. D2D1_DASH_STYLE_DASH_DOT A dash, followed by a gap, followed by a dot, followed by another gap, followed by another dot, followed by another gap. The equivalent dash array for is {2, 2, 0, 2, 0, 2}. D2D1_DASH_STYLE_DASH_DOT_DOT The dash pattern is specified by an array of floating-point values. D2D1_DASH_STYLE_CUSTOM Indicates the type of information provided by the Direct2D Debug Layer. To receive debugging messages, you must install the Direct2D Debug Layer. D2D1_DEBUG_LEVEL No documentation. D2D1_DEBUG_LEVEL_NONE No documentation. D2D1_DEBUG_LEVEL_ERROR No documentation. D2D1_DEBUG_LEVEL_WARNING No documentation. D2D1_DEBUG_LEVEL_INFORMATION Specifies how a device context is initialized for GDI rendering when it is retrieved from the render target. Use this enumeration with the method to specify how the device context is initialized for GDI rendering. D2D1_DC_INITIALIZE_MODE The current contents of the render target are copied to the device context when it is initialized. D2D1_DC_INITIALIZE_MODE_COPY The device context is cleared to transparent black when it is initialized. D2D1_DC_INITIALIZE_MODE_CLEAR [This documentation is preliminary and is subject to change.] D2D1_DEVICE_CONTEXT_OPTIONS The device context is created with default options. D2D1_DEVICE_CONTEXT_OPTIONS_NONE Distribute rendering work across multiple threads. D2D1_DEVICE_CONTEXT_OPTIONS_ENABLE_MULTITHREADED_OPTIMIZATIONS No documentation. D2D1_DIRECTIONALBLUR_OPTIMIZATION No documentation. D2D1_DIRECTIONALBLUR_OPTIMIZATION_SPEED No documentation. D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED No documentation. D2D1_DIRECTIONALBLUR_OPTIMIZATION_QUALITY No documentation. D2D1_DIRECTIONALBLUR_PROP No documentation. D2D1_DIRECTIONALBLUR_PROP_STANDARD_DEVIATION No documentation. D2D1_DIRECTIONALBLUR_PROP_ANGLE No documentation. D2D1_DIRECTIONALBLUR_PROP_OPTIMIZATION No documentation. D2D1_DIRECTIONALBLUR_PROP_EXPAND_OUTPUT No documentation. D2D1_DISCRETETRANSFER_PROP No documentation. D2D1_DISCRETETRANSFER_PROP_RED_TABLE No documentation. D2D1_DISCRETETRANSFER_PROP_RED_DISABLE No documentation. D2D1_DISCRETETRANSFER_PROP_GREEN_TABLE No documentation. D2D1_DISCRETETRANSFER_PROP_GREEN_DISABLE No documentation. D2D1_DISCRETETRANSFER_PROP_BLUE_TABLE No documentation. D2D1_DISCRETETRANSFER_PROP_BLUE_DISABLE No documentation. D2D1_DISCRETETRANSFER_PROP_ALPHA_TABLE No documentation. D2D1_DISCRETETRANSFER_PROP_ALPHA_DISABLE No documentation. D2D1_DISPLACEMENTMAP_PROP No documentation. D2D1_DISPLACEMENTMAP_PROP_SCALE No documentation. D2D1_DISPLACEMENTMAP_PROP_X_CHANNEL_SELECT No documentation. D2D1_DISPLACEMENTMAP_PROP_Y_CHANNEL_SELECT No documentation. D2D1_DISPLACEMENTMAP_X_CHANNEL_SELECT No documentation. D2D1_DISPLACEMENTMAP_X_CHANNEL_SELECT_R_CHANNEL No documentation. D2D1_DISPLACEMENTMAP_X_CHANNEL_SELECT_G_CHANNEL No documentation. D2D1_DISPLACEMENTMAP_X_CHANNEL_SELECT_B_CHANNEL No documentation. D2D1_DISPLACEMENTMAP_X_CHANNEL_SELECT_A_CHANNEL No documentation. D2D1_DISPLACEMENTMAP_Y_CHANNEL_SELECT No documentation. D2D1_DISPLACEMENTMAP_Y_CHANNEL_SELECT_R_CHANNEL No documentation. D2D1_DISPLACEMENTMAP_Y_CHANNEL_SELECT_G_CHANNEL No documentation. D2D1_DISPLACEMENTMAP_Y_CHANNEL_SELECT_B_CHANNEL No documentation. D2D1_DISPLACEMENTMAP_Y_CHANNEL_SELECT_A_CHANNEL No documentation. D2D1_DISTANTDIFFUSE_PROP No documentation. D2D1_DISTANTDIFFUSE_PROP_AZIMUTH No documentation. D2D1_DISTANTDIFFUSE_PROP_ELEVATION No documentation. D2D1_DISTANTDIFFUSE_PROP_DIFFUSE_CONSTANT No documentation. D2D1_DISTANTDIFFUSE_PROP_SURFACE_SCALE No documentation. D2D1_DISTANTDIFFUSE_PROP_COLOR No documentation. D2D1_DISTANTDIFFUSE_PROP_KERNEL_UNIT_LENGTH No documentation. D2D1_DISTANTDIFFUSE_PROP_SCALE_MODE No documentation. D2D1_DISTANTDIFFUSE_SCALE_MODE No documentation. D2D1_DISTANTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR No documentation. D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR No documentation. D2D1_DISTANTDIFFUSE_SCALE_MODE_CUBIC No documentation. D2D1_DISTANTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR No documentation. D2D1_DISTANTDIFFUSE_SCALE_MODE_ANISOTROPIC No documentation. D2D1_DISTANTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC No documentation. D2D1_DISTANTSPECULAR_PROP No documentation. D2D1_DISTANTSPECULAR_PROP_AZIMUTH No documentation. D2D1_DISTANTSPECULAR_PROP_ELEVATION No documentation. D2D1_DISTANTSPECULAR_PROP_SPECULAR_EXPONENT No documentation. D2D1_DISTANTSPECULAR_PROP_SPECULAR_CONSTANT No documentation. D2D1_DISTANTSPECULAR_PROP_SURFACE_SCALE No documentation. D2D1_DISTANTSPECULAR_PROP_COLOR No documentation. D2D1_DISTANTSPECULAR_PROP_KERNEL_UNIT_LENGTH No documentation. D2D1_DISTANTSPECULAR_PROP_SCALE_MODE No documentation. D2D1_DISTANTSPECULAR_SCALE_MODE No documentation. D2D1_DISTANTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR No documentation. D2D1_DISTANTSPECULAR_SCALE_MODE_LINEAR No documentation. D2D1_DISTANTSPECULAR_SCALE_MODE_CUBIC No documentation. D2D1_DISTANTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR No documentation. D2D1_DISTANTSPECULAR_SCALE_MODE_ANISOTROPIC No documentation. D2D1_DISTANTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC No documentation. D2D1_DPICOMPENSATION_INTERPOLATION_MODE No documentation. D2D1_DPICOMPENSATION_INTERPOLATION_MODE_NEAREST_NEIGHBOR No documentation. D2D1_DPICOMPENSATION_INTERPOLATION_MODE_LINEAR No documentation. D2D1_DPICOMPENSATION_INTERPOLATION_MODE_CUBIC No documentation. D2D1_DPICOMPENSATION_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR No documentation. D2D1_DPICOMPENSATION_INTERPOLATION_MODE_ANISOTROPIC No documentation. D2D1_DPICOMPENSATION_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC No documentation. D2D1_DPICOMPENSATION_PROP No documentation. D2D1_DPICOMPENSATION_PROP_INTERPOLATION_MODE No documentation. D2D1_DPICOMPENSATION_PROP_BORDER_MODE No documentation. D2D1_DPICOMPENSATION_PROP_INPUT_DPI Specifies whether text snapping is suppressed or clipping to the layout rectangle is enabled. This enumeration allows a bitwise combination of its member values. D2D1_DRAW_TEXT_OPTIONS Text is not vertically snapped to pixel boundaries. This setting is recommended for text that is being animated. D2D1_DRAW_TEXT_OPTIONS_NO_SNAP Text is clipped to the layout rectangle. D2D1_DRAW_TEXT_OPTIONS_CLIP Text is vertically snapped to pixel boundaries and is not clipped to the layout rectangle. D2D1_DRAW_TEXT_OPTIONS_NONE Specifies how a brush paints areas outside of its normal content area. For an , the brush's content is the brush's bitmap. For an , the brush's content area is the gradient axis. For an , the brush's content is the area within the gradient ellipse.For an example, see the Draw Extend Mode Example. D2D1_EXTEND_MODE Repeat the edge pixels of the brush's content for all regions outside the normal content area. D2D1_EXTEND_MODE_CLAMP Repeat the brush's content. D2D1_EXTEND_MODE_WRAP The same as , except that alternate tiles of the brush's content are flipped. (The brush's normal content is drawn untransformed.) D2D1_EXTEND_MODE_MIRROR Specifies whether Direct2D provides synchronization for an and the resources it creates, so that they may be safely accessed from multiple threads. When you create a factory, you can specify whether it is multithreaded or singlethreaded. A singlethreaded factory provides no serialization against any other single threaded instance within Direct2D, so this mechanism provides a very large degree of scaling on the CPU.You can also create a multithreaded factory instance. In this case, the factory and all derived objects can be used from any thread, and each render target can be rendered to independently. Direct2D serializes calls to these objects, so a single multithreaded Direct2D instance won't scale as well on the CPU as many single threaded instances. However, the resources can be shared within the multithreaded instance.Note the qualifier "On the CPU": GPUs generally take advantage of fine-grained parallelism more so than CPUs. For example, multithreaded calls from the CPU might still end up being serialized when being sent to the GPU; however, a whole bank of pixel and vertex shaders will run in parallel to perform the rendering. D2D1_FACTORY_TYPE No documentation. D2D1_FACTORY_TYPE_SINGLE_THREADED No documentation. D2D1_FACTORY_TYPE_MULTI_THREADED Describes the minimum DirectX support required for hardware rendering by a render target. D2D1_FEATURE Direct2D determines whether the video card provides adequate hardware rendering support. D2D1_FEATURE_DOUBLES The video card must support DirectX 9. D2D1_FEATURE_D3D10_X_HARDWARE_OPTIONS Describes the minimum DirectX support required for hardware rendering by a render target. D2D1_FEATURE_LEVEL Direct2D determines whether the video card provides adequate hardware rendering support. D2D1_FEATURE_LEVEL_DEFAULT The video card must support DirectX 9. D2D1_FEATURE_LEVEL_9 The video card must support DirectX 10. D2D1_FEATURE_LEVEL_10 Indicates whether a specific figure is filled or hollow. D2D1_FIGURE_BEGIN No documentation. D2D1_FIGURE_BEGIN_FILLED No documentation. D2D1_FIGURE_BEGIN_HOLLOW Indicates whether a specific figure is open or closed. D2D1_FIGURE_END No documentation. D2D1_FIGURE_END_OPEN No documentation. D2D1_FIGURE_END_CLOSED Specifies how the intersecting areas of geometries or figures are combined to form the area of the composite geometry. Use the enumeration when creating an with the CreateGeometryGroup method, or when modifying the fill mode of an with the method.Direct2D fills the interior of a path by using one of the two fill modes specified by this enumeration: (alternate) or (winding). Because the modes determine how to fill the interior of a closed shape, all shapes are treated as closed when they are filled. If there is a gap in a segment in a shape, draw an imaginary line to close it.To see the difference between the winding and alternate fill modes, assume that you have four circles with the same center and a different radius, as shown in the following illustration. The first one has the radius of 25, the second 50, the third 75, and the fourth 100.The following illustration shows the shape filled by using the alternate fill mode. Notice that the center and third ring are not filled. This is because a ray drawn from any point in either of those two rings passes through an even number of segments.The following illustration explains this process.The following illustration shows how the same shape is filled when the winding fill mode is specified.Notice that all the rings are filled. This is because all the segments run in the same direction, so a ray drawn from any point will cross one or more segments, and the sum of the crossings will not equal zero.The following illustration explains this process. The red arrows represent the direction in which the segments are drawn and the black arrow represents an arbitrary ray that runs from a point in the innermost ring. Starting with a value of zero, for each segment that the ray crosses, a value of one is added for every clockwise intersection. All points lie in the fill region in this illustration, because the count does not equal zero. D2D1_FILL_MODE Determines whether a point is in the fill region by drawing a ray from that point to infinity in any direction, and then counting the number of path segments within the given shape that the ray crosses. If this number is odd, the point is in the fill region; if even, the point is outside the fill region. D2D1_FILL_MODE_ALTERNATE Determines whether a point is in the fill region of the path by drawing a ray from that point to infinity in any direction, and then examining the places where a segment of the shape crosses the ray. Starting with a count of zero, add one each time a segment crosses the ray from left to right and subtract one each time a path segment crosses the ray from right to left, as long as left and right are seen from the perspective of the ray. After counting the crossings, if the result is zero, then the point is outside the path. Otherwise, it is inside the path. D2D1_FILL_MODE_WINDING [This documentation is preliminary and is subject to change.] D2D1_FILTER Use point sampling for minification, magnification, and mip-level sampling. D2D1_FILTER_MIN_MAG_MIP_POINT Use point sampling for minification and magnification; use linear interpolation for mip-level sampling. D2D1_FILTER_MIN_MAG_POINT_MIP_LINEAR Use point sampling for minification; use linear interpolation for magnification; use point sampling for mip-level sampling. D2D1_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT Use point sampling for minification; use linear interpolation for magnification and mip-level sampling. D2D1_FILTER_MIN_POINT_MAG_MIP_LINEAR Use linear interpolation for minification; use point sampling for magnification and mip-level sampling. D2D1_FILTER_MIN_LINEAR_MAG_MIP_POINT Use linear interpolation for minification; use point sampling for magnification; use linear interpolation for mip-level sampling. D2D1_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR Use linear interpolation for minification and magnification; use point sampling for mip-level sampling. D2D1_FILTER_MIN_MAG_LINEAR_MIP_POINT Use linear interpolation for minification, magnification, and mip-level sampling. D2D1_FILTER_MIN_MAG_MIP_LINEAR Use anisotropic interpolation for minification, magnification, and mip-level sampling. D2D1_FILTER_ANISOTROPIC No documentation. D2D1_FLOOD_PROP No documentation. D2D1_FLOOD_PROP_COLOR Specifies which gamma is used for interpolation. Interpolating in a linear gamma space () can avoid changes in perceived brightness caused by the effect of gamma correction in spaces where the gamma is not 1.0, such as the default sRGB color space, where the gamma is 2.2. For an example of the differences between these two blending modes, consider the following illustration, which shows two gradients, each of which blends from red to blue to green:The first gradient is interpolated linearly in the space of the render target (sRGB in this case), and one can see the dark bands between each color. The second gradient uses a gamma-correct linear interpolation, and thus does not exhibit the same variations in brightness. D2D1_GAMMA Interpolation is performed in the standard RGB (sRGB) gamma. D2D1_GAMMA_2_2 Interpolation is performed in the linear-gamma color space. D2D1_GAMMA_1_0 No documentation. D2D1_GAMMATRANSFER_PROP No documentation. D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE No documentation. D2D1_GAMMATRANSFER_PROP_RED_EXPONENT No documentation. D2D1_GAMMATRANSFER_PROP_RED_OFFSET No documentation. D2D1_GAMMATRANSFER_PROP_RED_DISABLE No documentation. D2D1_GAMMATRANSFER_PROP_GREEN_AMPLITUDE No documentation. D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT No documentation. D2D1_GAMMATRANSFER_PROP_GREEN_OFFSET No documentation. D2D1_GAMMATRANSFER_PROP_GREEN_DISABLE No documentation. D2D1_GAMMATRANSFER_PROP_BLUE_AMPLITUDE No documentation. D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT No documentation. D2D1_GAMMATRANSFER_PROP_BLUE_OFFSET No documentation. D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE No documentation. D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE No documentation. D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT No documentation. D2D1_GAMMATRANSFER_PROP_ALPHA_OFFSET No documentation. D2D1_GAMMATRANSFER_PROP_ALPHA_DISABLE No documentation. D2D1_GAUSSIANBLUR_OPTIMIZATION No documentation. D2D1_GAUSSIANBLUR_OPTIMIZATION_SPEED No documentation. D2D1_GAUSSIANBLUR_OPTIMIZATION_BALANCED No documentation. D2D1_GAUSSIANBLUR_OPTIMIZATION_QUALITY No documentation. D2D1_GAUSSIANBLUR_PROP No documentation. D2D1_GAUSSIANBLUR_PROP_STANDARD_DEVIATION No documentation. D2D1_GAUSSIANBLUR_PROP_OPTIMIZATION No documentation. D2D1_GAUSSIANBLUR_PROP_EXPAND_OUTPUT Describes how one geometry object is spatially related to another geometry object. D2D1_GEOMETRY_RELATION The relationship between the two geometries cannot be determined. This value is never returned by any D2D method. D2D1_GEOMETRY_RELATION_UNKNOWN The two geometries do not intersect at all. D2D1_GEOMETRY_RELATION_DISJOINT The instance geometry is entirely contained by the passed-in geometry. D2D1_GEOMETRY_RELATION_IS_CONTAINED The instance geometry entirely contains the passed-in geometry. D2D1_GEOMETRY_RELATION_CONTAINS The two geometries overlap but neither completely contains the other. D2D1_GEOMETRY_RELATION_OVERLAP Specifies how a geometry is simplified to an . D2D1_GEOMETRY_SIMPLIFICATION_OPTION No documentation. D2D1_GEOMETRY_SIMPLIFICATION_OPTION_CUBICS_AND_LINES No documentation. D2D1_GEOMETRY_SIMPLIFICATION_OPTION_LINES No documentation. D2D1_HIGHQUALITYSCALE_PROP No documentation. D2D1_HIGHQUALITYSCALE_PROP_SCALE No documentation. D2D1_HIGHQUALITYSCALE_PROP_CENTER_POINT No documentation. D2D1_HIGHQUALITYSCALE_PROP_BORDER_MODE No documentation. D2D1_HIGHQUALITYSCALE_PROP_SHARPNESS No documentation. D2D1_HISTOGRAM_PROP No documentation. D2D1_HISTOGRAM_PROP_NUM_BINS No documentation. D2D1_HISTOGRAM_PROP_CHANNEL_SELECT No documentation. D2D1_HISTOGRAM_PROP_HISTOGRAM_OUTPUT No documentation. D2D1_HUEROTATION_PROP No documentation. D2D1_HUEROTATION_PROP_ANGLE No documentation. D2D1_INTERPOLATION_MODE No documentation. D2D1_INTERPOLATION_MODE_NEAREST_NEIGHBOR No documentation. D2D1_INTERPOLATION_MODE_LINEAR No documentation. D2D1_INTERPOLATION_MODE_CUBIC No documentation. D2D1_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR No documentation. D2D1_INTERPOLATION_MODE_ANISOTROPIC No documentation. D2D1_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC No documentation. D2D1_ENUM_0 No documentation. D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR No documentation. D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR No documentation. D2D1_INTERPOLATION_MODE_DEFINITION_CUBIC No documentation. D2D1_INTERPOLATION_MODE_DEFINITION_MULTI_SAMPLE_LINEAR No documentation. D2D1_INTERPOLATION_MODE_DEFINITION_ANISOTROPIC No documentation. D2D1_INTERPOLATION_MODE_DEFINITION_HIGH_QUALITY_CUBIC No documentation. D2D1_INTERPOLATION_MODE_DEFINITION_FANT No documentation. D2D1_INTERPOLATION_MODE_DEFINITION_MIPMAP_LINEAR Specifies options that can be applied when a layer resource is applied to create a layer. ClearType antialiasing must use the current contents of the render target to blend properly. When a pushed layer requests initializing for ClearType, Direct 2D copies the current contents of the render target into the layer so that ClearType antialiasing can be performed. Rendering ClearType text into a transparent layer does not produce the desired results.A small performance hit from re-copying content occurs when is called. D2D1_LAYER_OPTIONS The text in this layer does not use ClearType antialiasing. D2D1_LAYER_OPTIONS_NONE The layer renders correctly for ClearType text. If the render target is set to ClearType, the layer continues to render ClearType. If the render target is set to ClearType and this option is not specified, the render target will be set to render gray-scale until the layer is popped. The caller can override this default by calling SetTextAntialiasMode while within the layer. This flag is slightly slower than the default. D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE No documentation. D2D1_LAYER_OPTIONS1 No documentation. D2D1_LAYER_OPTIONS1_NONE No documentation. D2D1_LAYER_OPTIONS1_INITIALIZE_FROM_BACKGROUND No documentation. D2D1_LAYER_OPTIONS1_IGNORE_ALPHA No documentation. D2D1_LINEARTRANSFER_PROP No documentation. D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT No documentation. D2D1_LINEARTRANSFER_PROP_RED_SLOPE No documentation. D2D1_LINEARTRANSFER_PROP_RED_DISABLE No documentation. D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT No documentation. D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE No documentation. D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE No documentation. D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT No documentation. D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE No documentation. D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE No documentation. D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT No documentation. D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE No documentation. D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE Describes the shape that joins two lines or segments. A miter limit affects how sharp miter joins are allowed to be. If the line join style is , then the join will be mitered with regular angular vertices if it doesn't extend beyond the miter limit; otherwise, the line join will be beveled.The following illustration shows different line join settings for the same stroked path geometry. For more information, see Stroke Style Example. D2D1_LINE_JOIN Regular angular vertices. D2D1_LINE_JOIN_MITER Beveled vertices. D2D1_LINE_JOIN_BEVEL Rounded vertices. D2D1_LINE_JOIN_ROUND Regular angular vertices unless the join would extend beyond the miter limit; otherwise, beveled vertices. D2D1_LINE_JOIN_MITER_OR_BEVEL [This documentation is preliminary and is subject to change.] The option can be used only if the bitmap was created with the flag.These flags will be not be able to be used on bitmaps created by the . However, the IDImageSourceTransform will receive bitmaps for which these flags are valid. D2D1_MAP_OPTIONS No documentation. D2D1_MAP_OPTIONS_NONE No documentation. D2D1_MAP_OPTIONS_READ No documentation. D2D1_MAP_OPTIONS_WRITE No documentation. D2D1_MAP_OPTIONS_DISCARD Indicates the measuring method used for text layout. DWRITE_MEASURING_MODE Specifies that text is measured using glyph ideal metrics whose values are independent to the current display resolution. DWRITE_MEASURING_MODE_NATURAL Specifies that text is measured using glyph display-compatible metrics whose values tuned for the current display resolution. DWRITE_MEASURING_MODE_GDI_CLASSIC Specifies that text is measured using the same glyph display metrics as text measured by GDI using a font created with CLEARTYPE_NATURAL_QUALITY. DWRITE_MEASURING_MODE_GDI_NATURAL No documentation. D2D1_MORPHOLOGY_MODE No documentation. D2D1_MORPHOLOGY_MODE_ERODE No documentation. D2D1_MORPHOLOGY_MODE_DILATE No documentation. D2D1_MORPHOLOGY_PROP No documentation. D2D1_MORPHOLOGY_PROP_MODE No documentation. D2D1_MORPHOLOGY_PROP_WIDTH No documentation. D2D1_MORPHOLOGY_PROP_HEIGHT Describes whether an opacity mask contains graphics or text. Direct2D uses this information to determine which gamma space to use when blending the opacity mask. D2D1_OPACITY_MASK_CONTENT The opacity mask contains graphics. The opacity mask is blended in the gamma 2.2 color space. D2D1_OPACITY_MASK_CONTENT_GRAPHICS The opacity mask contains non-GDI text. The gamma space used for blending is obtained from the render target's text rendering parameters. (). D2D1_OPACITY_MASK_CONTENT_TEXT_NATURAL The opacity mask contains text rendered using the GDI-compatible rendering mode. The opacity mask is blended using the gamma for GDI rendering. D2D1_OPACITY_MASK_CONTENT_TEXT_GDI_COMPATIBLE Indicates whether a segment should be stroked and whether the join between this segment and the previous one should be smooth. This enumeration allows a bitwise combination of its member values. D2D1_PATH_SEGMENT The segment is joined as specified by the interface, and it is stroked. D2D1_PATH_SEGMENT_NONE The segment is not stroked. D2D1_PATH_SEGMENT_FORCE_UNSTROKED The segment is always joined with the one preceding it using a round line join, regardless of which D2D1_LINE_JOINenumeration is specified by the interface. If this segment is the first segment and the figure is closed, a round line join is used to connect the closing segment with the first segment. If the figure is not closed, this setting has no effect on the first segment of the figure. If is called just before , the join between the closing segment and the last explicitly specified segment is affected. D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN No documentation. D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE No documentation. D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR No documentation. D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_LINEAR No documentation. D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_CUBIC No documentation. D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR No documentation. D2D1_3DPERSPECTIVETRANSFORM_INTERPOLATION_MODE_ANISOTROPIC No documentation. D2D1_3DPERSPECTIVETRANSFORM_PROP No documentation. D2D1_3DPERSPECTIVETRANSFORM_PROP_INTERPOLATION_MODE No documentation. D2D1_3DPERSPECTIVETRANSFORM_PROP_BORDER_MODE No documentation. D2D1_3DPERSPECTIVETRANSFORM_PROP_DEPTH No documentation. D2D1_3DPERSPECTIVETRANSFORM_PROP_PERSPECTIVE_ORIGIN No documentation. D2D1_3DPERSPECTIVETRANSFORM_PROP_LOCAL_OFFSET No documentation. D2D1_3DPERSPECTIVETRANSFORM_PROP_GLOBAL_OFFSET No documentation. D2D1_3DPERSPECTIVETRANSFORM_PROP_ROTATION_ORIGIN No documentation. D2D1_3DPERSPECTIVETRANSFORM_PROP_ROTATION [This documentation is preliminary and is subject to change.] If the shader specifies , it must still correctly implement the region of interest calculations in and . D2D1_PIXEL_OPTIONS The pixel shader is not restricted in its sampling. D2D1_PIXEL_OPTIONS_NONE The pixel shader samples inputs only at the same scene coordinate as the output pixel and returns transparent black whenever the input pixels are also transparent black. D2D1_PIXEL_OPTIONS_TRIVIAL_SAMPLING No documentation. D2D1_POINTDIFFUSE_PROP No documentation. D2D1_POINTDIFFUSE_PROP_LIGHT_POSITION No documentation. D2D1_POINTDIFFUSE_PROP_DIFFUSE_CONSTANT No documentation. D2D1_POINTDIFFUSE_PROP_SURFACE_SCALE No documentation. D2D1_POINTDIFFUSE_PROP_COLOR No documentation. D2D1_POINTDIFFUSE_PROP_KERNEL_UNIT_LENGTH No documentation. D2D1_POINTDIFFUSE_PROP_SCALE_MODE No documentation. D2D1_POINTDIFFUSE_SCALE_MODE No documentation. D2D1_POINTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR No documentation. D2D1_POINTDIFFUSE_SCALE_MODE_LINEAR No documentation. D2D1_POINTDIFFUSE_SCALE_MODE_CUBIC No documentation. D2D1_POINTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR No documentation. D2D1_POINTDIFFUSE_SCALE_MODE_ANISOTROPIC No documentation. D2D1_POINTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC No documentation. D2D1_POINTSPECULAR_PROP No documentation. D2D1_POINTSPECULAR_PROP_LIGHT_POSITION No documentation. D2D1_POINTSPECULAR_PROP_SPECULAR_EXPONENT No documentation. D2D1_POINTSPECULAR_PROP_SPECULAR_CONSTANT No documentation. D2D1_POINTSPECULAR_PROP_SURFACE_SCALE No documentation. D2D1_POINTSPECULAR_PROP_COLOR No documentation. D2D1_POINTSPECULAR_PROP_KERNEL_UNIT_LENGTH No documentation. D2D1_POINTSPECULAR_PROP_SCALE_MODE No documentation. D2D1_POINTSPECULAR_SCALE_MODE No documentation. D2D1_POINTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR No documentation. D2D1_POINTSPECULAR_SCALE_MODE_LINEAR No documentation. D2D1_POINTSPECULAR_SCALE_MODE_CUBIC No documentation. D2D1_POINTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR No documentation. D2D1_POINTSPECULAR_SCALE_MODE_ANISOTROPIC No documentation. D2D1_POINTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC Describes how a render target behaves when it presents its content. This enumeration allows a bitwise combination of its member values. D2D1_PRESENT_OPTIONS The render target waits until the display refreshes to present and discards the frame upon presenting. D2D1_PRESENT_OPTIONS_NONE The render target does not discard the frame upon presenting. D2D1_PRESENT_OPTIONS_RETAIN_CONTENTS The render target does not wait until the display refreshes to present. D2D1_PRESENT_OPTIONS_IMMEDIATELY [This documentation is preliminary and is subject to change.] When applying a primitive blend the blend result is calculated based on the primitive blend set. This blend result is then linearly interpolated with the value in the destination proportional to the amount that the primitive covers the destination pixel. D2D1_PRIMITIVE_BLEND The standard source-over-destination blend mode. D2D1_PRIMITIVE_BLEND_SOURCE_OVER The source is copied to the destination; the destination pixels are ignored. D2D1_PRIMITIVE_BLEND_COPY No documentation. D2D1_PRINT_FONT_SUBSET_MODE No documentation. D2D1_PRINT_FONT_SUBSET_MODE_DEFAULT No documentation. D2D1_PRINT_FONT_SUBSET_MODE_EACHPAGE No documentation. D2D1_PRINT_FONT_SUBSET_MODE_NONE [This documentation is preliminary and is subject to change.] D2D1_PROPERTY An unknown property. D2D1_PROPERTY_CLSID An arbitrary-length string. D2D1_PROPERTY_DISPLAYNAME A 32-bit integer value constrained to be either 0 or 1. D2D1_PROPERTY_AUTHOR An unsigned 32-bit integer. D2D1_PROPERTY_CATEGORY A signed 32-bit integer. D2D1_PROPERTY_DESCRIPTION A 32-bit float. D2D1_PROPERTY_INPUTS Two 32-bit float values. D2D1_PROPERTY_CACHED Three 32-bit float values. D2D1_PROPERTY_PRECISION Four 32-bit float values. D2D1_PROPERTY_MIN_INPUTS An arbitrary number of bytes. D2D1_PROPERTY_MAX_INPUTS [This documentation is preliminary and is subject to change.] D2D1_PROPERTY_TYPE An unknown property. D2D1_PROPERTY_TYPE_UNKNOWN An arbitrary-length string. D2D1_PROPERTY_TYPE_STRING A 32-bit integer value constrained to be either 0 or 1. D2D1_PROPERTY_TYPE_BOOL An unsigned 32-bit integer. D2D1_PROPERTY_TYPE_UINT32 A signed 32-bit integer. D2D1_PROPERTY_TYPE_INT32 A 32-bit float. D2D1_PROPERTY_TYPE_FLOAT Two 32-bit float values. D2D1_PROPERTY_TYPE_VECTOR2 Three 32-bit float values. D2D1_PROPERTY_TYPE_VECTOR3 Four 32-bit float values. D2D1_PROPERTY_TYPE_VECTOR4 An arbitrary number of bytes. D2D1_PROPERTY_TYPE_BLOB A returned COM or nano-COM interface. D2D1_PROPERTY_TYPE_IUNKNOWN An enumeration. The value should be treated as a UINT32 with a defined array of fields to specify the bindings to human-readable strings. D2D1_PROPERTY_TYPE_ENUM An enumeration. The value is the count of sub-properties in the array. The set of array elements will be contained in the sub-property. D2D1_PROPERTY_TYPE_ARRAY A CLSID. D2D1_PROPERTY_TYPE_CLSID A 3x2 matrix of float values. D2D1_PROPERTY_TYPE_MATRIX_3X2 A 4x2 matrix of float values. D2D1_PROPERTY_TYPE_MATRIX_4X3 A 4x4 matrix of float values. D2D1_PROPERTY_TYPE_MATRIX_4X4 A 5x4 matrix of float values. D2D1_PROPERTY_TYPE_MATRIX_5X4 No documentation. D2D1_PROPERTY_TYPE_COLOR_CONTEXT Describes whether a render target uses hardware or software rendering, or if Direct2D should select the rendering mode. Not every render target supports hardware rendering. For more information, see the Render Targets Overview. D2D1_RENDER_TARGET_TYPE The render target uses hardware rendering, if available; otherwise, it uses software rendering. D2D1_RENDER_TARGET_TYPE_DEFAULT The render target uses software rendering only. D2D1_RENDER_TARGET_TYPE_SOFTWARE The render target uses hardware rendering only. D2D1_RENDER_TARGET_TYPE_HARDWARE Describes how a render target is remoted and whether it should be GDI-compatible. This enumeration allows a bitwise combination of its member values. D2D1_RENDER_TARGET_USAGE The render target attempts to use Direct3D command-stream remoting and uses bitmap remoting if stream remoting fails. The render target is not GDI-compatible. D2D1_RENDER_TARGET_USAGE_NONE The render target renders content locally and sends it to the terminal services client as a bitmap. D2D1_RENDER_TARGET_USAGE_FORCE_BITMAP_REMOTING The render target can be used efficiently with GDI. D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE No documentation. D2D1_SATURATION_PROP No documentation. D2D1_SATURATION_PROP_SATURATION No documentation. D2D1_SHADOW_OPTIMIZATION No documentation. D2D1_SHADOW_OPTIMIZATION_SPEED No documentation. D2D1_SHADOW_OPTIMIZATION_BALANCED No documentation. D2D1_SHADOW_OPTIMIZATION_QUALITY No documentation. D2D1_SHADOW_PROP No documentation. D2D1_SHADOW_PROP_BLUR_STANDARD_DEVIATION No documentation. D2D1_SHADOW_PROP_COLOR No documentation. D2D1_SHADOW_PROP_OPTIMIZATION No documentation. D2D1_SPOTDIFFUSE_PROP No documentation. D2D1_SPOTDIFFUSE_PROP_LIGHT_POSITION No documentation. D2D1_SPOTDIFFUSE_PROP_POINTS_AT No documentation. D2D1_SPOTDIFFUSE_PROP_FOCUS No documentation. D2D1_SPOTDIFFUSE_PROP_LIMITING_CONE_ANGLE No documentation. D2D1_SPOTDIFFUSE_PROP_DIFFUSE_CONSTANT No documentation. D2D1_SPOTDIFFUSE_PROP_SURFACE_SCALE No documentation. D2D1_SPOTDIFFUSE_PROP_COLOR No documentation. D2D1_SPOTDIFFUSE_PROP_KERNEL_UNIT_LENGTH No documentation. D2D1_SPOTDIFFUSE_PROP_SCALE_MODE No documentation. D2D1_SPOTDIFFUSE_SCALE_MODE No documentation. D2D1_SPOTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR No documentation. D2D1_SPOTDIFFUSE_SCALE_MODE_LINEAR No documentation. D2D1_SPOTDIFFUSE_SCALE_MODE_CUBIC No documentation. D2D1_SPOTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR No documentation. D2D1_SPOTDIFFUSE_SCALE_MODE_ANISOTROPIC No documentation. D2D1_SPOTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC No documentation. D2D1_SPOTSPECULAR_PROP No documentation. D2D1_SPOTSPECULAR_PROP_LIGHT_POSITION No documentation. D2D1_SPOTSPECULAR_PROP_POINTS_AT No documentation. D2D1_SPOTSPECULAR_PROP_FOCUS No documentation. D2D1_SPOTSPECULAR_PROP_LIMITING_CONE_ANGLE No documentation. D2D1_SPOTSPECULAR_PROP_SPECULAR_EXPONENT No documentation. D2D1_SPOTSPECULAR_PROP_SPECULAR_CONSTANT No documentation. D2D1_SPOTSPECULAR_PROP_SURFACE_SCALE No documentation. D2D1_SPOTSPECULAR_PROP_COLOR No documentation. D2D1_SPOTSPECULAR_PROP_KERNEL_UNIT_LENGTH No documentation. D2D1_SPOTSPECULAR_PROP_SCALE_MODE No documentation. D2D1_SPOTSPECULAR_SCALE_MODE No documentation. D2D1_SPOTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR No documentation. D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR No documentation. D2D1_SPOTSPECULAR_SCALE_MODE_CUBIC No documentation. D2D1_SPOTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR No documentation. D2D1_SPOTSPECULAR_SCALE_MODE_ANISOTROPIC No documentation. D2D1_SPOTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC [This documentation is preliminary and is subject to change.] It is important to distinguish between the geometry being stroked and the shape of the stroke pen. When or is specified, the geometry still respects the transform and dpi, but the pen that traces the geometry will not. D2D1_STROKE_TRANSFORM_TYPE The stroke respects the currently set world transform, the dpi, and the stroke width. D2D1_STROKE_TRANSFORM_TYPE_NORMAL The stroke does not respect the world transform but it does respect the dpi and stroke width. D2D1_STROKE_TRANSFORM_TYPE_FIXED The stroke is forced to 1 pixel wide (in device space) and does not respect the world transform, the dpi, or the stroke width. D2D1_STROKE_TRANSFORM_TYPE_HAIRLINE [This documentation is preliminary and is subject to change.] D2D1_SUBPROPERTY The name for the parent property. D2D1_SUBPROPERTY_DISPLAYNAME A Boolean indicating whether the parent property is writeable. D2D1_SUBPROPERTY_ISREADONLY The minimum value that can be set to the parent property. D2D1_SUBPROPERTY_MIN The maximum value that can be set to the parent property. D2D1_SUBPROPERTY_MAX The default value of the parent property. D2D1_SUBPROPERTY_DEFAULT An array of name/index pairs that indicate the possible values that can be set to the parent property. D2D1_SUBPROPERTY_FIELDS An index sub-property used by the elements of the array. D2D1_SUBPROPERTY_INDEX Defines the direction that an elliptical arc is drawn. D2D1_SWEEP_DIRECTION Arcs are drawn in a counterclockwise (negative-angle) direction. D2D1_SWEEP_DIRECTION_COUNTER_CLOCKWISE Arcs are drawn in a clockwise (positive-angle) direction. D2D1_SWEEP_DIRECTION_CLOCKWISE No documentation. D2D1_TABLETRANSFER_PROP No documentation. D2D1_TABLETRANSFER_PROP_RED_TABLE No documentation. D2D1_TABLETRANSFER_PROP_RED_DISABLE No documentation. D2D1_TABLETRANSFER_PROP_GREEN_TABLE No documentation. D2D1_TABLETRANSFER_PROP_GREEN_DISABLE No documentation. D2D1_TABLETRANSFER_PROP_BLUE_TABLE No documentation. D2D1_TABLETRANSFER_PROP_BLUE_DISABLE No documentation. D2D1_TABLETRANSFER_PROP_ALPHA_TABLE No documentation. D2D1_TABLETRANSFER_PROP_ALPHA_DISABLE Describes the antialiasing mode used for drawing text. This enumeration is used with the SetTextAntialiasMode of an to specify how text and glyphs are antialiased.By default, Direct2D renders text in ClearType mode. Factors that can downgrade the default quality to grayscale or aliased:If the value is , then the default text antialiasing mode is aliased. To change the DirectWrite rendering mode of an , use the method. If the value is , then the default text antialiasing mode is grayscale. If the render target has an alpha channel and is not set to , then the default text antialiasing mode is grayscale. If is called without (and the corresponding PopLayer has not been called yet), then the default text antialiasing mode is grayscale. D2D1_TEXT_ANTIALIAS_MODE Use the system default. See Remarks. D2D1_TEXT_ANTIALIAS_MODE_DEFAULT Use ClearType antialiasing. D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE Use grayscale antialiasing. D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE Do not use antialiasing. D2D1_TEXT_ANTIALIAS_MODE_ALIASED [This documentation is preliminary and is subject to change.] D2D1_THREADING_MODE The created objects can be used in a rental-threaded manner. D2D1_THREADING_MODE_SINGLE_THREADED The created objects will be free threaded. D2D1_THREADING_MODE_MULTI_THREADED No documentation. D2D1_TILE_PROP No documentation. D2D1_TILE_PROP_RECT No documentation. D2D1_3DTRANSFORM_INTERPOLATION_MODE No documentation. D2D1_3DTRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR No documentation. D2D1_3DTRANSFORM_INTERPOLATION_MODE_LINEAR No documentation. D2D1_3DTRANSFORM_INTERPOLATION_MODE_CUBIC No documentation. D2D1_3DTRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR No documentation. D2D1_3DTRANSFORM_INTERPOLATION_MODE_ANISOTROPIC No documentation. D2D1_3DTRANSFORM_PROP No documentation. D2D1_3DTRANSFORM_PROP_INTERPOLATION_MODE No documentation. D2D1_3DTRANSFORM_PROP_BORDER_MODE No documentation. D2D1_3DTRANSFORM_PROP_TRANSFORM_MATRIX No documentation. D2D1_TURBULENCE_NOISE No documentation. D2D1_TURBULENCE_NOISE_FRACTAL_SUM No documentation. D2D1_TURBULENCE_NOISE_TURBULENCE No documentation. D2D1_TURBULENCE_PROP No documentation. D2D1_TURBULENCE_PROP_OFFSET No documentation. D2D1_TURBULENCE_PROP_SIZE No documentation. D2D1_TURBULENCE_PROP_BASE_FREQUENCY No documentation. D2D1_TURBULENCE_PROP_NUM_OCTAVES No documentation. D2D1_TURBULENCE_PROP_SEED No documentation. D2D1_TURBULENCE_PROP_NOISE No documentation. D2D1_TURBULENCE_PROP_STITCHABLE [This documentation is preliminary and is subject to change.] Setting the unit mode to is the same as setting the dots per inch (dpi) to 96. However, when the unit mode is restored, the dpi will be remembered. D2D1_UNIT_MODE Units will be interpreted as device-independent pixels (1/96"). D2D1_UNIT_MODE_DIPS Units will be interpreted as pixels. D2D1_UNIT_MODE_PIXELS [This documentation is preliminary and is subject to change.] D2D1_VERTEX_OPTIONS The logical equivalent of having no flags set. D2D1_VERTEX_OPTIONS_NONE If this flag is set, the renderer assumes that the vertex shader will cover the entire region of interest with vertices and need not clear the destination render target. If this flag is not set, the renderer assumes that the vertices do not cover the entire region interest and must clear the render target to transparent black first. D2D1_VERTEX_OPTIONS_DO_NOT_CLEAR The renderer will use a depth buffer when rendering custom vertices. The depth buffer will be used for calculating occlusion information. This can result in the renderer output being draw-order dependent if it contains transparency. D2D1_VERTEX_OPTIONS_USE_DEPTH_BUFFER Indicates that custom vertices do not overlap each other. D2D1_VERTEX_OPTIONS_ASSUME_NO_OVERLAP [This documentation is preliminary and is subject to change.] If a dynamic vertex buffer is created, Direct2D will not necessarily map the buffer directly to a Microsoft Direct3D vertex buffer. Instead, a system memory copy can be copied to the rendering engine vertex buffer as the effects are rendered. D2D1_VERTEX_USAGE The created vertex buffer is updated infrequently. D2D1_VERTEX_USAGE_STATIC The created vertex buffer is changed frequently. D2D1_VERTEX_USAGE_DYNAMIC Describes whether a window is occluded. If the window was occluded the last time EndDraw was called, the next time the render target calls CheckWindowState, it returns regardless of the current window state. If you want to use CheckWindowState to check the current window state, call CheckWindowState after every EndDraw call and ignore its return value. This will ensure that your next call to CheckWindowState state returns the actual window state. D2D1_WINDOW_STATE The window is not occluded. D2D1_WINDOW_STATE_NONE The window is occluded. D2D1_WINDOW_STATE_OCCLUDED Functions Tries to invert the specified matrix. The matrix to invert. true if the matrix was inverted; otherwise, false. BOOL D2D1InvertMatrix([InOut] D2D_MATRIX_3X2_F* matrix) Indicates whether the specified matrix is invertible. The matrix to test. true if the matrix was inverted; otherwise, false. BOOL D2D1IsMatrixInvertible([In] const D2D_MATRIX_3X2_F* matrix) Creates a rotation transformation that rotates by the specified angle about the specified point. The clockwise rotation angle, in degrees. The point about which to rotate. When this method returns, contains the new rotation transformation. You must allocate storage for this parameter. Rotation occurs in the plane of the 2-D surface. void D2D1MakeRotateMatrix([In] float angle,[In] D2D_POINT_2F center,[Out] D2D_MATRIX_3X2_F* matrix) Creates a factory object that can be used to create Direct2D resources. The threading model of the factory and the resources it creates. A reference to the IID of that is obtained by using __uuidof(). The level of detail provided to the debugging layer. When this method returns, contains the address to a reference to the new factory. If this function succeeds, it returns . Otherwise, it returns an error code. The interface provides the starting point for Direct2D. In general, objects created from a single instance of a factory object can be used with other resources created from that instance, but not with resources created by other factory instances. HRESULT D2D1CreateFactory([In] D2D1_FACTORY_TYPE factoryType,[In] const GUID& riid,[In, Optional] const D2D1_FACTORY_OPTIONS* pFactoryOptions,[Out] void** ppIFactory) Creates a skew transformation that has the specified x-axis angle, y-axis angle, and center point. The x-axis skew angle, which is measured in degrees counterclockwise from the y-axis. The y-axis skew angle, which is measured in degrees counterclockwise from the x-axis. The center point of the skew operation. When this method returns, contains the rotation transformation. You must allocate storate for this parameter. void D2D1MakeSkewMatrix([In] float angleX,[In] float angleY,[In] D2D_POINT_2F center,[Out] D2D_MATRIX_3X2_F* matrix) No documentation. No documentation. No documentation. No documentation. void D2D1SinCos([In] float angle,[Out] float* s,[Out] float* c) [This documentation is preliminary and is subject to change.] The DXGI surface the Direct2D device context is associated with. The properties to apply to the Direct2D device context. When this function returns, contains the address of a reference to a Direct2D device context. The function returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. E_OUTOFMEMORYDirect2D could not allocate sufficient memory to complete the call. E_INVALIDARGAn invalid value was passed to the method.? This function will also create a new that can be retrieved through .This function will also create a new that can be retrieved through .The DXGI device will be specified implicitly through dxgiSurface.The created device context will have exactly the same behavior as if ID2D1DeviceContext::SetTargetSurface were called with the corresponding surface.If creationProperties are not specified, the Direct2D device will inherit its threading mode from the DXGI device implied by dxgiSurface and debug tracing will not be enabled. HRESULT D2D1CreateDeviceContext([In] IDXGISurface* dxgiSurface,[In, Optional] const D2D1_CREATION_PROPERTIES* creationProperties,[Out, Fast] ID2D1DeviceContext** d2dDeviceContext) [This documentation is preliminary and is subject to change.] The DXGI device the Direct2D device is associated with. The properties to apply to the Direct2D device. When this function returns, contains the address of a reference to a Direct2D device. The function returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. E_OUTOFMEMORYDirect2D could not allocate sufficient memory to complete the call. E_INVALIDARGAn invalid value was passed to the method.? This function will also create a new that can be retrieved through .If the creation properties are not specified, then d2dDevice will inherit its threading mode from dxgiDevice and debug tracing will not be enabled. HRESULT D2D1CreateDevice([In] IDXGIDevice* dxgiDevice,[In, Optional] const D2D1_CREATION_PROPERTIES* creationProperties,[Out, Fast] ID2D1Device** d2dDevice) No documentation. No documentation. No documentation. float D2D1Tan([In] float angle) No documentation. No documentation. No documentation. No documentation. No documentation. D2D_COLOR_F D2D1ConvertColorSpace([In] D2D1_COLOR_SPACE sourceColorSpace,[In] D2D1_COLOR_SPACE destinationColorSpace,[In] const D2D_COLOR_F* color) No documentation. No documentation. No documentation. No documentation. No documentation. float D2D1Vec3Length([In] float x,[In] float y,[In] float z) [This documentation is preliminary and is subject to change.] ID2D1AnalysisTransform Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] The data that the transform will analyze. The size of the analysis data. If the method succeeds, it returns . If it fails, it returns an error code. The output of the transform will be copied to CPU-accessible memory by the imaging effects system before being passed to the implementation.If this call fails, the corresponding instance is placed into an error state and fails to draw. HRESULT ID2D1AnalysisTransform::ProcessAnalysisResults([In, Buffer] const unsigned char* analysisData,[In] unsigned int analysisDataCount) [This documentation is preliminary and is subject to change.] ID2D1BlendTransform [This documentation is preliminary and is subject to change.] ID2D1ConcreteTransform [This documentation is preliminary and is subject to change.] ID2D1TransformNode Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] This method returns the number of inputs to this transform node. unsigned int ID2D1TransformNode::GetInputCount() [This documentation is preliminary and is subject to change.] GetInputCount unsigned int ID2D1TransformNode::GetInputCount() Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] The number of bits and the type of the output buffer. The number of channels in the output buffer (1 or 4). The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. E_INVALIDARGOne or more arguments are not valid? The available channel depth and precision depend on the capabilities of the underlying Microsoft Direct3D device. HRESULT ID2D1ConcreteTransform::SetOutputBuffer([In] D2D1_BUFFER_PRECISION bufferPrecision,[In] D2D1_CHANNEL_DEPTH channelDepth) [This documentation is preliminary and is subject to change.] TRUE if the output should be cached; otherwise, . void ID2D1ConcreteTransform::SetCached([In] BOOL isCached) [This documentation is preliminary and is subject to change.] SetCached void ID2D1ConcreteTransform::SetCached([In] BOOL isCached) Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] The new blend description specified for the blend transform. void ID2D1BlendTransform::SetDescription([In] const D2D1_BLEND_DESCRIPTION* description) No documentation. No documentation. void ID2D1BlendTransform::GetDescription([Out] D2D1_BLEND_DESCRIPTION* description) No documentation. GetDescription void ID2D1BlendTransform::GetDescription([Out] D2D1_BLEND_DESCRIPTION* description) [This documentation is preliminary and is subject to change.] ID2D1BorderTransform Initializes a new instance of the class. The native pointer. No documentation. No documentation. void ID2D1BorderTransform::SetExtendModeX([In] D2D1_EXTEND_MODE extendMode) No documentation. No documentation. void ID2D1BorderTransform::SetExtendModeY([In] D2D1_EXTEND_MODE extendMode) [This documentation is preliminary and is subject to change.] This method returns the extend mode in the x direction. D2D1_EXTEND_MODE ID2D1BorderTransform::GetExtendModeX() [This documentation is preliminary and is subject to change.] This method returns the extend mode in the y direction. D2D1_EXTEND_MODE ID2D1BorderTransform::GetExtendModeY() [This documentation is preliminary and is subject to change.] GetExtendModeX D2D1_EXTEND_MODE ID2D1BorderTransform::GetExtendModeX() [This documentation is preliminary and is subject to change.] GetExtendModeY D2D1_EXTEND_MODE ID2D1BorderTransform::GetExtendModeY() No documentation. ID2D1BoundsAdjustmentTransform Initializes a new instance of the class. The native pointer. No documentation. No documentation. void ID2D1BoundsAdjustmentTransform::SetOutputBounds([In] const RECT* outputBounds) No documentation. No documentation. void ID2D1BoundsAdjustmentTransform::GetOutputBounds([Out] RECT* outputBounds) No documentation. GetOutputBounds void ID2D1BoundsAdjustmentTransform::GetOutputBounds([Out] RECT* outputBounds) [This documentation is preliminary and is subject to change.] ID2D1ColorContext Initializes a new instance of the class. The native pointer. No documentation. No documentation. D2D1_COLOR_SPACE ID2D1ColorContext::GetColorSpace() [This documentation is preliminary and is subject to change.] This method returns the size of the profile in bytes. This can be used to allocate a buffer to receive the color profile bytes associated with the context. unsigned int ID2D1ColorContext::GetProfileSize() [This documentation is preliminary and is subject to change.] No documentation. No documentation. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. D2DERR_INSUFFICIENT_BUFFERThe supplied buffer was too small to accomodate the data.? If profileSize is insufficient to store the entire profile, profile is zero-initialized before this method fails. HRESULT ID2D1ColorContext::GetProfile([Out, Buffer] unsigned char* profile,[In] unsigned int profileSize) No documentation. GetColorSpace D2D1_COLOR_SPACE ID2D1ColorContext::GetColorSpace() [This documentation is preliminary and is subject to change.] This can be used to allocate a buffer to receive the color profile bytes associated with the context. GetProfileSize unsigned int ID2D1ColorContext::GetProfileSize() [This documentation is preliminary and is subject to change.] ID2D1CommandSink [This documentation is preliminary and is subject to change.] ID2D1CommandSink Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] This method always returns . HRESULT ID2D1CommandSink::BeginDraw() No documentation. No documentation. HRESULT ID2D1CommandSink::EndDraw() No documentation. No documentation. No documentation. HRESULT ID2D1CommandSink::SetAntialiasMode([In] D2D1_ANTIALIAS_MODE antialiasMode) [This documentation is preliminary and is subject to change.] The first tag to associate with the primitive. The second tag to associate with the primitive. If the method succeeds, it returns . If it fails, it returns an error code. HRESULT ID2D1CommandSink::SetTags([In] unsigned longlong tag1,[In] unsigned longlong tag2) No documentation. No documentation. No documentation. HRESULT ID2D1CommandSink::SetTextAntialiasMode([In] D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode) [This documentation is preliminary and is subject to change.] The parameters to use for text rendering. If the method succeeds, it returns . If it fails, it returns an error code. HRESULT ID2D1CommandSink::SetTextRenderingParams([In, Optional] IDWriteRenderingParams* textRenderingParams) [This documentation is preliminary and is subject to change.] The transform to be set. If the method succeeds, it returns . If it fails, it returns an error code. The transform will be applied to the corresponding device context. HRESULT ID2D1CommandSink::SetTransform([In] const D2D_MATRIX_3X2_F* transform) [This documentation is preliminary and is subject to change.] The primitive blend that will apply to subsequent primitives. If the method succeeds, it returns . If it fails, it returns an error code. HRESULT ID2D1CommandSink::SetPrimitiveBlend([In] D2D1_PRIMITIVE_BLEND primitiveBlend) No documentation. No documentation. No documentation. HRESULT ID2D1CommandSink::SetUnitMode([In] D2D1_UNIT_MODE unitMode) [This documentation is preliminary and is subject to change.] The color to which the command sink should be cleared. If the method succeeds, it returns . If it fails, it returns an error code. The clear color is restricted by the currently selected clip and layer bounds.If no color is specified, the color should be interpreted by context. Examples include but are not limited to:Transparent black for a premultiplied bitmap target. Opaque black for an ignore bitmap target. Containing no content (or white) for a printer page. HRESULT ID2D1CommandSink::Clear([In, Optional] const D2D_COLOR_F* color) [This documentation is preliminary and is subject to change.] The sequence of glyphs to be sent. Additional non-rendering information about the glyphs. The brush used to fill the glyphs. The measuring mode to apply to the glyphs. No documentation. If the method succeeds, it returns . If it fails, it returns an error code. HRESULT ID2D1CommandSink::DrawGlyphRun([In] D2D_POINT_2F baselineOrigin,[In] const DWRITE_GLYPH_RUN* glyphRun,[In, Optional] const DWRITE_GLYPH_RUN_DESCRIPTION* glyphRunDescription,[In] ID2D1Brush* foregroundBrush,[In] DWRITE_MEASURING_MODE measuringMode) [This documentation is preliminary and is subject to change.] The start point of the line. The end point of the line. The brush used to fill the line. The width of the stroke to fill the line. The style of the stroke. If not specified, the stroke is solid. If the method succeeds, it returns . If it fails, it returns an error code. Additional References HRESULT ID2D1CommandSink::DrawLine([In] D2D_POINT_2F point0,[In] D2D_POINT_2F point1,[In] ID2D1Brush* brush,[In] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) [This documentation is preliminary and is subject to change.] The geometry to be stroked. The brush that will be used to fill the stroked geometry. The width of the stroke. The style of the stroke. An . You must convert ellipses and rounded rectangles to the corresponding ellipse and rounded rectangle geometries before calling into the DrawGeometry method.Additional ReferencesID2D1CommandList::Stream, RequirementsMinimum supported operating systemSame as Interface / Class Highest IRQL levelN/A (user mode) Callable from DlllMain()No Callable from services and session 0Yes Callable from UI threadYes? HRESULT ID2D1CommandSink::DrawGeometry([In] ID2D1Geometry* geometry,[In] ID2D1Brush* brush,[In] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1CommandSink::DrawRectangle([In] const D2D_RECT_F* rect,[In] ID2D1Brush* brush,[In] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle) [This documentation is preliminary and is subject to change.] The image to be drawn to the command sink. This defines the offset in the destination space that the image will be rendered to. The entire logical extent of the image will be rendered to the corresponding destination. If not specified, the destination origin will be (0, 0). The top-left corner of the image will be mapped to the target offset. This will not necessarily be the origin. The corresponding rectangle in the image space will be mapped to the provided origins when processing the image. The interpolation mode that will be used to scale the image if necessary. If specified, the composite mode that will be applied to the limits of the currently selected clip. If the method succeeds, it returns . If it fails, it returns an error code. Because the image can itself be a command list or contain an effect graph that in turn contains a command list, this method can result in recursive processing. HRESULT ID2D1CommandSink::DrawImage([In] ID2D1Image* image,[In, Optional] const D2D_POINT_2F* targetOffset,[In, Optional] const D2D_RECT_F* imageRectangle,[In] D2D1_INTERPOLATION_MODE interpolationMode,[In] D2D1_COMPOSITE_MODE compositeMode) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1CommandSink::DrawGdiMetafile([In] ID2D1GdiMetafile* gdiMetafile,[In, Optional] const D2D_POINT_2F* targetOffset) [This documentation is preliminary and is subject to change.] The mesh object to be filled. The brush with which to fill the mesh. If the method succeeds, it returns . If it fails, it returns an error code. HRESULT ID2D1CommandSink::FillMesh([In] ID2D1Mesh* mesh,[In] ID2D1Brush* brush) [This documentation is preliminary and is subject to change.] The bitmap whose alpha channel will be sampled to define the opacity mask. The brush with which to fill the mask. The type of content that the mask represents. The destination rectangle in which to fill the mask. If not specified, this is the origin. If the method succeeds, it returns . If it fails, it returns an error code. The opacity mask bitmap must be considered to be clamped on each axis. HRESULT ID2D1CommandSink::FillOpacityMask([In] ID2D1Bitmap* opacityMask,[In] ID2D1Brush* brush,[In, Optional] const D2D_RECT_F* destinationRectangle,[In, Optional] const D2D_RECT_F* sourceRectangle) [This documentation is preliminary and is subject to change.] The geometry that should be filled. The primary brush used to fill the geometry. A brush whose alpha channel is used to modify the opacity of the primary fill brush. If the method succeeds, it returns . If it fails, it returns an error code. If the opacity brush is specified, the primary brush will be a bitmap brush fixed on both the x-axis and the y-axis.Ellipses and rounded rectangles are converted to the corresponding geometry before being passed to FillGeometry. HRESULT ID2D1CommandSink::FillGeometry([In] ID2D1Geometry* geometry,[In] ID2D1Brush* brush,[In, Optional] ID2D1Brush* opacityBrush) [This documentation is preliminary and is subject to change.] The rectangle to fill. The brush with which to fill the rectangle. If the method succeeds, it returns . If it fails, it returns an error code. HRESULT ID2D1CommandSink::FillRectangle([In] const D2D_RECT_F* rect,[In] ID2D1Brush* brush) [This documentation is preliminary and is subject to change.] The rectangle that defines the clip. Whether the given clip should be antialiased. If the method succeeds, it returns . If it fails, it returns an error code. If the current world transform is not preserving the axis, clipRectangle is transformed and the bounds of the transformed rectangle are used instead. HRESULT ID2D1CommandSink::PushAxisAlignedClip([In] const D2D_RECT_F* clipRect,[In] D2D1_ANTIALIAS_MODE antialiasMode) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1CommandSink::PushLayer([In] const D2D1_LAYER_PARAMETERS1* layerParameters1,[In, Optional] ID2D1Layer* layer) [This documentation is preliminary and is subject to change.] If the method succeeds, it returns . If it fails, it returns an error code. HRESULT ID2D1CommandSink::PopAxisAlignedClip() No documentation. No documentation. HRESULT ID2D1CommandSink::PopLayer() No documentation. ID2D1ComputeInfo [This documentation is preliminary and is subject to change.] ID2D1RenderInfo Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] The index of the input that will have the input description applied. The description of the input to be applied to the transform. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. E_INVALIDARGAn invalid parameter was passed to the returning function.? The input description must be matched correctly by the effect shader code. HRESULT ID2D1RenderInfo::SetInputDescription([In] unsigned int inputIndex,[In] D2D1_INPUT_DESCRIPTION inputDescription) [This documentation is preliminary and is subject to change.] The type of buffer that should be used as an output from this transform. The number of channels that will be used on the output buffer. If the method succeeds, it returns . If it fails, it returns an error code. If the output precision of the transform is not specified, then it will default to the precision specified on the Direct2D device context. If the default precision on the context is not specified, then the output precision will be the maximum of the precision of the inputs. The maximum of 16bpc UNORM and 16bpc FLOAT is 32bpc FLOAT.Similar rules apply to the channel depth. The output channel depth will match the maximum of the input channel depths if the channel depth is . If any input buffer is 4-channel, the output buffer will also be 4-channel; otherwise, the intermediate buffer will be allocated with the specified channel depth.There is no global output channel depth; this is always left to the control of the transforms. HRESULT ID2D1RenderInfo::SetOutputBuffer([In] D2D1_BUFFER_PRECISION bufferPrecision,[In] D2D1_CHANNEL_DEPTH channelDepth) [This documentation is preliminary and is subject to change.] TRUE if the output of the transform is cached; otherwise, . void ID2D1RenderInfo::SetCached([In] BOOL isCached) No documentation. No documentation. void ID2D1RenderInfo::SetInstructionCountHint([In] unsigned int instructionCount) [This documentation is preliminary and is subject to change.] SetCached void ID2D1RenderInfo::SetCached([In] BOOL isCached) No documentation. SetInstructionCountHint void ID2D1RenderInfo::SetInstructionCountHint([In] unsigned int instructionCount) Initializes a new instance of the class. The native pointer. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1ComputeInfo::SetComputeShaderConstantBuffer([In, Buffer] const unsigned char* buffer,[In] unsigned int bufferCount) No documentation. No documentation. No documentation. HRESULT ID2D1ComputeInfo::SetComputeShader([In] const GUID& shaderId) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1ComputeInfo::SetResourceTexture([In] unsigned int textureIndex,[In] ID2D1ResourceTexture* resourceTexture) [This documentation is preliminary and is subject to change.] ID2D1ComputeTransform [This documentation is preliminary and is subject to change.] ID2D1Transform Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] The input rectangle to be mapped to an output rectangle. The number of inputs specified. The implementation guarantees that this is equal to the number of inputs specified on the transform. If the method succeeds, it returns . If it fails, it returns an error code. Unlike the MapInputRectsToOutputRect and MapOutputRectToInputRects methods, this method is explicitly called by the renderer at a determined place in its rendering algorithm. The transform implementation may change its state based on the input rectangles and uses this information to control its rendering information. HRESULT ID2D1Transform::SetInputRects([In, Buffer] const RECT* inputRects,[In] unsigned int inputRectsCount) [This documentation is preliminary and is subject to change.] The output rectangle to which the inputs must be mapped. The corresponding set of inputs. The inputs will directly correspond to the transform inputs. The number of inputs specified. The implementation guarantees that this is equal to the number of inputs specified on the transform. If the method succeeds, it returns . If it fails, it returns an error code. The transform implementation must ensure that any pixel shader or software callback implementation it provides honors this calculation.The transform implementation must regard this method as purely functional. It can base the mapped input and output rectangles on its current state as specified by the encapsulating effect properties. However, it must not change its own state in response to this method being invoked. The DirectImage renderer implementation reserves the right to call this method at any time and in any sequence. HRESULT ID2D1Transform::MapOutputRectToInputRects([In] const RECT* outputRect,[Out, Buffer] RECT* inputRects,[In] unsigned int inputRectsCount) [This documentation is preliminary and is subject to change.] No documentation. No documentation. No documentation. If the method succeeds, it returns . If it fails, it returns an error code. The transform implementation must ensure that any pixel shader or software callback implementation it provides honors this calculation.The transform implementation must regard this method as purely functional. It can base the mapped input and output rectangles on its current state as specified by the encapsulating effect properties. However, it must not change its own state in response to this method being invoked. The Direct2D renderer implementation reserves the right to call this method at any time and in any sequence. HRESULT ID2D1Transform::MapInputRectsToOutputRect([In, Buffer] const RECT* inputRects,[In] unsigned int inputRectsCount,[Out] RECT* outputRect) Initializes a new instance of the class. The native pointer. No documentation. No documentation. No documentation. HRESULT ID2D1ComputeTransform::SetComputeInfo([In] ID2D1ComputeInfo* computeInfo) [This documentation is preliminary and is subject to change.] The output rectangle that will be filled by the compute transform. The number of threads in the x dimension. The number of threads in the y dimension. The number of threads in the z dimension. If the method succeeds, it returns . If it fails, it returns an error code. If this call fails, the corresponding instance is placed into an error state and fails to draw. HRESULT ID2D1ComputeTransform::CalculateThreadgroups([In] const RECT* outputRect,[Out] unsigned int* dimensionX,[Out] unsigned int* dimensionY,[Out] unsigned int* dimensionZ) No documentation. SetComputeInfo HRESULT ID2D1ComputeTransform::SetComputeInfo([In] ID2D1ComputeInfo* computeInfo) Issues drawing commands to a GDI device context. ID2D1DCRenderTarget Initializes a new instance of the class. The native pointer. Binds the render target to the device context to which it issues drawing commands. The device context to which the render target issues drawing commands. The dimensions of the handle to a device context () to which the render target is bound. If this method succeeds, it returns . Otherwise, it returns an error code. Before you can render with the DC render target, you must use its BindDC method to associate it with a GDI DC. You do this each time you use a different DC, or the size of the area you want to draw to changes. HRESULT ID2D1DCRenderTarget::BindDC([In] const HDC hDC,[In] const RECT* pSubRect) Creates a render target that draws to a Windows Graphics Device Interface (GDI) device context. Before you can render with a DC render target, you must use the render target's {{BindDC}} method to associate it with a GDI DC. Do this for each different DC and whenever there is a change in the size of the area you want to draw to.To enable the DC render target to work with GDI, set the render target's DXGI format to and alpha mode to or D2D1_ALPHA_MODE_IGNORE.Your application should create render targets once and hold on to them for the life of the application or until the render target's {{EndDraw}} method returns the {{D2DERR_RECREATE_TARGET}} error. When you receive this error, recreate the render target (and any resources it created). an instance of The rendering mode, pixel format, remoting options, DPI information, and the minimum DirectX support required for hardware rendering. To enable the device context (DC) render target to work with GDI, set the DXGI format to and the alpha mode to or D2D1_ALPHA_MODE_IGNORE. For more information about pixel formats, see {{Supported Pixel Formats and Alpha Modes}}. No documentation. ID2D1DrawInfo Initializes a new instance of the class. The native pointer. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1DrawInfo::SetPixelShaderConstantBuffer([In, Buffer] const unsigned char* buffer,[In] unsigned int bufferCount) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1DrawInfo::SetResourceTexture([In] unsigned int textureIndex,[In] ID2D1ResourceTexture* resourceTexture) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1DrawInfo::SetVertexShaderConstantBuffer([In, Buffer] const unsigned char* buffer,[In] unsigned int bufferCount) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1DrawInfo::SetPixelShader([In] const GUID& shaderId,[In] D2D1_PIXEL_OPTIONS pixelOptions) No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1DrawInfo::SetVertexProcessing([In, Optional] ID2D1VertexBuffer* vertexBuffer,[In] D2D1_VERTEX_OPTIONS vertexOptions,[In, Optional] const D2D1_BLEND_DESCRIPTION* blendDescription,[In, Optional] const D2D1_VERTEX_RANGE* vertexRange,[In, Optional] const GUID* vertexShader) Represents the drawing state of a render target: the antialiasing mode, transform, tags, and text-rendering options. ID2D1DrawingStateBlock Initializes a new instance of the class. The native pointer. Retrieves the antialiasing mode, transform, and tags portion of the drawing state. When this method returns, contains the antialiasing mode, transform, and tags portion of the drawing state. You must allocate storage for this parameter. void ID2D1DrawingStateBlock::GetDescription([Out] D2D1_DRAWING_STATE_DESCRIPTION* stateDescription) Specifies the antialiasing mode, transform, and tags portion of the drawing state. The antialiasing mode, transform, and tags portion of the drawing state. void ID2D1DrawingStateBlock::SetDescription([In] const D2D1_DRAWING_STATE_DESCRIPTION* stateDescription) Specifies the text-rendering configuration of the drawing state. The text-rendering configuration of the drawing state, or null to use default settings. void ID2D1DrawingStateBlock::SetTextRenderingParams([In, Optional] IDWriteRenderingParams* textRenderingParams) Retrieves the text-rendering configuration of the drawing state. When this method returns, contains the address of a reference to an object that describes the text-rendering configuration of the drawing state. void ID2D1DrawingStateBlock::GetTextRenderingParams([Out, Optional] IDWriteRenderingParams** textRenderingParams) Creates an that can be used with the {{SaveDrawingState}} and {{RestoreDrawingState}} methods of a render target. an instance of Creates an that can be used with the {{SaveDrawingState}} and {{RestoreDrawingState}} methods of a render target. an instance of A structure that contains antialiasing, transform, and tags information. Creates an that can be used with the {{SaveDrawingState}} and {{RestoreDrawingState}} methods of a render target. an instance of Optional text parameters that indicate how text should be rendered. Creates an that can be used with the {{SaveDrawingState}} and {{RestoreDrawingState}} methods of a render target. an instance of A structure that contains antialiasing, transform, and tags information. Optional text parameters that indicate how text should be rendered. Retrieves the antialiasing mode, transform, and tags portion of the drawing state. GetDescription void ID2D1DrawingStateBlock::GetDescription([Out] D2D1_DRAWING_STATE_DESCRIPTION* stateDescription) Retrieves the text-rendering configuration of the drawing state. GetTextRenderingParams void ID2D1DrawingStateBlock::GetTextRenderingParams([Out, Optional] IDWriteRenderingParams** textRenderingParams) No documentation. ID2D1DrawingStateBlock1 Initializes a new instance of the class. The native pointer. No documentation. No documentation. void ID2D1DrawingStateBlock1::GetDescription([Out] D2D1_DRAWING_STATE_DESCRIPTION1* stateDescription) No documentation. No documentation. void ID2D1DrawingStateBlock1::SetDescription([In] const D2D1_DRAWING_STATE_DESCRIPTION1* stateDescription) No documentation. GetDescription void ID2D1DrawingStateBlock1::GetDescription([Out] D2D1_DRAWING_STATE_DESCRIPTION1* stateDescription) No documentation. ID2D1DrawTransform Initializes a new instance of the class. The native pointer. No documentation. No documentation. No documentation. HRESULT ID2D1DrawTransform::SetDrawInfo([In] ID2D1DrawInfo* drawInfo) No documentation. SetDrawInfo HRESULT ID2D1DrawTransform::SetDrawInfo([In] ID2D1DrawInfo* drawInfo) No documentation. ID2D1EffectContext Initializes a new instance of the class. The native pointer. No documentation. No documentation. No documentation. void ID2D1EffectContext::GetDpi([Out] float* dpiX,[Out] float* dpiY) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1EffectContext::CreateEffect([In] const GUID& effectId,[Out] ID2D1Effect** effect) No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1EffectContext::GetMaximumSupportedFeatureLevel([In, Buffer] const D3D_FEATURE_LEVEL* featureLevels,[In] unsigned int featureLevelsCount,[Out] D3D_FEATURE_LEVEL* maximumSupportedFeatureLevel) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1EffectContext::CreateTransformNodeFromEffect([In] ID2D1Effect* effect,[Out] ID2D1TransformNode** transformNode) No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1EffectContext::CreateBlendTransform([In] unsigned int numInputs,[In] const D2D1_BLEND_DESCRIPTION* blendDescription,[Out] ID2D1BlendTransform** transform) No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1EffectContext::CreateBorderTransform([In] D2D1_EXTEND_MODE extendModeX,[In] D2D1_EXTEND_MODE extendModeY,[Out] ID2D1BorderTransform** transform) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1EffectContext::CreateOffsetTransform([In] POINT offset,[Out] ID2D1OffsetTransform** transform) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1EffectContext::CreateBoundsAdjustmentTransform([In] const RECT* outputRectangle,[Out] ID2D1BoundsAdjustmentTransform** transform) No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1EffectContext::LoadPixelShader([In] const GUID& shaderId,[In, Buffer] const unsigned char* shaderBuffer,[In] unsigned int shaderBufferCount) No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1EffectContext::LoadVertexShader([In] const GUID& resourceId,[In, Buffer] const unsigned char* shaderBuffer,[In] unsigned int shaderBufferCount) No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1EffectContext::LoadComputeShader([In] const GUID& resourceId,[In, Buffer] const unsigned char* shaderBuffer,[In] unsigned int shaderBufferCount) No documentation. No documentation. No documentation. BOOL ID2D1EffectContext::IsShaderLoaded([In] const GUID& shaderId) No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1EffectContext::CreateResourceTexture([In, Optional] const GUID* resourceId,[In] const D2D1_RESOURCE_TEXTURE_PROPERTIES* resourceTextureProperties,[In, Buffer, Optional] const unsigned char* data,[In, Buffer, Optional] const unsigned int* strides,[In] unsigned int dataSize,[Out] ID2D1ResourceTexture** resourceTexture) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1EffectContext::FindResourceTexture([In] const GUID* resourceId,[Out] ID2D1ResourceTexture** resourceTexture) No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1EffectContext::CreateVertexBuffer([In] const D2D1_VERTEX_BUFFER_PROPERTIES* vertexBufferProperties,[In, Optional] const GUID* resourceId,[In, Optional] const D2D1_CUSTOM_VERTEX_BUFFER_PROPERTIES* customVertexBufferProperties,[Out] ID2D1VertexBuffer** buffer) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1EffectContext::FindVertexBuffer([In] const GUID* resourceId,[Out] ID2D1VertexBuffer** buffer) No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1EffectContext::CreateColorContext([In] D2D1_COLOR_SPACE space,[In, Buffer, Optional] const unsigned char* profile,[In] unsigned int profileSize,[Out] ID2D1ColorContext** colorContext) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1EffectContext::CreateColorContextFromFilename([In] const wchar_t* filename,[Out] ID2D1ColorContext** colorContext) No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1EffectContext::CreateColorContextFromWicColorContext([In] IWICColorContext* wicColorContext,[Out] ID2D1ColorContext** colorContext) No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1EffectContext::CheckFeatureSupport([In] D2D1_FEATURE feature,[Out, Buffer] void* featureSupportData,[In] unsigned int featureSupportDataSize) No documentation. No documentation. No documentation. BOOL ID2D1EffectContext::IsBufferPrecisionSupported([In] D2D1_BUFFER_PRECISION bufferPrecision) [This documentation is preliminary and is subject to change.] ID2D1EffectImpl Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] An internal factory interface that creates and returns effect author?centric types. No documentation. If the method succeeds, it returns . If it fails, it returns an error code. This moves resource creation cost to the CreateEffect call, rather than during rendering.If the implementation fails this call, the corresponding call also fails.The following example shows an effect implementing an initialize method. HRESULT ID2D1EffectImpl::Initialize([In] ID2D1EffectContext* effectContext,[In] ID2D1TransformGraph* transformGraph) [This documentation is preliminary and is subject to change.] Indicates the type of change the effect should expect. If the method succeeds, it returns . If it fails, it returns an error code. This method is called by the renderer when the effect is within an effect graph that is drawn.The method will be called:If the effect has been initialized but has not previously been drawn. If an effect property has been set since the last draw call. If the context state has changed since the effect was last drawn.The method will not otherwise be called. The transforms created by the effect will be called to handle their input and output rectangles for every draw call.Most effects defer creating any resources or specifying a topology until this call is made. They store their properties and map them to a concrete set of rendering techniques when first drawn. HRESULT ID2D1EffectImpl::PrepareForRender([In] D2D1_CHANGE_TYPE changeType) No documentation. No documentation. No documentation. HRESULT ID2D1EffectImpl::SetGraph([In] ID2D1TransformGraph* transformGraph) No documentation. SetGraph HRESULT ID2D1EffectImpl::SetGraph([In] ID2D1TransformGraph* transformGraph) Represents an ellipse. ID2D1EllipseGeometry Represents a geometry resource and defines a set of helper methods for manipulating and measuring geometric shapes. Interfaces that inherit from define specific shapes. ID2D1Geometry Default flattening tolerance used for all methods that are not explicitly using it. Default is set to 0.25f. Initializes a new instance of the class. The native pointer. Retrieves the bounds of the geometry. No documentation. No documentation. HRESULT ID2D1Geometry::GetBounds([In, Optional] const D2D_MATRIX_3X2_F* worldTransform,[Out] D2D_RECT_F* bounds) Gets the bounds of the geometry after it has been widened by the specified stroke width and style and transformed by the specified matrix. The amount by which to widen the geometry by stroking its outline. The style of the stroke that widens the geometry. A transform to apply to the geometry after the geometry is transformed and after the geometry has been stroked. When this method returns, contains the bounds of the widened geometry. You must allocate storage for this parameter. No documentation. HRESULT ID2D1Geometry::GetWidenedBounds([In] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle,[In, Optional] const D2D_MATRIX_3X2_F* worldTransform,[In] float flatteningTolerance,[Out] D2D_RECT_F* bounds) Determines whether the geometry's stroke contains the specified point given the specified stroke thickness, style, and transform. The point to test for containment. The thickness of the stroke to apply. The style of stroke to apply. The transform to apply to the stroked geometry. When this method returns, contains a boolean value set to true if the geometry's stroke contains the specified point; otherwise, false. You must allocate storage for this parameter. No documentation. HRESULT ID2D1Geometry::StrokeContainsPoint([In] D2D_POINT_2F point,[In] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle,[In, Optional] const D2D_MATRIX_3X2_F* worldTransform,[In] float flatteningTolerance,[Out] BOOL* contains) Indicates whether the area filled by the geometry would contain the specified point given the specified flattening tolerance. The point to test. The transform to apply to the geometry prior to testing for containment, or null. The numeric accuracy with which the precise geometric path and path intersection is calculated. Points missing the fill by less than the tolerance are still considered inside. Smaller values produce more accurate results but cause slower execution. When this method returns, contains a value that is TRUE if the area filled by the geometry contains point; otherwise, .You must allocate storage for this parameter. HRESULT ID2D1Geometry::FillContainsPoint([In] D2D_POINT_2F point,[In, Optional] const D2D_MATRIX_3X2_F* worldTransform,[In] float flatteningTolerance,[Out] BOOL* contains) Describes the intersection between this geometry and the specified geometry. The comparison is performed by using the specified flattening tolerance. The geometry to test. The transform to apply to inputGeometry, or null. The maximum bounds on the distance between points in the polygonal approximation of the geometries. Smaller values produce more accurate results but cause slower execution. When this method returns, contains a reference to a value that describes how this geometry is related to inputGeometry. You must allocate storage for this parameter. When interpreting the returned relation value, it is important to remember that the member of the enumeration type means that this geometry is contained inside inputGeometry, not that this geometry contains inputGeometry.For more information about how to interpret other possible return values, see . HRESULT ID2D1Geometry::CompareWithGeometry([In] ID2D1Geometry* inputGeometry,[In, Optional] const D2D_MATRIX_3X2_F* inputGeometryTransform,[In] float flatteningTolerance,[Out] D2D1_GEOMETRY_RELATION* relation) Creates a simplified version of the geometry that contains only lines and (optionally) cubic Bezier curves and writes the result to an . No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1Geometry::Simplify([In] D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,[In, Optional] const D2D_MATRIX_3X2_F* worldTransform,[In] float flatteningTolerance,[In] ID2D1SimplifiedGeometrySink* geometrySink) Creates a set of clockwise-wound triangles that cover the geometry after it has been transformed using the specified matrix and flattened using the specified tolerance. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1Geometry::Tessellate([In, Optional] const D2D_MATRIX_3X2_F* worldTransform,[In] float flatteningTolerance,[In] ID2D1TessellationSink* tessellationSink) Combines this geometry with the specified geometry and stores the result in an . No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1Geometry::CombineWithGeometry([In] ID2D1Geometry* inputGeometry,[In] D2D1_COMBINE_MODE combineMode,[In, Optional] const D2D_MATRIX_3X2_F* inputGeometryTransform,[In] float flatteningTolerance,[In] ID2D1SimplifiedGeometrySink* geometrySink) Computes the outline of the geometry and writes the result to an . No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. The Outline method allows the caller to produce a geometry with an equivalent fill to the input geometry, with the following additional properties:The output geometry contains no transverse intersections; that is, segments may touch, but they never cross. The outermost figures in the output geometry are all oriented counterclockwise. The output geometry is fill-mode invariant; that is, the fill of the geometry does not depend on the choice of the fill mode. For more information about the fill mode, see .Additionally, the Outline method can be useful in removing redundant portions of said geometries to simplify complex geometries. It can also be useful in combination with to create unions among several geometries simultaneously. HRESULT ID2D1Geometry::Outline([In, Optional] const D2D_MATRIX_3X2_F* worldTransform,[In] float flatteningTolerance,[In] ID2D1SimplifiedGeometrySink* geometrySink) Computes the area of the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance. The transform to apply to this geometry before computing its area, or null. The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution. When this this method returns, contains a reference to the area of the transformed, flattened version of this geometry. You must allocate storage for this parameter. HRESULT ID2D1Geometry::ComputeArea([In, Optional] const D2D_MATRIX_3X2_F* worldTransform,[In] float flatteningTolerance,[Out] float* area) Calculates the length of the geometry as though each segment were unrolled into a line. No documentation. No documentation. No documentation. HRESULT ID2D1Geometry::ComputeLength([In, Optional] const D2D_MATRIX_3X2_F* worldTransform,[In] float flatteningTolerance,[Out] float* length) Calculates the point and tangent vector at the specified distance along the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance. The distance along the geometry of the point and tangent to find. If this distance is less then 0, this method calculates the first point in the geometry. If this distance is greater than the length of the geometry, this method calculates the last point in the geometry. The transform to apply to the geometry before calculating the specified point and tangent, or null. The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution. When this method returns, contains a reference to the tangent vector at the specified distance along the geometry. If the geometry is empty, this vector contains NaN as its x and y values. You must allocate storage for this parameter. The location at the specified distance along the geometry. If the geometry is empty, this point contains NaN as its x and y values. HRESULT ID2D1Geometry::ComputePointAtLength([In] float length,[In, Optional] const D2D_MATRIX_3X2_F* worldTransform,[In] float flatteningTolerance,[Out, Optional] D2D_POINT_2F* point,[Out, Optional] D2D_POINT_2F* unitTangentVector) Widens the geometry by the specified stroke and writes the result to an after it has been transformed by the specified matrix and flattened using the default tolerance. No documentation. No documentation. No documentation. No documentation. No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT ID2D1Geometry::Widen([In] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle,[In, Optional] const D2D_MATRIX_3X2_F* worldTransform,[In] float flatteningTolerance,[In] ID2D1SimplifiedGeometrySink* geometrySink) Combines this geometry with the specified geometry and stores the result in an . The geometry to combine with this instance. The type of combine operation to perform. The result of the combine operation. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT CombineWithGeometry([In] ID2D1Geometry* inputGeometry,[None] D2D1_COMBINE_MODE combineMode,[In, Optional] const D2D1_MATRIX_3X2_F* inputGeometryTransform,[None] FLOAT flatteningTolerance,[In] ID2D1SimplifiedGeometrySink* geometrySink) Combines this geometry with the specified geometry and stores the result in an . The geometry to combine with this instance. The type of combine operation to perform. The maximum bounds on the distance between points in the polygonal approximation of the geometries. Smaller values produce more accurate results but cause slower execution. The result of the combine operation. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT CombineWithGeometry([In] ID2D1Geometry* inputGeometry,[None] D2D1_COMBINE_MODE combineMode,[In, Optional] const D2D1_MATRIX_3X2_F* inputGeometryTransform,[None] FLOAT flatteningTolerance,[In] ID2D1SimplifiedGeometrySink* geometrySink) Combines this geometry with the specified geometry and stores the result in an . The geometry to combine with this instance. The type of combine operation to perform. The transform to apply to inputGeometry before combining, or NULL. The maximum bounds on the distance between points in the polygonal approximation of the geometries. Smaller values produce more accurate results but cause slower execution. The result of the combine operation. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT CombineWithGeometry([In] ID2D1Geometry* inputGeometry,[None] D2D1_COMBINE_MODE combineMode,[In, Optional] const D2D1_MATRIX_3X2_F* inputGeometryTransform,[None] FLOAT flatteningTolerance,[In] ID2D1SimplifiedGeometrySink* geometrySink) Describes the intersection between this geometry and the specified geometry. The comparison is performed by using the specified flattening tolerance. When interpreting the returned relation value, it is important to remember that the member of the D2D1_GEOMETRY_RELATION enumeration type means that this geometry is contained inside inputGeometry, not that this geometry contains inputGeometry. For more information about how to interpret other possible return values, see . The geometry to test. When this method returns, contains a reference to a value that describes how this geometry is related to inputGeometry. You must allocate storage for this parameter. HRESULT ID2D1Geometry::CompareWithGeometry([In] ID2D1Geometry* inputGeometry,[In, Optional] const D2D1_MATRIX_3X2_F* inputGeometryTransform,[None] float flatteningTolerance,[Out] D2D1_GEOMETRY_RELATION* relation) Describes the intersection between this geometry and the specified geometry. The comparison is performed by using the specified flattening tolerance. When interpreting the returned relation value, it is important to remember that the member of the D2D1_GEOMETRY_RELATION enumeration type means that this geometry is contained inside inputGeometry, not that this geometry contains inputGeometry. For more information about how to interpret other possible return values, see . The geometry to test. The maximum bounds on the distance between points in the polygonal approximation of the geometries. Smaller values produce more accurate results but cause slower execution. When this method returns, contains a reference to a value that describes how this geometry is related to inputGeometry. You must allocate storage for this parameter. HRESULT ID2D1Geometry::CompareWithGeometry([In] ID2D1Geometry* inputGeometry,[In, Optional] const D2D1_MATRIX_3X2_F* inputGeometryTransform,[None] float flatteningTolerance,[Out] D2D1_GEOMETRY_RELATION* relation) Computes the area of the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance. When this this method returns, contains a reference to the area of the transformed, flattened version of this geometry. You must allocate storage for this parameter. HRESULT ID2D1Geometry::ComputeArea([In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] float* area) Computes the area of the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance. The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution. When this this method returns, contains a reference to the area of the transformed, flattened version of this geometry. You must allocate storage for this parameter. HRESULT ID2D1Geometry::ComputeArea([In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] float* area) Calculates the length of the geometry as though each segment were unrolled into a line. When this method returns, contains a reference to the length of the geometry. For closed geometries, the length includes an implicit closing segment. You must allocate storage for this parameter. HRESULT ID2D1Geometry::ComputeLength([In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] float* length) Calculates the length of the geometry as though each segment were unrolled into a line. The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution. When this method returns, contains a reference to the length of the geometry. For closed geometries, the length includes an implicit closing segment. You must allocate storage for this parameter. HRESULT ID2D1Geometry::ComputeLength([In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] float* length) Calculates the point and tangent vector at the specified distance along the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance. The distance along the geometry of the point and tangent to find. If this distance is less then 0, this method calculates the first point in the geometry. If this distance is greater than the length of the geometry, this method calculates the last point in the geometry. Whenthis method returns, contains a reference to the tangent vector at the specified distance along the geometry. If the geometry is empty, this vector contains NaN as its x and y values. You must allocate storage for this parameter. The location at the specified distance along the geometry. If the geometry is empty, this point contains NaN as its x and y values. HRESULT ID2D1Geometry::ComputePointAtLength([None] float length,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out, Optional] D2D1_POINT_2F* point,[Out, Optional] D2D1_POINT_2F* unitTangentVector) Calculates the point and tangent vector at the specified distance along the geometry after it has been transformed by the specified matrix and flattened using the specified tolerance. The distance along the geometry of the point and tangent to find. If this distance is less then 0, this method calculates the first point in the geometry. If this distance is greater than the length of the geometry, this method calculates the last point in the geometry. The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution. Whenthis method returns, contains a reference to the tangent vector at the specified distance along the geometry. If the geometry is empty, this vector contains NaN as its x and y values. You must allocate storage for this parameter. The location at the specified distance along the geometry. If the geometry is empty, this point contains NaN as its x and y values. HRESULT ID2D1Geometry::ComputePointAtLength([None] float length,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out, Optional] D2D1_POINT_2F* point,[Out, Optional] D2D1_POINT_2F* unitTangentVector) Indicates whether the area filled by the geometry would contain the specified point given the specified flattening tolerance. The point to test. When this method returns, contains a bool value that is true if the area filled by the geometry contains point; otherwise, false.You must allocate storage for this parameter. HRESULT ID2D1Geometry::FillContainsPoint([None] D2D1_POINT_2F point,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] BOOL* contains) Indicates whether the area filled by the geometry would contain the specified point given the specified flattening tolerance. The point to test. When this method returns, contains a bool value that is true if the area filled by the geometry contains point; otherwise, false.You must allocate storage for this parameter. HRESULT ID2D1Geometry::FillContainsPoint([None] D2D1_POINT_2F point,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] BOOL* contains) Indicates whether the area filled by the geometry would contain the specified point given the specified flattening tolerance. The point to test. The numeric accuracy with which the precise geometric path and path intersection is calculated. Points missing the fill by less than the tolerance are still considered inside. Smaller values produce more accurate results but cause slower execution. When this method returns, contains a bool value that is true if the area filled by the geometry contains point; otherwise, false.You must allocate storage for this parameter. HRESULT ID2D1Geometry::FillContainsPoint([None] D2D1_POINT_2F point,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] BOOL* contains) Indicates whether the area filled by the geometry would contain the specified point given the specified flattening tolerance. The point to test. The numeric accuracy with which the precise geometric path and path intersection is calculated. Points missing the fill by less than the tolerance are still considered inside. Smaller values produce more accurate results but cause slower execution. When this method returns, contains a bool value that is true if the area filled by the geometry contains point; otherwise, false.You must allocate storage for this parameter. HRESULT ID2D1Geometry::FillContainsPoint([None] D2D1_POINT_2F point,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] BOOL* contains) Indicates whether the area filled by the geometry would contain the specified point given the specified flattening tolerance. The point to test. The transform to apply to the geometry prior to testing for containment, or NULL. The numeric accuracy with which the precise geometric path and path intersection is calculated. Points missing the fill by less than the tolerance are still considered inside. Smaller values produce more accurate results but cause slower execution. When this method returns, contains a bool value that is true if the area filled by the geometry contains point; otherwise, false.You must allocate storage for this parameter. HRESULT ID2D1Geometry::FillContainsPoint([None] D2D1_POINT_2F point,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] BOOL* contains) Retrieves the bounds of the geometry. When this method returns, contains the bounds of this geometry. If the bounds are empty, this will be a rect where bounds.left > bounds.right. You must allocate storage for this parameter. HRESULT ID2D1Geometry::GetBounds([In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[Out] D2D1_RECT_F* bounds) Gets the bounds of the geometry after it has been widened by the specified stroke width and style and transformed by the specified matrix. The amount by which to widen the geometry by stroking its outline. When this method returns, contains the bounds of the widened geometry. You must allocate storage for this parameter. HRESULT ID2D1Geometry::GetWidenedBounds([None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] D2D1_RECT_F* bounds) Gets the bounds of the geometry after it has been widened by the specified stroke width and style and transformed by the specified matrix. The amount by which to widen the geometry by stroking its outline. The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution. When this method returns, contains the bounds of the widened geometry. You must allocate storage for this parameter. HRESULT ID2D1Geometry::GetWidenedBounds([None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] D2D1_RECT_F* bounds) Gets the bounds of the geometry after it has been widened by the specified stroke width and style and transformed by the specified matrix. The amount by which to widen the geometry by stroking its outline. The style of the stroke that widens the geometry. The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution. When this method returns, contains the bounds of the widened geometry. You must allocate storage for this parameter. HRESULT ID2D1Geometry::GetWidenedBounds([None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] D2D1_RECT_F* bounds) Computes the outline of the geometry and writes the result to an . The {{Outline}} method allows the caller to produce a geometry with an equivalent fill to the input geometry, with the following additional properties: The output geometry contains no transverse intersections; that is, segments may touch, but they never cross.The outermost figures in the output geometry are all oriented counterclockwise. The output geometry is fill-mode invariant; that is, the fill of the geometry does not depend on the choice of the fill mode. For more information about the fill mode, see .Additionally, the {{Outline}} method can be useful in removing redundant portions of said geometries to simplify complex geometries. It can also be useful in combination with to create unions among several geometries simultaneously. The to which the geometry's transformed outline is appended. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT Outline([In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] FLOAT flatteningTolerance,[In] ID2D1SimplifiedGeometrySink* geometrySink) Computes the outline of the geometry and writes the result to an . The {{Outline}} method allows the caller to produce a geometry with an equivalent fill to the input geometry, with the following additional properties: The output geometry contains no transverse intersections; that is, segments may touch, but they never cross.The outermost figures in the output geometry are all oriented counterclockwise. The output geometry is fill-mode invariant; that is, the fill of the geometry does not depend on the choice of the fill mode. For more information about the fill mode, see .Additionally, the {{Outline}} method can be useful in removing redundant portions of said geometries to simplify complex geometries. It can also be useful in combination with to create unions among several geometries simultaneously. The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution. The to which the geometry's transformed outline is appended. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT Outline([In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] FLOAT flatteningTolerance,[In] ID2D1SimplifiedGeometrySink* geometrySink) Computes the outline of the geometry and writes the result to an . The {{Outline}} method allows the caller to produce a geometry with an equivalent fill to the input geometry, with the following additional properties: The output geometry contains no transverse intersections; that is, segments may touch, but they never cross.The outermost figures in the output geometry are all oriented counterclockwise. The output geometry is fill-mode invariant; that is, the fill of the geometry does not depend on the choice of the fill mode. For more information about the fill mode, see .Additionally, the {{Outline}} method can be useful in removing redundant portions of said geometries to simplify complex geometries. It can also be useful in combination with to create unions among several geometries simultaneously. The transform to apply to the geometry outline, or NULL. The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution. The to which the geometry's transformed outline is appended. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT Outline([In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] FLOAT flatteningTolerance,[In] ID2D1SimplifiedGeometrySink* geometrySink) Creates a simplified version of the geometry that contains only lines and (optionally) cubic Bezier curves and writes the result to an . A value that specifies whether the simplified geometry should contain curves. The to which the simplified geometry is appended. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT Simplify([None] D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] FLOAT flatteningTolerance,[In] ID2D1SimplifiedGeometrySink* geometrySink) Creates a simplified version of the geometry that contains only lines and (optionally) cubic Bezier curves and writes the result to an . A value that specifies whether the simplified geometry should contain curves. The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution. The to which the simplified geometry is appended. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT Simplify([None] D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] FLOAT flatteningTolerance,[In] ID2D1SimplifiedGeometrySink* geometrySink) Creates a simplified version of the geometry that contains only lines and (optionally) cubic Bezier curves and writes the result to an . A value that specifies whether the simplified geometry should contain curves. The transform to apply to the simplified geometry, or NULL. The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution. The to which the simplified geometry is appended. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT Simplify([None] D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] FLOAT flatteningTolerance,[In] ID2D1SimplifiedGeometrySink* geometrySink) Determines whether the geometry's stroke contains the specified point given the specified stroke thickness, style, and transform. The point to test for containment. The thickness of the stroke to apply. When this method returns, contains a boolean value set to true if the geometry's stroke contains the specified point; otherwise, false. You must allocate storage for this parameter. HRESULT ID2D1Geometry::StrokeContainsPoint([None] D2D1_POINT_2F point,[None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] BOOL* contains) Determines whether the geometry's stroke contains the specified point given the specified stroke thickness, style, and transform. The point to test for containment. The thickness of the stroke to apply. When this method returns, contains a boolean value set to true if the geometry's stroke contains the specified point; otherwise, false. You must allocate storage for this parameter. HRESULT ID2D1Geometry::StrokeContainsPoint([None] D2D1_POINT_2F point,[None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] BOOL* contains) Determines whether the geometry's stroke contains the specified point given the specified stroke thickness, style, and transform. The point to test for containment. The thickness of the stroke to apply. The style of stroke to apply. When this method returns, contains a boolean value set to true if the geometry's stroke contains the specified point; otherwise, false. You must allocate storage for this parameter. HRESULT ID2D1Geometry::StrokeContainsPoint([None] D2D1_POINT_2F point,[None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] BOOL* contains) Determines whether the geometry's stroke contains the specified point given the specified stroke thickness, style, and transform. The point to test for containment. The thickness of the stroke to apply. The style of stroke to apply. When this method returns, contains a boolean value set to true if the geometry's stroke contains the specified point; otherwise, false. You must allocate storage for this parameter. HRESULT ID2D1Geometry::StrokeContainsPoint([None] D2D1_POINT_2F point,[None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] BOOL* contains) Determines whether the geometry's stroke contains the specified point given the specified stroke thickness, style, and transform. The point to test for containment. The thickness of the stroke to apply. The style of stroke to apply. The transform to apply to the stroked geometry. When this method returns, contains a boolean value set to true if the geometry's stroke contains the specified point; otherwise, false. You must allocate storage for this parameter. HRESULT ID2D1Geometry::StrokeContainsPoint([None] D2D1_POINT_2F point,[None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] BOOL* contains) Determines whether the geometry's stroke contains the specified point given the specified stroke thickness, style, and transform. The point to test for containment. The thickness of the stroke to apply. The style of stroke to apply. The transform to apply to the stroked geometry. When this method returns, contains a boolean value set to true if the geometry's stroke contains the specified point; otherwise, false. You must allocate storage for this parameter. HRESULT ID2D1Geometry::StrokeContainsPoint([None] D2D1_POINT_2F point,[None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] BOOL* contains) Determines whether the geometry's stroke contains the specified point given the specified stroke thickness, style, and transform. The point to test for containment. The thickness of the stroke to apply. The style of stroke to apply. The transform to apply to the stroked geometry. The numeric accuracy with which the precise geometric path and path intersection is calculated. Points missing the stroke by less than the tolerance are still considered inside. Smaller values produce more accurate results but cause slower execution. When this method returns, contains a boolean value set to true if the geometry's stroke contains the specified point; otherwise, false. You must allocate storage for this parameter. HRESULT ID2D1Geometry::StrokeContainsPoint([None] D2D1_POINT_2F point,[None] float strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] float flatteningTolerance,[Out] BOOL* contains) Creates a set of clockwise-wound triangles that cover the geometry after it has been transformed using the specified matrix and flattened using the specified tolerance The to which the tessellated is appended. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT Tessellate([In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] FLOAT flatteningTolerance,[In] ID2D1TessellationSink* tessellationSink) Creates a set of clockwise-wound triangles that cover the geometry after it has been transformed using the specified matrix and flattened using the specified tolerance The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution. The to which the tessellated is appended. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT Tessellate([In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] FLOAT flatteningTolerance,[In] ID2D1TessellationSink* tessellationSink) Creates a set of clockwise-wound triangles that cover the geometry after it has been transformed using the specified matrix and flattened using the specified tolerance The transform to apply to this geometry, or NULL. The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution. The to which the tessellated is appended. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT Tessellate([In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] FLOAT flatteningTolerance,[In] ID2D1TessellationSink* tessellationSink) Widens the geometry by the specified stroke and writes the result to an after it has been transformed by the specified matrix and flattened using the specified tolerance. The amount by which to widen the geometry. The to which the widened geometry is appended. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT Widen([None] FLOAT strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] FLOAT flatteningTolerance,[In] ID2D1SimplifiedGeometrySink* geometrySink) Widens the geometry by the specified stroke and writes the result to an after it has been transformed by the specified matrix and flattened using the specified tolerance. The amount by which to widen the geometry. The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution. The to which the widened geometry is appended. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT Widen([None] FLOAT strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] FLOAT flatteningTolerance,[In] ID2D1SimplifiedGeometrySink* geometrySink) Widens the geometry by the specified stroke and writes the result to an after it has been transformed by the specified matrix and flattened using the specified tolerance. The amount by which to widen the geometry. The style of stroke to apply to the geometry, or NULL. The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution. The to which the widened geometry is appended. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT Widen([None] FLOAT strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] FLOAT flatteningTolerance,[In] ID2D1SimplifiedGeometrySink* geometrySink) Widens the geometry by the specified stroke and writes the result to an after it has been transformed by the specified matrix and flattened using the specified tolerance. The amount by which to widen the geometry. The style of stroke to apply to the geometry, or NULL. The transform to apply to the geometry after widening it, or NULL. The maximum bounds on the distance between points in the polygonal approximation of the geometry. Smaller values produce more accurate results but cause slower execution. The to which the widened geometry is appended. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT Widen([None] FLOAT strokeWidth,[In, Optional] ID2D1StrokeStyle* strokeStyle,[In, Optional] const D2D1_MATRIX_3X2_F* worldTransform,[None] FLOAT flatteningTolerance,[In] ID2D1SimplifiedGeometrySink* geometrySink) Get or set the default flattening tolerance used for all methods that are not explicitly using it. Default is set to 0.25f. Initializes a new instance of the class. The native pointer. Gets the structure that describes this ellipse geometry. No documentation. void ID2D1EllipseGeometry::GetEllipse([Out] D2D1_ELLIPSE* ellipse) Creates an . an instance of A value that describes the center point, x-radius, and y-radius of the ellipse geometry. Gets the structure that describes this ellipse geometry. GetEllipse void ID2D1EllipseGeometry::GetEllipse([Out] D2D1_ELLIPSE* ellipse) No documentation. ID2D1GdiMetafile Initializes a new instance of the class. The native pointer. No documentation. No documentation. No documentation. HRESULT ID2D1GdiMetafile::Stream([In] ID2D1GdiMetafileSink* sink) No documentation. No documentation. No documentation. HRESULT ID2D1GdiMetafile::GetBounds([Out] D2D_RECT_F* bounds) No documentation. GetBounds HRESULT ID2D1GdiMetafile::GetBounds([Out] D2D_RECT_F* bounds) No documentation. ID2D1GdiMetafileSink No documentation. ID2D1GdiMetafileSink Initializes a new instance of the class. The native pointer. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1GdiMetafileSink::ProcessRecord([In] unsigned int recordType,[In, Optional] const void* recordData,[In] unsigned int recordDataSize) Represents a composite geometry, composed of other objects. ID2D1GeometryGroup Initializes a new instance of the class. The native pointer. Indicates how the intersecting areas of the geometries contained in this geometry group are combined. A value that indicates how the intersecting areas of the geometries contained in this geometry group are combined. D2D1_FILL_MODE ID2D1GeometryGroup::GetFillMode() Indicates the number of geometry objects in the geometry group. The number of geometries in the . unsigned int ID2D1GeometryGroup::GetSourceGeometryCount() Retrieves the geometries in the geometry group. When this method returns, contains the address of a reference to an array of geometries to be filled by this method. The length of the array is specified by the geometryCount parameter. If the array is null, then this method performs no operation. You must allocate the memory for this array. A value indicating the number of geometries to return in the geometries array. If this value is less than the number of geometries in the geometry group, the remaining geometries are omitted. If this value is larger than the number of geometries in the geometry group, the extra geometries are set to null. To obtain the number of geometries currently in the geometry group, use the GetSourceGeometryCount method. The returned geometries are referenced and counted, and the caller must release them. void ID2D1GeometryGroup::GetSourceGeometries([Out, Buffer] ID2D1Geometry** geometries,[In] unsigned int geometriesCount) Creates an , which is an object that holds other geometries. Geometry groups are a convenient way to group several geometries simultaneously so all figures of several distinct geometries are concatenated into one. To create a object, call the CreateGeometryGroup method on the object, passing in the fillMode with possible values of (alternate) and D2D1_FILL_MODE_WINDING, an array of geometry objects to add to the geometry group, and the number of elements in this array. an instance of A value that specifies the rule that a composite shape uses to determine whether a given point is part of the geometry. An array containing the geometry objects to add to the geometry group. The number of elements in this array is indicated by the geometriesCount parameter. Retrieves the geometries in the geometry group. The returned geometries are referenced and counted, and the caller must release them. an array of geometries to be filled by this method. The length of the array is specified by the geometryCount parameter. void ID2D1GeometryGroup::GetSourceGeometries([Out, Buffer] ID2D1Geometry** geometries,[None] int geometriesCount) Retrieves the geometries in the geometry group. The returned geometries are referenced and counted, and the caller must release them. A value indicating the number of geometries to return in the geometries array. If this value is less than the number of geometries in the geometry group, the remaining geometries are omitted. If this value is larger than the number of geometries in the geometry group, the extra geometries are set to NULL. To obtain the number of geometries currently in the geometry group, use the {{GetSourceGeometryCount}} method. an array of geometries to be filled by this method. The length of the array is specified by the geometryCount parameter. void ID2D1GeometryGroup::GetSourceGeometries([Out, Buffer] ID2D1Geometry** geometries,[None] int geometriesCount) Indicates how the intersecting areas of the geometries contained in this geometry group are combined. GetFillMode D2D1_FILL_MODE ID2D1GeometryGroup::GetFillMode() Indicates the number of geometry objects in the geometry group. GetSourceGeometryCount unsigned int ID2D1GeometryGroup::GetSourceGeometryCount() Describes a geometric path that can contain lines, arcs, cubic Bezier curves, and quadratic Bezier curves. ID2D1GeometrySink Describes a geometric path that does not contain quadratic bezier curves or arcs. ID2D1SimplifiedGeometrySink Specifies the method used to determine which points are inside the geometry described by this geometry sink and which points are outside. The fill mode defaults to D2D1_FILL_MODE_ALTERNATE. To set the fill mode, call SetFillMode before the first call to {{BeginFigure}}. Not doing will put the geometry sink in an error state. The method used to determine whether a given point is part of the geometry. void SetFillMode([None] D2D1_FILL_MODE fillMode) Specifies stroke and join options to be applied to new segments added to the geometry sink. After this method is called, the specified segment flags are applied to each segment subsequently added to the sink. The segment flags are applied to every additional segment until this method is called again and a different set of segment flags is specified. Stroke and join options to be applied to new segments added to the geometry sink. void SetSegmentFlags([None] D2D1_PATH_SEGMENT vertexFlags) Starts a new figure at the specified point. If this method is called while a figure is currently in progress, the interface is invalidated and all future methods will fail. The point at which to begin the new figure. Whether the new figure should be hollow or filled. void BeginFigure([None] D2D1_POINT_2F startPoint,[None] D2D1_FIGURE_BEGIN figureBegin) Creates a sequence of lines using the specified points and adds them to the geometry sink. A pointer to an array of one or more points that describe the lines to draw. A line is drawn from the geometry sink's current point (the end point of the last segment drawn or the location specified by {{BeginFigure}}) to the first point in the array. if the array contains additional points, a line is drawn from the first point to the second point in the array, from the second point to the third point, and so on. void AddLines([In, Buffer] const D2D1_POINT_2F* points,[None] UINT pointsCount) Creates a sequence of cubic Bezier curves and adds them to the geometry sink. A pointer to an array of Bezier segments that describes the Bezier curves to create. A curve is drawn from the geometry sink's current point (the end point of the last segment drawn or the location specified by {{BeginFigure}}) to the end point of the first Bezier segment in the array. if the array contains additional Bezier segments, each subsequent Bezier segment uses the end point of the preceding Bezier segment as its start point. void AddBeziers([In, Buffer] const D2D1_BEZIER_SEGMENT* beziers,[None] UINT beziersCount) Ends the current figure; optionally, closes it. Calling this method without a matching call to {{BeginFigure}} places the geometry sink in an error state; subsequent calls are ignored, and the overall failure will be returned when the {{Close}} method is called. A value that indicates whether the current figure is closed. If the figure is closed, a line is drawn between the current point and the start point specified by {{BeginFigure}}. void EndFigure([None] D2D1_FIGURE_END figureEnd) Closes the geometry sink, indicates whether it is in an error state, and resets the sink's error state. Do not close the geometry sink while a figure is still in progress; doing so puts the geometry sink in an error state. For the close operation to be successful, there must be one {{EndFigure}} call for each call to {{BeginFigure}}.After calling this method, the geometry sink might not be usable. Direct2D implementations of this interface do not allow the geometry sink to be modified after it is closed, but other implementations might not impose this restriction. HRESULT Close() Creates a line segment between the current point and the specified end point and adds it to the geometry sink. The end point of the line to draw. void AddLine([None] D2D1_POINT_2F point) Creates a cubic Bezier curve between the current point and the specified endpoint. A structure that describes the control points and endpoint of the Bezier curve to add. void AddBezier([In] const D2D1_BEZIER_SEGMENT* bezier) Creates a quadratic Bezier curve between the current point and the specified endpoint. A structure that describes the control point and the endpoint of the quadratic Bezier curve to add. void AddQuadraticBezier([In] const D2D1_QUADRATIC_BEZIER_SEGMENT* bezier) Adds a sequence of quadratic Bezier segments as an array in a single call. An array of a sequence of quadratic Bezier segments. void AddQuadraticBeziers([In, Buffer] const D2D1_QUADRATIC_BEZIER_SEGMENT* beziers,[None] UINT beziersCount) Adds a single arc to the path geometry. The arc segment to add to the figure. void AddArc([In] const D2D1_ARC_SEGMENT* arc) Describes a geometric path that can contain lines, arcs, cubic Bezier curves, and quadratic Bezier curves. ID2D1GeometrySink Describes a geometric path that does not contain quadratic bezier curves or arcs. ID2D1SimplifiedGeometrySink Initializes a new instance of the class. The native pointer. Specifies the method used to determine which points are inside the geometry described by this geometry sink and which points are outside. The method used to determine whether a given point is part of the geometry. The fill mode defaults to . To set the fill mode, call SetFillMode before the first call to BeginFigure. Not doing will put the geometry sink in an error state. void ID2D1SimplifiedGeometrySink::SetFillMode([In] D2D1_FILL_MODE fillMode) Specifies stroke and join options to be applied to new segments added to the geometry sink. Stroke and join options to be applied to new segments added to the geometry sink. After this method is called, the specified segment flags are applied to each segment subsequently added to the sink. The segment flags are applied to every additional segment until this method is called again and a different set of segment flags is specified. void ID2D1SimplifiedGeometrySink::SetSegmentFlags([In] D2D1_PATH_SEGMENT vertexFlags) Starts a new figure at the specified point. The point at which to begin the new figure. Whether the new figure should be hollow or filled. If this method is called while a figure is currently in progress, the interface is invalidated and all future methods will fail. void ID2D1SimplifiedGeometrySink::BeginFigure([In] D2D_POINT_2F startPoint,[In] D2D1_FIGURE_BEGIN figureBegin) Creates a sequence of lines using the specified points and adds them to the geometry sink. A reference to an array of one or more points that describe the lines to draw. A line is drawn from the geometry sink's current point (the end point of the last segment drawn or the location specified by BeginFigure) to the first point in the array. if the array contains additional points, a line is drawn from the first point to the second point in the array, from the second point to the third point, and so on. The number of points in the points array. void ID2D1SimplifiedGeometrySink::AddLines([In, Buffer] const D2D_POINT_2F* points,[In] unsigned int pointsCount) Creates a sequence of cubic Bezier curves and adds them to the geometry sink. A reference to an array of Bezier segments that describes the Bezier curves to create. A curve is drawn from the geometry sink's current point (the end point of the last segment drawn or the location specified by BeginFigure) to the end point of the first Bezier segment in the array. if the array contains additional Bezier segments, each subsequent Bezier segment uses the end point of the preceding Bezier segment as its start point. The number of Bezier segments in the beziers array. void ID2D1SimplifiedGeometrySink::AddBeziers([In, Buffer] const D2D1_BEZIER_SEGMENT* beziers,[In] unsigned int beziersCount) Ends the current figure; optionally, closes it. A value that indicates whether the current figure is closed. If the figure is closed, a line is drawn between the current point and the start point specified by BeginFigure. Calling this method without a matching call to BeginFigure places the geometry sink in an error state; subsequent calls are ignored, and the overall failure will be returned when the Close method is called. void ID2D1SimplifiedGeometrySink::EndFigure([In] D2D1_FIGURE_END figureEnd) Closes the geometry sink, indicates whether it is in an error state, and resets the sink's error state. If this method succeeds, it returns . Otherwise, it returns an error code. Do not close the geometry sink while a figure is still in progress; doing so puts the geometry sink in an error state. For the close operation to be successful, there must be one EndFigure call for each call to BeginFigure.After calling this method, the geometry sink might not be usable. Direct2D implementations of this interface do not allow the geometry sink to be modified after it is closed, but other implementations might not impose this restriction. HRESULT ID2D1SimplifiedGeometrySink::Close() Initializes a new instance of the class. The native pointer. Creates a line segment between the current point and the specified end point and adds it to the geometry sink. The end point of the line to draw. void ID2D1GeometrySink::AddLine([In] D2D_POINT_2F point) Creates a cubic Bezier curve between the current point and the specified end point. A structure that describes the control points and end point of the Bezier curve to add. void ID2D1GeometrySink::AddBezier([In] const D2D1_BEZIER_SEGMENT* bezier) Creates a quadratic Bezier curve between the current point and the specified endpoint. A structure that describes the control point and the endpoint of the quadratic Bezier curve to add. void ID2D1GeometrySink::AddQuadraticBezier([In] const D2D1_QUADRATIC_BEZIER_SEGMENT* bezier) Adds a sequence of quadratic Bezier segments as an array in a single call. An array of a sequence of quadratic Bezier segments. A value indicating the number of quadratic Bezier segments in beziers. void ID2D1GeometrySink::AddQuadraticBeziers([In, Buffer] const D2D1_QUADRATIC_BEZIER_SEGMENT* beziers,[In] unsigned int beziersCount) Adds a single arc to the path geometry. The arc segment to add to the figure. void ID2D1GeometrySink::AddArc([In] const D2D1_ARC_SEGMENT* arc) Represents an collection of objects for linear and radial gradient brushes. ID2D1GradientStopCollection Initializes a new instance of the class. The native pointer. Retrieves the number of gradient stops in the collection. The number of gradient stops in the collection. unsigned int ID2D1GradientStopCollection::GetGradientStopCount() Copies the gradient stops from the collection into an array of structures. No documentation. No documentation. Gradient stops are copied in order of position, starting with the gradient stop with the smallest position value and progressing to the gradient stop with the largest position value. void ID2D1GradientStopCollection::GetGradientStops([Out, Buffer] D2D1_GRADIENT_STOP* gradientStops,[In] unsigned int gradientStopsCount) Indicates the gamma space in which the gradient stops are interpolated. The gamma space in which the gradient stops are interpolated. D2D1_GAMMA ID2D1GradientStopCollection::GetColorInterpolationGamma() Indicates the behavior of the gradient outside the normalized gradient range. The behavior of the gradient outside the [0,1] normalized gradient range. D2D1_EXTEND_MODE ID2D1GradientStopCollection::GetExtendMode() Creates an from the specified gradient stops, a Gamma StandardRgb, and ExtendMode.Clamp. an instance of A pointer to an array of D2D1_GRADIENT_STOP structures. HRESULT CreateGradientStopCollection([In, Buffer] const D2D1_GRADIENT_STOP* gradientStops,[None] UINT gradientStopsCount,[None] D2D1_GAMMA colorInterpolationGamma,[None] D2D1_EXTEND_MODE extendMode,[Out] ID2D1GradientStopCollection** gradientStopCollection) Creates an from the specified gradient stops, color Gamma.StandardRgb, and extend mode. an instance of A pointer to an array of D2D1_GRADIENT_STOP structures. The behavior of the gradient outside the [0,1] normalized range. HRESULT CreateGradientStopCollection([In, Buffer] const D2D1_GRADIENT_STOP* gradientStops,[None] UINT gradientStopsCount,[None] D2D1_GAMMA colorInterpolationGamma,[None] D2D1_EXTEND_MODE extendMode,[Out] ID2D1GradientStopCollection** gradientStopCollection) Creates an from the specified gradient stops, color interpolation gamma, and ExtendMode.Clamp. an instance of A pointer to an array of D2D1_GRADIENT_STOP structures. The space in which color interpolation between the gradient stops is performed. HRESULT CreateGradientStopCollection([In, Buffer] const D2D1_GRADIENT_STOP* gradientStops,[None] UINT gradientStopsCount,[None] D2D1_GAMMA colorInterpolationGamma,[None] D2D1_EXTEND_MODE extendMode,[Out] ID2D1GradientStopCollection** gradientStopCollection) Creates an from the specified gradient stops, color interpolation gamma, and extend mode. an instance of A pointer to an array of D2D1_GRADIENT_STOP structures. The space in which color interpolation between the gradient stops is performed. The behavior of the gradient outside the [0,1] normalized range. HRESULT CreateGradientStopCollection([In, Buffer] const D2D1_GRADIENT_STOP* gradientStops,[None] UINT gradientStopsCount,[None] D2D1_GAMMA colorInterpolationGamma,[None] D2D1_EXTEND_MODE extendMode,[Out] ID2D1GradientStopCollection** gradientStopCollection) Retrieves the number of gradient stops in the collection. GetGradientStopCount unsigned int ID2D1GradientStopCollection::GetGradientStopCount() Indicates the gamma space in which the gradient stops are interpolated. GetColorInterpolationGamma D2D1_GAMMA ID2D1GradientStopCollection::GetColorInterpolationGamma() Indicates the behavior of the gradient outside the normalized gradient range. GetExtendMode D2D1_EXTEND_MODE ID2D1GradientStopCollection::GetExtendMode() [This documentation is preliminary and is subject to change.] ID2D1GradientStopCollection1 Initializes a new instance of the class. The native pointer. No documentation. No documentation. No documentation. void ID2D1GradientStopCollection1::GetGradientStops1([Out, Buffer] D2D1_GRADIENT_STOP* gradientStops,[In] unsigned int gradientStopsCount) No documentation. No documentation. D2D1_COLOR_SPACE ID2D1GradientStopCollection1::GetPreInterpolationSpace() [This documentation is preliminary and is subject to change.] This method returns the color space. D2D1_COLOR_SPACE ID2D1GradientStopCollection1::GetPostInterpolationSpace() No documentation. No documentation. D2D1_BUFFER_PRECISION ID2D1GradientStopCollection1::GetBufferPrecision() No documentation. No documentation. D2D1_COLOR_INTERPOLATION_MODE ID2D1GradientStopCollection1::GetColorInterpolationMode() No documentation. GetPreInterpolationSpace D2D1_COLOR_SPACE ID2D1GradientStopCollection1::GetPreInterpolationSpace() [This documentation is preliminary and is subject to change.] GetPostInterpolationSpace D2D1_COLOR_SPACE ID2D1GradientStopCollection1::GetPostInterpolationSpace() No documentation. GetBufferPrecision D2D1_BUFFER_PRECISION ID2D1GradientStopCollection1::GetBufferPrecision() No documentation. GetColorInterpolationMode D2D1_COLOR_INTERPOLATION_MODE ID2D1GradientStopCollection1::GetColorInterpolationMode() [This documentation is preliminary and is subject to change.] ID2D1ImageBrush Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] The image to be associated with the image brush. void ID2D1ImageBrush::SetImage([In] ID2D1Image* image) [This documentation is preliminary and is subject to change.] The extend mode on the x-axis of the image. void ID2D1ImageBrush::SetExtendModeX([In] D2D1_EXTEND_MODE extendModeX) [This documentation is preliminary and is subject to change.] The extend mode on the y-axis of the image. void ID2D1ImageBrush::SetExtendModeY([In] D2D1_EXTEND_MODE extendModeY) [This documentation is preliminary and is subject to change.] How the contents of the image will be interpolated to handle the brush transform. void ID2D1ImageBrush::SetInterpolationMode([In] D2D1_INTERPOLATION_MODE interpolationMode) No documentation. No documentation. void ID2D1ImageBrush::SetSourceRectangle([In] const D2D_RECT_F* sourceRectangle) [This documentation is preliminary and is subject to change.] When this method returns, contains the address of a reference to the image associated with this brush. void ID2D1ImageBrush::GetImage([Out] ID2D1Image** image) No documentation. No documentation. D2D1_EXTEND_MODE ID2D1ImageBrush::GetExtendModeX() No documentation. No documentation. D2D1_EXTEND_MODE ID2D1ImageBrush::GetExtendModeY() No documentation. No documentation. D2D1_INTERPOLATION_MODE ID2D1ImageBrush::GetInterpolationMode() No documentation. No documentation. void ID2D1ImageBrush::GetSourceRectangle([Out] D2D_RECT_F* sourceRectangle) [This documentation is preliminary and is subject to change.] GetImage void ID2D1ImageBrush::GetImage([Out] ID2D1Image** image) No documentation. GetExtendModeX D2D1_EXTEND_MODE ID2D1ImageBrush::GetExtendModeX() No documentation. GetExtendModeY D2D1_EXTEND_MODE ID2D1ImageBrush::GetExtendModeY() No documentation. GetInterpolationMode D2D1_INTERPOLATION_MODE ID2D1ImageBrush::GetInterpolationMode() No documentation. GetSourceRectangle void ID2D1ImageBrush::GetSourceRectangle([Out] D2D_RECT_F* sourceRectangle) Represents the backing store required to render a layer. ID2D1Layer Initializes a new instance of the class. The native pointer. Gets the size of the layer in device-independent pixels. The size of the layer in device-independent pixels. D2D_SIZE_F ID2D1Layer::GetSize() Creates a layer resource that can be used with this render target and its compatible render targets. The new layer has the specified initial size. The layer resource is allocated to the minimum size when {{PushLayer}} is called. Regardless of whether a size is initially specified, the layer automatically resizes as needed. an instance of HRESULT CreateLayer([In, Optional] const D2D1_SIZE_F* size,[Out] ID2D1Layer** layer) Creates a layer resource that can be used with this render target and its compatible render targets. The new layer has the specified initial size. Regardless of whether a size is initially specified, the layer automatically resizes as needed. an instance of If (0, 0) is specified, no backing store is created behind the layer resource. The layer resource is allocated to the minimum size when {{PushLayer}} is called. HRESULT CreateLayer([In, Optional] const D2D1_SIZE_F* size,[Out] ID2D1Layer** layer) Gets the size of the layer in device-independent pixels. GetSize D2D_SIZE_F ID2D1Layer::GetSize() Paints an area with a linear gradient. ID2D1LinearGradientBrush Initializes a new instance of the class. The native pointer. Sets the starting coordinates of the linear gradient in the brush's coordinate space. The starting two-dimensional coordinates of the linear gradient, in the brush's coordinate space. The start point and end point are described in the brush's space and are mapped to the render target when the brush is used. If there is a non-identity brush transform or render target transform, the brush's start point and end point are also transformed. void ID2D1LinearGradientBrush::SetStartPoint([In] D2D_POINT_2F startPoint) Sets the ending coordinates of the linear gradient in the brush's coordinate space. The ending two-dimensional coordinates of the linear gradient, in the brush's coordinate space. The start point and end point are described in the brush's space and are mapped to the render target when the brush is used. If there is a non-identity brush transform or render target transform, the brush's start point and end point are also transformed. void ID2D1LinearGradientBrush::SetEndPoint([In] D2D_POINT_2F endPoint) Retrieves the starting coordinates of the linear gradient. The starting two-dimensional coordinates of the linear gradient, in the brush's coordinate space. The start point and end point are described in the brush's space and are mapped to the render target when the brush is used. If there is a non-identity brush transform or render target transform, the brush's start point and end point are also transformed. D2D_POINT_2F ID2D1LinearGradientBrush::GetStartPoint() Retrieves the ending coordinates of the linear gradient. The ending two-dimensional coordinates of the linear gradient, in the brush's coordinate space. The start point and end point are described in the brush's space and are mapped to the render target when the brush is used. If there is a non-identity brush transform or render target transform, the brush's start point and end point are also transformed. D2D_POINT_2F ID2D1LinearGradientBrush::GetEndPoint() Retrieves the associated with this linear gradient brush. No documentation. contains an array of structures and information, such as the extend mode and the color interpolation mode. void ID2D1LinearGradientBrush::GetGradientStopCollection([Out] ID2D1GradientStopCollection** gradientStopCollection) Creates an that contains the specified gradient stops and has the specified transform and base opacity. an instance of The start and end points of the gradient. A collection of structures that describe the colors in the brush's gradient and their locations along the gradient line. HRESULT CreateLinearGradientBrush([In] const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES* linearGradientBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[In] ID2D1GradientStopCollection* gradientStopCollection,[Out] ID2D1LinearGradientBrush** linearGradientBrush) Creates an that contains the specified gradient stops and has the specified transform and base opacity. an instance of The start and end points of the gradient. The transform and base opacity of the new brush, or NULL. If this value is NULL, the brush defaults to a base opacity of 1.0f and the identity matrix as its transformation. A collection of structures that describe the colors in the brush's gradient and their locations along the gradient line. HRESULT CreateLinearGradientBrush([In] const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES* linearGradientBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[In] ID2D1GradientStopCollection* gradientStopCollection,[Out] ID2D1LinearGradientBrush** linearGradientBrush) Retrieves the starting coordinates of the linear gradient. The start point and end point are described in the brush's space and are mapped to the render target when the brush is used. If there is a non-identity brush transform or render target transform, the brush's start point and end point are also transformed. GetStartPoint D2D_POINT_2F ID2D1LinearGradientBrush::GetStartPoint() Retrieves the ending coordinates of the linear gradient. The start point and end point are described in the brush's space and are mapped to the render target when the brush is used. If there is a non-identity brush transform or render target transform, the brush's start point and end point are also transformed. GetEndPoint D2D_POINT_2F ID2D1LinearGradientBrush::GetEndPoint() Retrieves the associated with this linear gradient brush. contains an array of structures and information, such as the extend mode and the color interpolation mode. GetGradientStopCollection void ID2D1LinearGradientBrush::GetGradientStopCollection([Out] ID2D1GradientStopCollection** gradientStopCollection) Represents a set of vertices that form a list of triangles. ID2D1Mesh Initializes a new instance of the class. The native pointer. Opens the mesh for population. When this method returns, contains a reference to a reference to an that is used to populate the mesh. This parameter is passed uninitialized. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT ID2D1Mesh::Open([Out] ID2D1TessellationSink** tessellationSink) Create a mesh that uses triangles to describe a shape. To populate a mesh, use its {{Open}} method to obtain an . To draw the mesh, use the render target's {{FillMesh}} method. an instance of HRESULT CreateMesh([Out] ID2D1Mesh** mesh) Create a mesh that uses triangles to describe a shape and populates it with triangles. an instance of An array of structures that describe the triangles to add to this mesh. HRESULT CreateMesh([Out] ID2D1Mesh** mesh) Opens the mesh for population. When this method returns, contains a pointer to a pointer to an that is used to populate the mesh. This parameter is passed uninitialized. HRESULT Open([Out] ID2D1TessellationSink** tessellationSink) [This documentation is preliminary and is subject to change.] ID2D1OffsetTransform Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] The new offset to apply to the offset transform. void ID2D1OffsetTransform::SetOffset([In] POINT offset) [This documentation is preliminary and is subject to change.] The current transform offset. POINT ID2D1OffsetTransform::GetOffset() [This documentation is preliminary and is subject to change.] GetOffset POINT ID2D1OffsetTransform::GetOffset() Represents a complex shape that may be composed of arcs, curves, and lines. ID2D1PathGeometry Initializes a new instance of the class. The native pointer. Retrieves the geometry sink that is used to populate the path geometry with figures and segments. When this method returns, geometrySink contains the address of a reference to the geometry sink that is used to populate the path geometry with figures and segments. This parameter is passed uninitialized. Because path geometries are immutable and can only be populated once, it is an error to call Open on a path geometry more than once.Note that the fill mode defaults to . To set the fill mode, call SetFillMode before the first call to BeginFigure. Failure to do so will put the geometry sink in an error state. HRESULT ID2D1PathGeometry::Open([Out] ID2D1GeometrySink** geometrySink) Copies the contents of the path geometry to the specified . No documentation. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT ID2D1PathGeometry::Stream([In] ID2D1GeometrySink* geometrySink) Retrieves the number of segments in the path geometry. A reference that receives the number of segments in the path geometry when this method returns. You must allocate storage for this parameter. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT ID2D1PathGeometry::GetSegmentCount([Out] unsigned int* count) Retrieves the number of figures in the path geometry. A reference that receives the number of figures in the path geometry when this method returns. You must allocate storage for this parameter. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT ID2D1PathGeometry::GetFigureCount([Out] unsigned int* count) Creates an empty . an instance of Copies the contents of the path geometry to the specified . The sink to which the path geometry's contents are copied. Modifying this sink does not change the contents of this path geometry. If the method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. HRESULT Stream([In] ID2D1GeometrySink* geometrySink) Retrieves the number of segments in the path geometry. GetSegmentCount HRESULT ID2D1PathGeometry::GetSegmentCount([Out] unsigned int* count) Retrieves the number of figures in the path geometry. GetFigureCount HRESULT ID2D1PathGeometry::GetFigureCount([Out] unsigned int* count) [This documentation is preliminary and is subject to change.] ID2D1PathGeometry1 Initializes a new instance of the class. The native pointer. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1PathGeometry1::ComputePointAndSegmentAtLength([In] float length,[In] unsigned int startSegment,[In, Optional] const D2D_MATRIX_3X2_F* worldTransform,[In] float flatteningTolerance,[Out] D2D1_POINT_DESCRIPTION* pointDescription) Paints an area with a radial gradient. ID2D1RadialGradientBrush Initializes a new instance of the class. The native pointer. Specifies the center of the gradient ellipse in the brush's coordinate space. The center of the gradient ellipse, in the brush's coordinate space. void ID2D1RadialGradientBrush::SetCenter([In] D2D_POINT_2F center) Specifies the offset of the gradient origin relative to the gradient ellipse's center. The offset of the gradient origin from the center of the gradient ellipse. void ID2D1RadialGradientBrush::SetGradientOriginOffset([In] D2D_POINT_2F gradientOriginOffset) Specifies the x-radius of the gradient ellipse, in the brush's coordinate space. The x-radius of the gradient ellipse. This value is in the brush's coordinate space. void ID2D1RadialGradientBrush::SetRadiusX([In] float radiusX) Specifies the y-radius of the gradient ellipse, in the brush's coordinate space. The y-radius of the gradient ellipse. This value is in the brush's coordinate space. void ID2D1RadialGradientBrush::SetRadiusY([In] float radiusY) Retrieves the center of the gradient ellipse. The center of the gradient ellipse. This value is expressed in the brush's coordinate space. D2D_POINT_2F ID2D1RadialGradientBrush::GetCenter() Retrieves the offset of the gradient origin relative to the gradient ellipse's center. The offset of the gradient origin from the center of the gradient ellipse. This value is expressed in the brush's coordinate space. D2D_POINT_2F ID2D1RadialGradientBrush::GetGradientOriginOffset() Retrieves the x-radius of the gradient ellipse. The x-radius of the gradient ellipse. This value is expressed in the brush's coordinate space. float ID2D1RadialGradientBrush::GetRadiusX() Retrieves the y-radius of the gradient ellipse. The y-radius of the gradient ellipse. This value is expressed in the brush's coordinate space. float ID2D1RadialGradientBrush::GetRadiusY() Retrieves the associated with this radial gradient brush object. No documentation. contains an array of structures and additional information, such as the extend mode and the color interpolation mode. void ID2D1RadialGradientBrush::GetGradientStopCollection([Out] ID2D1GradientStopCollection** gradientStopCollection) Creates an that contains the specified gradient stops and has the specified transform and base opacity. an instance of The center, gradient origin offset, and x-radius and y-radius of the brush's gradient. A collection of structures that describe the colors in the brush's gradient and their locations along the gradient. HRESULT CreateRadialGradientBrush([In] const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES* radialGradientBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[In] ID2D1GradientStopCollection* gradientStopCollection,[Out] ID2D1RadialGradientBrush** radialGradientBrush) Creates an that contains the specified gradient stops and has the specified transform and base opacity. an instance of The center, gradient origin offset, and x-radius and y-radius of the brush's gradient. A collection of structures that describe the colors in the brush's gradient and their locations along the gradient. HRESULT CreateRadialGradientBrush([In] const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES* radialGradientBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[In] ID2D1GradientStopCollection* gradientStopCollection,[Out] ID2D1RadialGradientBrush** radialGradientBrush) Creates an that contains the specified gradient stops and has the specified transform and base opacity. an instance of The center, gradient origin offset, and x-radius and y-radius of the brush's gradient. The transform and base opacity of the new brush, or NULL. If this value is NULL, the brush defaults to a base opacity of 1.0f and the identity matrix as its transformation. A collection of structures that describe the colors in the brush's gradient and their locations along the gradient. HRESULT CreateRadialGradientBrush([In] const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES* radialGradientBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[In] ID2D1GradientStopCollection* gradientStopCollection,[Out] ID2D1RadialGradientBrush** radialGradientBrush) Creates an that contains the specified gradient stops and has the specified transform and base opacity. an instance of The center, gradient origin offset, and x-radius and y-radius of the brush's gradient. The transform and base opacity of the new brush, or NULL. If this value is NULL, the brush defaults to a base opacity of 1.0f and the identity matrix as its transformation. A collection of structures that describe the colors in the brush's gradient and their locations along the gradient. HRESULT CreateRadialGradientBrush([In] const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES* radialGradientBrushProperties,[In, Optional] const D2D1_BRUSH_PROPERTIES* brushProperties,[In] ID2D1GradientStopCollection* gradientStopCollection,[Out] ID2D1RadialGradientBrush** radialGradientBrush) Retrieves the center of the gradient ellipse. GetCenter D2D_POINT_2F ID2D1RadialGradientBrush::GetCenter() Retrieves the offset of the gradient origin relative to the gradient ellipse's center. GetGradientOriginOffset D2D_POINT_2F ID2D1RadialGradientBrush::GetGradientOriginOffset() Retrieves the x-radius of the gradient ellipse. GetRadiusX float ID2D1RadialGradientBrush::GetRadiusX() Retrieves the y-radius of the gradient ellipse. GetRadiusY float ID2D1RadialGradientBrush::GetRadiusY() Retrieves the associated with this radial gradient brush object. contains an array of structures and additional information, such as the extend mode and the color interpolation mode. GetGradientStopCollection void ID2D1RadialGradientBrush::GetGradientStopCollection([Out] ID2D1GradientStopCollection** gradientStopCollection) Describes a two-dimensional rectangle. ID2D1RectangleGeometry Initializes a new instance of the class. The native pointer. Retrieves the rectangle that describes the rectangle geometry's dimensions. Contains a reference to a rectangle that describes the rectangle geometry's dimensions when this method returns. You must allocate storage for this parameter. void ID2D1RectangleGeometry::GetRect([Out] D2D_RECT_F* rect) Creates an . an instance of The coordinates of the rectangle geometry. Retrieves the rectangle that describes the rectangle geometry's dimensions. GetRect void ID2D1RectangleGeometry::GetRect([Out] D2D_RECT_F* rect) [This documentation is preliminary and is subject to change.] ID2D1ResourceTexture Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] The "left" extent of the updates if specified; if null, the entire texture is updated. The "right" extent of the updates if specified; if null, the entire texture is updated. The stride to advance through the input data, according to dimension. The number of dimensions in the resource texture. This must match the number used to load the texture. The data to be placed into the resource texture. The size of the data buffer to be used to update the resource texture. This method does not return a value. The number of dimensions in the update must match those of the created texture. HRESULT ID2D1ResourceTexture::Update([In, Buffer, Optional] const unsigned int* minimumExtents,[In, Buffer, Optional] const unsigned int* maximimumExtents,[In, Buffer, Optional] const unsigned int* strides,[In] unsigned int dimensions,[In, Buffer] const unsigned char* data,[In] unsigned int dataCount) Retrieves a rounded rectangle that describes this rounded rectangle geometry. ID2D1RoundedRectangleGeometry Initializes a new instance of the class. The native pointer. Retrieves a rounded rectangle that describes this rounded rectangle geometry. A reference that receives a rounded rectangle that describes this rounded rectangle geometry. You must allocate storage for this parameter. void ID2D1RoundedRectangleGeometry::GetRoundedRect([Out] D2D1_ROUNDED_RECT* roundedRect) Creates an . an instance of The coordinates and corner radii of the rounded rectangle geometry. Retrieves a rounded rectangle that describes this rounded rectangle geometry. GetRoundedRect void ID2D1RoundedRectangleGeometry::GetRoundedRect([Out] D2D1_ROUNDED_RECT* roundedRect) Paints an area with a solid color. ID2D1SolidColorBrush Initializes a new instance of the class. The native pointer. Specifies the color of this solid-color brush. The color of this solid-color brush. To help create colors, Direct2D provides the ColorF class. It offers several helper methods for creating colors and provides a set or predefined colors. void ID2D1SolidColorBrush::SetColor([In] const D2D_COLOR_F* color) Retrieves the color of the solid color brush. The color of this solid color brush. D2D_COLOR_F ID2D1SolidColorBrush::GetColor() Creates a new that has the specified color and opacity. an instance of The red, green, blue, and alpha values of the brush's color. Creates a new that has the specified color and opacity. an instance of The red, green, blue, and alpha values of the brush's color. The base opacity of the brush. Retrieves the color of the solid color brush. GetColor D2D_COLOR_F ID2D1SolidColorBrush::GetColor() [This documentation is preliminary and is subject to change.] ID2D1SourceTransform Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] The interface supplied to the transform to allow specifying the precision-based transform pass. If the method succeeds, it returns . If it fails, it returns an error code. Provides a render information interface to the source transform to allow it to specify state to the rendering system. This part of the render information interface is shared with the GPU transform. HRESULT ID2D1SourceTransform::SetRenderInfo([In] ID2D1RenderInfo* renderInfo) No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1SourceTransform::Draw([In] ID2D1Bitmap1* target,[In] const RECT* drawRect,[In] D2D_POINT_2U targetOrigin) [This documentation is preliminary and is subject to change.] Provides a render information interface to the source transform to allow it to specify state to the rendering system. This part of the render information interface is shared with the GPU transform. SetRenderInfo HRESULT ID2D1SourceTransform::SetRenderInfo([In] ID2D1RenderInfo* renderInfo) Describes the caps, miter limit, line join, and dash information for a stroke. ID2D1StrokeStyle Initializes a new instance of the class. The native pointer. Retrieves the type of shape used at the beginning of a stroke. The type of shape used at the beginning of a stroke. D2D1_CAP_STYLE ID2D1StrokeStyle::GetStartCap() Retrieves the type of shape used at the end of a stroke. The type of shape used at the end of a stroke. D2D1_CAP_STYLE ID2D1StrokeStyle::GetEndCap() Gets a value that specifies how the ends of each dash are drawn. A value that specifies how the ends of each dash are drawn. D2D1_CAP_STYLE ID2D1StrokeStyle::GetDashCap() Retrieves the limit on the ratio of the miter length to half the stroke's thickness. A positive number greater than or equal to 1.0f that describes the limit on the ratio of the miter length to half the stroke's thickness. float ID2D1StrokeStyle::GetMiterLimit() Retrieves the type of joint used at the vertices of a shape's outline. A value that specifies the type of joint used at the vertices of a shape's outline. D2D1_LINE_JOIN ID2D1StrokeStyle::GetLineJoin() Retrieves a value that specifies how far in the dash sequence the stroke will start. A value that specifies how far in the dash sequence the stroke will start. float ID2D1StrokeStyle::GetDashOffset() Gets a value that describes the stroke's dash pattern. A value that describes the predefined dash pattern used, or if a custom dash style is used. If a custom dash style is specified, the dash pattern is described by the dashes array, which can be retrieved by calling the GetDashes method. D2D1_DASH_STYLE ID2D1StrokeStyle::GetDashStyle() Retrieves the number of entries in the dashes array. The number of entries in the dashes array if the stroke is dashed; otherwise, 0. unsigned int ID2D1StrokeStyle::GetDashesCount() Copies the dash pattern to the specified array. A reference to an array that will receive the dash pattern. The array must be able to contain at least as many elements as specified by dashesCount. You must allocate storage for this array. The number of dashes to copy. If this value is less than the number of dashes in the stroke style's dashes array, the returned dashes are truncated to dashesCount. If this value is greater than the number of dashes in the stroke style's dashes array, the extra dashes are set to 0.0f. To obtain the actual number of dashes in the stroke style's dashes array, use the GetDashesCount method. The dashes are specified in units that are a multiple of the stroke width, with subsequent members of the array indicating the dashes and gaps between dashes: the first entry indicates a filled dash, the second a gap, and so on. void ID2D1StrokeStyle::GetDashes([Out, Buffer] float* dashes,[In] unsigned int dashesCount) Creates an that describes start cap, dash pattern, and other features of a stroke. an instance of a definition for this render target Creates an that describes start cap, dash pattern, and other features of a stroke. an instance of A structure that describes the stroke's line cap, dash offset, and other details of a stroke. An array whose elements are set to the length of each dash and space in the dash pattern. The first element sets the length of a dash, the second element sets the length of a space, the third element sets the length of a dash, and so on. The length of each dash and space in the dash pattern is the product of the element value in the array and the stroke width. Retrieves the type of shape used at the beginning of a stroke. GetStartCap D2D1_CAP_STYLE ID2D1StrokeStyle::GetStartCap() Retrieves the type of shape used at the end of a stroke. GetEndCap D2D1_CAP_STYLE ID2D1StrokeStyle::GetEndCap() Gets a value that specifies how the ends of each dash are drawn. GetDashCap D2D1_CAP_STYLE ID2D1StrokeStyle::GetDashCap() Retrieves the limit on the ratio of the miter length to half the stroke's thickness. GetMiterLimit float ID2D1StrokeStyle::GetMiterLimit() Retrieves the type of joint used at the vertices of a shape's outline. GetLineJoin D2D1_LINE_JOIN ID2D1StrokeStyle::GetLineJoin() Retrieves a value that specifies how far in the dash sequence the stroke will start. GetDashOffset float ID2D1StrokeStyle::GetDashOffset() Gets a value that describes the stroke's dash pattern. If a custom dash style is specified, the dash pattern is described by the dashes array, which can be retrieved by calling the GetDashes method. GetDashStyle D2D1_DASH_STYLE ID2D1StrokeStyle::GetDashStyle() Retrieves the number of entries in the dashes array. GetDashesCount unsigned int ID2D1StrokeStyle::GetDashesCount() [This documentation is preliminary and is subject to change.] ID2D1StrokeStyle1 Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] This method returns the stroke transform type. D2D1_STROKE_TRANSFORM_TYPE ID2D1StrokeStyle1::GetStrokeTransformType() [This documentation is preliminary and is subject to change.] GetStrokeTransformType D2D1_STROKE_TRANSFORM_TYPE ID2D1StrokeStyle1::GetStrokeTransformType() Populates an object with triangles. ID2D1TessellationSink Copies the specified triangles to the sink. An array of structures that describe the triangles to add to the sink. void AddTriangles([In, Buffer] const D2D1_TRIANGLE* triangles,[None] UINT trianglesCount) Closes the sink. HRESULT Close() Populates an object with triangles. ID2D1TessellationSink Initializes a new instance of the class. The native pointer. Copies the specified triangles to the sink. An array of structures that describe the triangles to add to the sink. The number of triangles to copy from the triangles array. void ID2D1TessellationSink::AddTriangles([In, Buffer] const D2D1_TRIANGLE* triangles,[In] unsigned int trianglesCount) Closes the sink and returns its error status. If this method succeeds, it returns . Otherwise, it returns an error code. HRESULT ID2D1TessellationSink::Close() Represents a geometry that has been transformed. ID2D1TransformedGeometry Initializes a new instance of the class. The native pointer. Retrieves the source geometry of this transformed geometry object. When this method returns, contains a reference to a reference to the source geometry for this transformed geometry object. This parameter is passed uninitialized. void ID2D1TransformedGeometry::GetSourceGeometry([Out] ID2D1Geometry** sourceGeometry) Retrieves the matrix used to transform the object's source geometry. No documentation. void ID2D1TransformedGeometry::GetTransform([Out] D2D_MATRIX_3X2_F* transform) Default Constructor for a . an instance of Retrieves the source geometry of this transformed geometry object. GetSourceGeometry void ID2D1TransformedGeometry::GetSourceGeometry([Out] ID2D1Geometry** sourceGeometry) Retrieves the matrix used to transform the object's source geometry. GetTransform void ID2D1TransformedGeometry::GetTransform([Out] D2D_MATRIX_3X2_F* transform) [This documentation is preliminary and is subject to change.] ID2D1TransformGraph Initializes a new instance of the class. The native pointer. No documentation. No documentation. unsigned int ID2D1TransformGraph::GetInputCount() [This documentation is preliminary and is subject to change.] The node to be set. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred E_OUTOFMEMORYDirect2D could not allocate sufficient memory to complete the call.? This equivalent to calling , adding a single node, and connecting all of the node inputs to the effect inputs in order. HRESULT ID2D1TransformGraph::SetSingleTransformNode([In] ID2D1TransformNode* node) [This documentation is preliminary and is subject to change.] The node that will be added to the transform graph. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred E_OUTOFMEMORYDirect2D could not allocate sufficient memory to complete the call.? This adds a transform node to the transform graph. A node must be added to the transform graph before it can be interconnected in any way.A transform graph cannot be directly added to another transform graph. Any other kind of interface derived from can be added to the transform graph. HRESULT ID2D1TransformGraph::AddNode([In] ID2D1TransformNode* node) [This documentation is preliminary and is subject to change.] The node that will be removed from the transform graph. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred D2DERR_NOT_FOUND = (HRESULT_FROM_WIN32())Direct2D could not locate the specified node.? The node must already exist in the graph; otherwise, the call fails with D2DERR_NOT_FOUND.Any connections to this node will be removed when the node is removed.After the node is removed, it cannot be used by the interface until it has been added to the graph by AddNode. HRESULT ID2D1TransformGraph::RemoveNode([In] ID2D1TransformNode* node) No documentation. No documentation. No documentation. HRESULT ID2D1TransformGraph::SetOutputNode([In] ID2D1TransformNode* node) No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT ID2D1TransformGraph::ConnectNode([In] ID2D1TransformNode* fromNode,[In] ID2D1TransformNode* toNode,[In] unsigned int toNodeInput) [This documentation is preliminary and is subject to change.] The effect input to which the transform node will be bound. The node to which the connection will be made. The node input that will be connected. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred D2DERR_NOT_FOUND = (HRESULT_FROM_WIN32())Direct2D could not locate the specified node.? HRESULT ID2D1TransformGraph::ConnectToEffectInput([In] unsigned int toEffectInput,[In] ID2D1TransformNode* node,[In] unsigned int toNodeInput) [This documentation is preliminary and is subject to change.] Used when enough changes to transfoms would make editing of the transform graph inefficient. void ID2D1TransformGraph::Clear() No documentation. GetInputCount unsigned int ID2D1TransformGraph::GetInputCount() [This documentation is preliminary and is subject to change.] This equivalent to calling , adding a single node, and connecting all of the node inputs to the effect inputs in order. SetSingleTransformNode HRESULT ID2D1TransformGraph::SetSingleTransformNode([In] ID2D1TransformNode* node) No documentation. SetOutputNode HRESULT ID2D1TransformGraph::SetOutputNode([In] ID2D1TransformNode* node) [This documentation is preliminary and is subject to change.] ID2D1VertexBuffer Initializes a new instance of the class. The native pointer. [This documentation is preliminary and is subject to change.] When this method returns, contains the address of a reference to the available buffer. The desired size of the buffer. The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. E_INVALIDARGAn invalid parameter was passed to the returning function. D3DERR_DEVICELOSTThe device has been lost but cannot be reset at this time.? If data is larger than bufferSize, this method fails. HRESULT ID2D1VertexBuffer::Map([Out, Buffer] unsigned char** data,[In] unsigned int bufferSize) [This documentation is preliminary and is subject to change.] The method returns an . Possible values include, but are not limited to, those in the following table.HRESULTDescription S_OKNo error occurred. D2DERR_WRONG_STATEThe object was not in the correct state to process the method.? After this method returns, the mapped memory from the vertex buffer is no longer accessible by the effect. HRESULT ID2D1VertexBuffer::Unmap() Renders drawing instructions to a window. ID2D1HwndRenderTarget Initializes a new instance of the class. The native pointer. Indicates whether the associated with this render target is occluded. A value that indicates whether the associated with this render target is occluded. Note??If the window was occluded the last time that EndDraw was called, the next time that the render target calls CheckWindowState, it will return regardless of the current window state. If you want to use CheckWindowState to determine the current window state, you should call CheckWindowState after every EndDraw call and ignore its return value. This call will ensure that your next call to CheckWindowState state will return the actual window state. D2D1_WINDOW_STATE ID2D1HwndRenderTarget::CheckWindowState() Changes the size of the render target to the specified pixel size. No documentation. No documentation. After this method is called, the contents of the render target's back-buffer are not defined, even if the option was specified when the render target was created. HRESULT ID2D1HwndRenderTarget::Resize([In] const D2D_SIZE_U* pixelSize) Returns the associated with this render target. The associated with this render target. HWND ID2D1HwndRenderTarget::GetHwnd() Creates an , a render target that renders to a window. When you create a render target and hardware acceleration is available, you allocate resources on the computer's GPU. By creating a render target once and retaining it as long as possible, you gain performance benefits. Your application should create render targets once and hold onto them for the life of the application or until the {{D2DERR_RECREATE_TARGET}} error is received. When you receive this error, you need to recreate the render target (and any resources it created). an instance of The rendering mode, pixel format, remoting options, DPI information, and the minimum DirectX support required for hardware rendering. For information about supported pixel formats, see {{Supported Pixel Formats and Alpha Modes}}. The window handle, initial size (in pixels), and present options. Returns the associated with this render target. GetHwnd HWND ID2D1HwndRenderTarget::GetHwnd() Describes an elliptical arc between two points. D2D1_ARC_SEGMENT The end point of the arc. D2D_POINT_2F point The x-radius and y-radius of the arc. D2D_SIZE_F size A value that specifies how many degrees in the clockwise direction the ellipse is rotated relative to the current coordinate system. float rotationAngle A value that specifies whether the arc sweep is clockwise or counterclockwise. D2D1_SWEEP_DIRECTION sweepDirection A value that specifies whether the given arc is larger than 180 degrees. D2D1_ARC_SIZE arcSize Represents a cubic bezier segment drawn between two points. A cubic Bezier curve is defined by four points: a start point, an end point (point3), and two control points (point1 and point2). A Bezier segment does not contain a property for the starting point of the curve; it defines only the end point. The beginning point of the curve is the current point of the path to which the Bezier curve is added.The two control points of a cubic Bezier curve behave like magnets, attracting portions of what would otherwise be a straight line toward themselves and producing a curve. The first control point, point1, affects the beginning portion of the curve; the second control point, point2, affects the ending portion of the curve.Note??The curve doesn't necessarily pass through either of the control points; each control point moves its portion of the line toward itself, but not through itself. D2D1_BEZIER_SEGMENT The first control point for the Bezier segment. D2D_POINT_2F point1 The second control point for the Bezier segment. D2D_POINT_2F point2 The end point for the Bezier segment. D2D_POINT_2F point3 Describes the extend modes and the interpolation mode of an . D2D1_BITMAP_BRUSH_PROPERTIES No documentation. D2D1_EXTEND_MODE extendModeX No documentation. D2D1_EXTEND_MODE extendModeY No documentation. D2D1_BITMAP_INTERPOLATION_MODE interpolationMode No documentation. D2D1_BITMAP_BRUSH_PROPERTIES1 No documentation. D2D1_EXTEND_MODE extendModeX No documentation. D2D1_EXTEND_MODE extendModeY No documentation. D2D1_INTERPOLATION_MODE interpolationMode [This documentation is preliminary and is subject to change.] D2D1_BLEND_DESCRIPTION Specifies the first RGB data source and includes an optional preblend operation. D2D1_BLEND sourceBlend Specifies the second RGB data source and includes an optional preblend operation. D2D1_BLEND destinationBlend Specifies how to combine the RGB data sources. D2D1_BLEND_OPERATION blendOperation Specifies the first alpha data source and includes an optional preblend operation. Blend options that end in _COLOR are not allowed. D2D1_BLEND sourceBlendAlpha Specifies the second alpha data source and includes an optional preblend operation. Blend options that end in _COLOR are not allowed. D2D1_BLEND destinationBlendAlpha Specifies how to combine the alpha data sources. D2D1_BLEND_OPERATION blendOperationAlpha Parameters to the blend operations. The blend must use for this to be used. SHARPDX_COLOR4 blendFactor Describes the opacity and transformation of a brush. This structure is used when creating a brush. For convenience, Direct2D provides the D2D1::BrushProperties function for creating structures.After creating a brush, you can change its opacity or transform by calling the SetOpacity or SetTransform methods. D2D1_BRUSH_PROPERTIES A value between 0.0f and 1.0f, inclusive, that specifies the degree of opacity of the brush. float opacity The transformation that is applied to the brush. D2D_MATRIX_3X2_F transform [This documentation is preliminary and is subject to change.] D2D1_CREATION_PROPERTIES The threading mode with which the corresponding root objects will be created. D2D1_THREADING_MODE threadingMode The debug level that the root objects should be created with. D2D1_DEBUG_LEVEL debugLevel No documentation. D2D1_DEVICE_CONTEXT_OPTIONS options [This documentation is preliminary and is subject to change.] The vertex shader will be loaded by the CreateVertexBuffer call that accepts the vertex buffer properties.This structure does not need to be specified if one of the standard vertex shaders is used. D2D1_CUSTOM_VERTEX_BUFFER_PROPERTIES The unique ID of the vertex shader. const unsigned char* shaderBufferWithInputSignature An array of input assembler stage data types. unsigned int shaderBufferSize The number of input elements in the vertex shader. const D2D1_INPUT_ELEMENT_DESC* inputElements The vertex stride. unsigned int elementCount No documentation. unsigned int stride Describes the drawing state of a render target. D2D1_DRAWING_STATE_DESCRIPTION The antialiasing mode for subsequent nontext drawing operations. D2D1_ANTIALIAS_MODE antialiasMode The antialiasing mode for subsequent text and glyph drawing operations. D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode A label for subsequent drawing operations. unsigned longlong tag1 A label for subsequent drawing operations. unsigned longlong tag2 The transformation to apply to subsequent drawing operations. D2D_MATRIX_3X2_F transform No documentation. D2D1_DRAWING_STATE_DESCRIPTION1 No documentation. D2D1_ANTIALIAS_MODE antialiasMode No documentation. D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode No documentation. unsigned longlong tag1 No documentation. unsigned longlong tag2 No documentation. D2D_MATRIX_3X2_F transform No documentation. D2D1_PRIMITIVE_BLEND primitiveBlend No documentation. D2D1_UNIT_MODE unitMode [This documentation is preliminary and is subject to change.] Note??The caller should not rely heavily on the input rectangles returned by this structure. They can change due to subtle changes in effect implementations and due to optimization changes in the effect rendering system. D2D1_EFFECT_INPUT_DESCRIPTION The effect whose input connection is being specified. ID2D1Effect* effect The input index of the effect that is being considered. unsigned int inputIndex The amount of data that would be available on the input. This can be used to query this information when the data is not yet available. D2D_RECT_F inputRectangle Contains the debugging level of an object. To enable debugging, you must install the Direct2D Debug Layer. D2D1_FACTORY_OPTIONS No documentation. D2D1_DEBUG_LEVEL debugLevel No documentation. D2D1_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS No documentation. BOOL computeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x No documentation. D2D1_FEATURE_DATA_DOUBLES No documentation. BOOL doublePrecisionFloatShaderOps Contains the position and color of a gradient stop. Gradient stops can be specified in any order if they are at different positions. Two stops may share a position. In this case, the first stop specified is treated as the "low" stop (nearer 0.0f) and subsequent stops are treated as "higher" (nearer 1.0f). This behavior is useful if a caller wants an instant transition in the middle of a stop.Typically, there are at least two points in a collection, although creation with only one stop is permitted. For example, one point is at position 0.0f, another point is at position 1.0f, and additional points are distributed in the [0, 1] range. Where the gradient progression is beyond the range of [0, 1], the stops are stored, but may affect the gradient.When drawn, the [0, 1] range of positions is mapped to the brush, in a brush-dependent way. For details, see and .Gradient stops with a position outside the [0, 1] range cannot be seen explicitly, but they can still affect the colors produced in the [0, 1] range. For example, a two-stop gradient 0.0f, Black}, {2.0f, White is indistinguishable visually from 0.0f, Black}, {1.0f, Mid-level gray. Also, the colors are clamped before interpolation. D2D1_GRADIENT_STOP A value that indicates the relative position of the gradient stop in the brush. This value must be in the [0.0f, 1.0f] range if the gradient stop is to be seen explicitly. float position The color of the gradient stop. D2D_COLOR_F color Contains the , pixel size, and presentation options for an . Use this structure when you call the CreateHwndRenderTarget method to create a new .For convenience, Direct2D provides the D2D1::HwndRenderTargetProperties function for creating new structures. D2D1_HWND_RENDER_TARGET_PROPERTIES No documentation. HWND hwnd No documentation. D2D_SIZE_U pixelSize No documentation. D2D1_PRESENT_OPTIONS presentOptions [This documentation is preliminary and is subject to change.] D2D1_IMAGE_BRUSH_PROPERTIES The extend mode in the image x-axis. D2D_RECT_F sourceRectangle The extend mode in the image y-axis. D2D1_EXTEND_MODE extendModeX The source rectangle in the image space from which the image will be tiled or interpolated. D2D1_EXTEND_MODE extendModeY No documentation. D2D1_INTERPOLATION_MODE interpolationMode [This documentation is preliminary and is subject to change.] D2D1_INPUT_DESCRIPTION The type of filter to apply to the input texture. D2D1_FILTER filter The mip level to retrieve from the upstream transform, if specified. unsigned int levelOfDetailCount [This documentation is preliminary and is subject to change.] This structure is a subset of that omits fields required to define a vertex layout.If the D2D1_APPEND_ALIGNED_ELEMENT constant is used for alignedByteOffset, the elements will be packed contiguously for convenience. D2D1_INPUT_ELEMENT_DESC The HLSL semantic associated with this element in a shader input-signature. const char* semanticName The semantic index for the element. A semantic index modifies a semantic, with an integer index number. A semantic index is only needed in a case where there is more than one element with the same semantic. For example, a 4x4 matrix would have four components each with the semantic name matrix; however, each of the four components would have different semantic indices (0, 1, 2, and 3). unsigned int semanticIndex The data type of the element data. DXGI_FORMAT format An integer value that identifies the input-assembler. Valid values are between 0 and 15. unsigned int inputSlot The offset in bytes between each element. unsigned int alignedByteOffset Contains the content bounds, mask information, opacity settings, and other options for a layer resource. D2D1_LAYER_PARAMETERS The content bounds of the layer. Content outside these bounds is not guaranteed to render. D2D_RECT_F contentBounds The geometric mask specifies the area of the layer that is composited into the render target. ID2D1Geometry* geometricMask A value that specifies the antialiasing mode for the geometricMask. D2D1_ANTIALIAS_MODE maskAntialiasMode A value that specifies the transform that is applied to the geometric mask when composing the layer. D2D_MATRIX_3X2_F maskTransform An opacity value that is applied uniformly to all resources in the layer when compositing to the target. float opacity A brush that is used to modify the opacity of the layer. The brush is mapped to the layer, and the alpha channel of each mapped brush pixel is multiplied against the corresponding layer pixel. ID2D1Brush* opacityBrush A value that specifies whether the layer intends to render text with ClearType antialiasing. D2D1_LAYER_OPTIONS layerOptions No documentation. D2D1_LAYER_PARAMETERS1 No documentation. D2D_RECT_F contentBounds No documentation. ID2D1Geometry* geometricMask No documentation. D2D1_ANTIALIAS_MODE maskAntialiasMode No documentation. D2D_MATRIX_3X2_F maskTransform No documentation. float opacity No documentation. ID2D1Brush* opacityBrush No documentation. D2D1_LAYER_OPTIONS1 layerOptions Contains the starting point and endpoint of the gradient axis for an . Use this method when creating new objects with the CreateLinearGradientBrush method. For convenience, Direct2D provides the D2D1::LinearGradientBrushProperties helper function for creating new structures.The following illustration shows how a linear gradient changes as you change its start and end points. For the first gradient, the start point is set to (0,0) and the end point to (150, 50); this creates a diagonal gradient that starts at the upper-left corner and extends to the lower-right corner of the area being painted. When you set the start point to (0, 25) and the end point to (150, 25), a horizontal gradient is created. Similarly, setting the start point to (75, 0) and the end point to (75, 50) creates a vertical gradient. Setting the start point to (0, 50) and the end point to (150, 0) creates a diagonal gradient that starts at the lower-left corner and extends to the upper-right corner of the area being painted. D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES No documentation. D2D_POINT_2F startPoint No documentation. D2D_POINT_2F endPoint [This documentation is preliminary and is subject to change.] The mapped rectangle is used to map a rectangle into the caller's address space. D2D1_MAPPED_RECT The size in bytes of an individual scanline in the bitmap. unsigned int pitch The height of the bitmap that has been mapped. unsigned int height The data inside the bitmap. unsigned char* bits Contains the data format and alpha mode for a bitmap or render target. For more information about the pixel formats and alpha modes supported by each render target, see Supported Pixel Formats and Alpha Modes. D2D1_PIXEL_FORMAT A value that specifies the size and arrangement of channels in each pixel. DXGI_FORMAT format A value that specifies whether the alpha channel is using pre-multiplied alpha, straight alpha, whether it should be ignored and considered opaque, or whether it is unkown. D2D1_ALPHA_MODE alphaMode Initializes a new instance of the struct. A value that specifies the size and arrangement of channels in each pixel. A value that specifies whether the alpha channel is using pre-multiplied alpha, straight alpha, whether it should be ignored and considered opaque, or whether it is unkown. [This documentation is preliminary and is subject to change.] D2D1_POINT_DESCRIPTION The end point after walking the path. D2D_POINT_2F point A unit vector indicating the tangent point. D2D_POINT_2F unitTangentVector The index of the segment on which point resides. This index is global to the entire path, not just to a particular figure. unsigned int endSegment The index of the figure on which point resides. unsigned int endFigure The length of the section of the path stretching from the start of the path to the start of endSegment. float lengthToEndSegment No documentation. D2D1_PRINT_CONTROL_PROPERTIES No documentation. D2D1_PRINT_FONT_SUBSET_MODE fontSubset No documentation. float rasterDPI No documentation. D2D1_COLOR_SPACE colorSpace [This documentation is preliminary and is subject to change.] The propertyName is used to cross-correlate the property binding with the registration XML. The propertyName must be present in the XML call or the registration will fail. The property index is used to define the index of the exposed property regardless of the order of the entries in the property binding array or the order of the properties in the registration XML. While the property indices must be contiguous, they do not have to be ordered. All properties must be bound. D2D1_PROPERTY_BINDING The name of the property. This must exist in the XML schema. const wchar_t* propertyName The function that will receive the data to set. __function__stdcall* setFunction The function that will be asked to write the output data. __function__stdcall* getFunction Contains the control point and end point for a quadratic Bezier segment. D2D1_QUADRATIC_BEZIER_SEGMENT The control point of the quadratic Bezier segment. D2D_POINT_2F point1 The end point of the quadratic Bezier segment. D2D_POINT_2F point2 Contains the gradient origin offset and the size and position of the gradient ellipse for an . Different values for center, gradientOriginOffset, radiusX and/or radiusY produce different gradients. The following illustration shows several radial gradients that have different gradient origin offsets, creating the appearance of the light illuminating the circles from different angles.For convenience, Direct2D provides the D2D1::RadialGradientBrushProperties function for creating new D2D1_RADIAL_GRADIENT_BRUSH structures. D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES No documentation. D2D_POINT_2F center No documentation. D2D_POINT_2F gradientOriginOffset No documentation. float radiusX No documentation. float radiusY [This documentation is preliminary and is subject to change.] The renderer can allocate tiles larger than the minimum tile allocation. The allocated tiles will be powers of two of the minimum size on each axis, except that the size on each axis will not exceed the guaranteed maximum texture size for the device feature level.The minimumPixelRenderExtent is the size of the square tile below which the renderer will expand the tile allocation rather than attempting to subdivide the rendering tile any further. When this threshold is reached, the allocation tile size is expanded. This might occur repeatedly until rendering can either proceed or it is determined that the graph cannot be rendered.The buffer precision is used for intermediate buffers if it is otherwise unspecified by the effects or the internal effect topology. The application can also use the Output.BufferPrecision method to specify the output precision for a particular effect. This takes precedence over the context precision. In addition, the effect might set a different precision internally if required. If the buffer type on the context is and otherwise not specified by the effect or transform, the precision of the output will be the maximum precision of the inputs to the transform. The buffer precision does not affect the number of channels used. D2D1_RENDERING_CONTROLS The buffer precision used by default if the buffer precision is not otherwise specified by the effect or the transform. D2D1_BUFFER_PRECISION bufferPrecision The minimum tile allocation size to be used by the imaging effect renderer. D2D_SIZE_U tileSize Contains rendering options (hardware or software), pixel format, DPI information, remoting options, and Direct3D support requirements for a render target. Use this structure when creating a render target, or use it with the method to check the properties supported by an existing render target.As a convenience, Direct2D provides the D2D1::RenderTargetProperties helper function for creating structures. An easy way to create a structure that works for most render targets is to call the function without specifying any parameters. Doing so creates a structure that has its fields set to default values. For more information, see D2D1::RenderTargetProperties.Not all render targets support hardware rendering. For a list, see the Render Targets Overview.Using Default DPI SettingsTo use the default DPI, set dpiX and dpiY to 0. The default DPI varies depending on the render target:For a compatible render target, the default DPI is the DPI of the parent render target. For a , the default DPI is the system DPI obtained from the render target's . For other render targets, the default DPI is 96.To use the default DPI setting, both dpiX and dpiY must be set to 0. Setting only one value to 0 causes an E_INVALIDARG error when attempting to create a render target. D2D1_RENDER_TARGET_PROPERTIES A value that specifies whether the render target should force hardware or software rendering. A value of specifies that the render target should use hardware rendering if it is available; otherwise, it uses software rendering. Note that WIC bitmap render targets do not support hardware rendering. D2D1_RENDER_TARGET_TYPE type The pixel format and alpha mode of the render target. You can use the D2D1::PixelFormat function to create a pixel format that specifies that Direct2D should select the pixel format and alpha mode for you. For a list of pixel formats and alpha modes supported by each render target, see Supported Pixel Formats and Alpha Modes. D2D1_PIXEL_FORMAT pixelFormat The horizontal DPI of the render target. To use the default DPI, set dpiX and dpiY to 0. For more information, see the Remarks section. float dpiX The vertical DPI of the render target. To use the default DPI, set dpiX and dpiY to 0. For more information, see the Remarks section. float dpiY A value that specifies how the render target is remoted and whether it should be GDI-compatible. Set to to create a render target that is not compatible with GDI and uses Direct3D command-stream remoting if it is available. D2D1_RENDER_TARGET_USAGE usage A value that specifies the minimum Direct3D feature level required for hardware rendering. If the specified minimum level is not available, the render target uses software rendering if the type member is set to ; if type is set to to , render target creation fails. A value of indicates that Direct2D should determine whether the Direct3D feature level of the device is adequate. This field is used only when creating and objects. D2D1_FEATURE_LEVEL minLevel Initializes a new instance of the struct. The pixel format and alpha mode of the render target. You can use the {{D2D1::PixelFormat}} function to create a pixel format that specifies that Direct2D should select the pixel format and alpha mode for you. For a list of pixel formats and alpha modes supported by each render target, see {{Supported Pixel Formats and Alpha Modes}}. Initializes a new instance of the struct. A value that specifies whether the render target should force hardware or software rendering. A value of specifies that the render target should use hardware rendering if it is available; otherwise, it uses software rendering. Note that WIC bitmap render targets do not support hardware rendering. The pixel format and alpha mode of the render target. You can use the {{D2D1::PixelFormat}} function to create a pixel format that specifies that Direct2D should select the pixel format and alpha mode for you. For a list of pixel formats and alpha modes supported by each render target, see {{Supported Pixel Formats and Alpha Modes}}. The horizontal DPI of the render target. To use the default DPI, set dpiX and dpiY to 0. For more information, see the Remarks section. The vertical DPI of the render target. To use the default DPI, set dpiX and dpiY to 0. For more information, see the Remarks section. A value that specifies how the render target is remoted and whether it should be GDI-compatible. Set to to create a render target that is not compatible with GDI and uses Direct3D command-stream remoting if it is available. A value that specifies the minimum Direct3D feature level required for hardware rendering. If the specified minimum level is not available, the render target uses software rendering if the type member is set to ; if type is set to to D2D1_RENDER_TARGET_TYPE_HARDWARE, render target creation fails. A value of indicates that Direct2D should determine whether the Direct3D feature level of the device is adequate. This field is used only when creating and objects. [This documentation is preliminary and is subject to change.] D2D1_RESOURCE_TEXTURE_PROPERTIES The extents of the resource table in each dimension. const unsigned int* extents The number of dimensions in the resource texture. This must be a number from 1 to 3. unsigned int dimensions The precision of the resource texture to create. D2D1_BUFFER_PRECISION bufferPrecision The number of channels in the resource texture. D2D1_CHANNEL_DEPTH channelDepth No documentation. D2D1_FILTER filter Specifies how pixel values beyond the extent of the texture will be sampled, in every dimension. const D2D1_EXTEND_MODE* extendModes Contains the dimensions and corner radii of a rounded rectangle. Each corner of the rectangle specified by the rect is replaced with a quarter ellipse, with a radius in each direction specified by radiusX and radiusY.If the radiusX is greater than or equal to half the width of the rectangle, and the radiusY is greater than or equal to one-half the height, the rounded rectangle is an ellipse with the same width and height of the rect.Even when both radiuX and radiusY are zero, the rounded rectangle is different from a rectangle., When stroked, the corners of the rounded rectangle are roundly joined, not mitered (square). D2D1_ROUNDED_RECT The coordinates of the rectangle. D2D_RECT_F rect The x-radius for the quarter ellipse that is drawn to replace every corner of the rectangle. float radiusX The y-radius for the quarter ellipse that is drawn to replace every corner of the rectangle. float radiusY Describes the stroke that outlines a shape. The following illustration shows different dashOffset values for the same custom dash style. D2D1_STROKE_STYLE_PROPERTIES The cap applied to the start of all the open figures in a stroked geometry. D2D1_CAP_STYLE startCap The cap applied to the end of all the open figures in a stroked geometry. D2D1_CAP_STYLE endCap The shape at either end of each dash segment. D2D1_CAP_STYLE dashCap A value that describes how segments are joined. This value is ignored for a vertex if the segment flags specify that the segment should have a smooth join. D2D1_LINE_JOIN lineJoin The limit of the thickness of the join on a mitered corner. This value is always treated as though it is greater than or equal to 1.0f. float miterLimit A value that specifies whether the stroke has a dash pattern and, if so, the dash style. D2D1_DASH_STYLE dashStyle A value that specifies an offset in the dash sequence. A positive dash offset value shifts the dash pattern, in units of stroke width, toward the start of the stroked geometry. A negative dash offset value shifts the dash pattern, in units of stroke width, toward the end of the stroked geometry. float dashOffset [This documentation is preliminary and is subject to change.] D2D1_STROKE_STYLE_PROPERTIES1 The cap to use at the start of each open figure. D2D1_CAP_STYLE startCap The cap to use at the end of each open figure. D2D1_CAP_STYLE endCap The cap to use at the start and end of each dash. D2D1_CAP_STYLE dashCap The line join to use. D2D1_LINE_JOIN lineJoin The limit beyond which miters are either clamped or converted to bevels. float miterLimit The type of dash to use. D2D1_DASH_STYLE dashStyle The location of the first dash, relative to the start of the figure. float dashOffset The rule that determines what render target properties affect the nib of the stroke. D2D1_STROKE_TRANSFORM_TYPE transformType Contains the three vertices that describe a triangle. D2D1_TRIANGLE The first vertex of a triangle. D2D_POINT_2F point1 The second vertex of a triangle. D2D_POINT_2F point2 The third vertex of a triangle. D2D_POINT_2F point3 [This documentation is preliminary and is subject to change.] If usage is dynamic, the system might return a system memory buffer and copy these vertices into the rendering vertex buffer for each element.If the initialization data is not specified, the buffer will be uninitialized. D2D1_VERTEX_BUFFER_PROPERTIES The number of inputs to the vertex shader. unsigned int inputCount Indicates how frequently the vertex buffer is likely to be updated. D2D1_VERTEX_USAGE usage The initial contents of the vertex buffer. const unsigned char* data The size of the vertex buffer, in bytes. unsigned int byteWidth [This documentation is preliminary and is subject to change.] D2D1_VERTEX_RANGE The first vertex in the range to process. unsigned int startVertex The number of vertices in the count to use. unsigned int vertexCount Internal GeometrySink Callback Internal SimplifiedGeometrySink Callback Return a pointer to the unamanged version of this callback. The callback. A pointer to a shadow c++ callback Get a native callback pointer from a managed callback. The geometry sink. A pointer to the unmanaged geomerty sink counterpart Internal TessellationSink Callback Get a native callback pointer from a managed callback. The geometry sink. A pointer to the unmanaged geomerty sink counterpart BitmapEncoderOptions used for encoding. Initializes a new instance of the class. The property bag pointer. Gets or sets the image quality. The image quality. Range value: 0-1.0f Applicable Codecs: JPEG, HDPhoto Gets or sets the compression quality. The compression quality. Range value: 0-1.0f Applicable Codecs: TIFF Gets or sets a value indicating whether loss less compression is enabled. true if [loss less]; otherwise, false. Range value: true-false Applicable Codecs: HDPhoto Gets or sets the bitmap transform. The bitmap transform. Range value: Applicable Codecs: JPEG Gets or sets a value indicating whether [interlace option]. true if [interlace option]; otherwise, false. Range value: true-false Applicable Codecs: PNG Gets or sets the filter option. The filter option. Range value: Applicable Codecs: PNG Gets or sets the TIFF compression method. The TIFF compression method. Range value: Applicable Codecs: TIFF Gets or sets the luminance. The luminance. Range value: 64 Entries (DCT) Applicable Codecs: JPEG Gets or sets the chrominance. The chrominance. Range value: 64 Entries (DCT) Applicable Codecs: JPEG Gets or sets the JPEG Y cr cb subsampling. The JPEG Y cr cb subsampling. Range value: Applicable Codecs: JPEG Gets or sets a value indicating whether [suppress app0]. true if [suppress app0]; otherwise, false. Range value: true-false Applicable Codecs: JPEG Bmp bitmap encoder using initialized with default guid . Initializes a new instance of the class. The native PTR. Initializes a new instance of the class. The factory. Initializes a new instance of the class. The factory. The GUID vendor ref. Bmp bitmap encoder using initialized with default guid . Initializes a new instance of the class. The native PTR. Initializes a new instance of the class. The factory. Initializes a new instance of the class. The factory. The GUID vendor ref. Gif bitmap encoder using initialized with default guid . Initializes a new instance of the class. The native PTR. Initializes a new instance of the class. The factory. Initializes a new instance of the class. The factory. The GUID vendor ref. Gif bitmap encoder using initialized with default guid . Initializes a new instance of the class. The native PTR. Initializes a new instance of the class. The factory. Initializes a new instance of the class. The factory. The GUID vendor ref. Tiff bitmap encoder using initialized with default guid . Initializes a new instance of the class. The native PTR. Initializes a new instance of the class. The factory. Initializes a new instance of the class. The factory. The GUID vendor ref. Tiff bitmap encoder using initialized with default guid . Initializes a new instance of the class. The native PTR. Initializes a new instance of the class. The factory. Initializes a new instance of the class. The factory. The GUID vendor ref. Png bitmap encoder using initialized with default guid . Initializes a new instance of the class. The native PTR. Initializes a new instance of the class. The factory. Initializes a new instance of the class. The factory. The GUID vendor ref. Png bitmap encoder using initialized with default guid . Initializes a new instance of the class. The native PTR. Initializes a new instance of the class. The factory. Initializes a new instance of the class. The factory. The GUID vendor ref. Tiff bitmap encoder using initialized with default guid . Initializes a new instance of the class. The native PTR. Initializes a new instance of the class. The factory. Initializes a new instance of the class. The factory. The GUID vendor ref. Tiff bitmap encoder using initialized with default guid . Initializes a new instance of the class. The native PTR. Initializes a new instance of the class. The factory. Initializes a new instance of the class. The factory. The GUID vendor ref. Wmp bitmap encoder using initialized with default guid . Initializes a new instance of the class. The native PTR. Initializes a new instance of the class. The factory. Initializes a new instance of the class. The factory. The GUID vendor ref. Wmp bitmap encoder using initialized with default guid . Initializes a new instance of the class. The native PTR. Initializes a new instance of the class. The factory. Initializes a new instance of the class. The factory. The GUID vendor ref.