| // Licensed under the Apache License, Version 2.0 |
| // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license |
| // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. |
| // All files in the project carrying such notice may not be copied, modified, or distributed |
| // except according to those terms |
| //! Mappings for the contents of d2d1.h |
| use ctypes::c_void; |
| use shared::basetsd::{UINT32, UINT64}; |
| use shared::dxgi::IDXGISurface; |
| use shared::guiddef::REFIID; |
| use shared::minwindef::{BOOL, DWORD, FLOAT}; |
| use shared::windef::{HDC, HWND, RECT}; |
| use um::d2dbasetypes::{ |
| D2D_COLOR_F, D2D_MATRIX_3X2_F, D2D_POINT_2F, D2D_POINT_2U, D2D_RECT_F, D2D_RECT_U, D2D_SIZE_F, |
| D2D_SIZE_U, |
| }; |
| use um::d3dcommon::{D3D_FEATURE_LEVEL_10_0, D3D_FEATURE_LEVEL_9_1}; |
| use um::dcommon::{D2D1_PIXEL_FORMAT, DWRITE_MEASURING_MODE}; |
| use um::dwrite::{DWRITE_GLYPH_RUN, IDWriteRenderingParams, IDWriteTextFormat, IDWriteTextLayout}; |
| use um::unknwnbase::{IUnknown, IUnknownVtbl}; |
| use um::wincodec::{IWICBitmap, IWICBitmapSource}; |
| use um::winnt::{HRESULT, WCHAR}; |
| // Types confirmed affected by the ABI issue: |
| // D2D1_SIZE_F, D2D1_SIZE_U, D2D1_COLOR_F, D2D1_PIXEL_FORMAT, D2D1_POINT_2F |
| pub const D2D1_DEFAULT_FLATTENING_TOLERANCE: FLOAT = 0.25; |
| pub const D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR: DWORD = 0; |
| pub const D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR: DWORD = 1; |
| pub const D2D1_INTERPOLATION_MODE_DEFINITION_CUBIC: DWORD = 2; |
| pub const D2D1_INTERPOLATION_MODE_DEFINITION_MULTI_SAMPLE_LINEAR: DWORD = 3; |
| pub const D2D1_INTERPOLATION_MODE_DEFINITION_ANISOTROPIC: DWORD = 4; |
| pub const D2D1_INTERPOLATION_MODE_DEFINITION_HIGH_QUALITY_CUBIC: DWORD = 5; |
| pub const D2D1_INTERPOLATION_MODE_DEFINITION_FANT: DWORD = 6; |
| pub const D2D1_INTERPOLATION_MODE_DEFINITION_MIPMAP_LINEAR: DWORD = 7; |
| ENUM!{enum D2D1_GAMMA { |
| D2D1_GAMMA_2_2 = 0, |
| D2D1_GAMMA_1_0 = 1, |
| }} |
| ENUM!{enum D2D1_OPACITY_MASK_CONTENT { |
| D2D1_OPACITY_MASK_CONTENT_GRAPHICS = 0, |
| D2D1_OPACITY_MASK_CONTENT_TEXT_NATURAL = 1, |
| D2D1_OPACITY_MASK_CONTENT_TEXT_GDI_COMPATIBLE = 2, |
| }} |
| ENUM!{enum D2D1_EXTEND_MODE { |
| D2D1_EXTEND_MODE_CLAMP = 0, |
| D2D1_EXTEND_MODE_WRAP = 1, |
| D2D1_EXTEND_MODE_MIRROR = 2, |
| }} |
| ENUM!{enum D2D1_ANTIALIAS_MODE { |
| D2D1_ANTIALIAS_MODE_PER_PRIMITIVE = 0, |
| D2D1_ANTIALIAS_MODE_ALIASED = 1, |
| }} |
| ENUM!{enum D2D1_TEXT_ANTIALIAS_MODE { |
| D2D1_TEXT_ANTIALIAS_MODE_DEFAULT = 0, |
| D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE = 1, |
| D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE = 2, |
| D2D1_TEXT_ANTIALIAS_MODE_ALIASED = 3, |
| }} |
| ENUM!{enum D2D1_BITMAP_INTERPOLATION_MODE { |
| D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR = |
| D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR, |
| D2D1_BITMAP_INTERPOLATION_MODE_LINEAR = |
| D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR, |
| }} |
| ENUM!{enum D2D1_DRAW_TEXT_OPTIONS { |
| D2D1_DRAW_TEXT_OPTIONS_NO_SNAP = 0x00000001, |
| D2D1_DRAW_TEXT_OPTIONS_CLIP = 0x00000002, |
| D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT = 0x00000004, |
| D2D1_DRAW_TEXT_OPTIONS_NONE = 0x00000000, |
| }} |
| pub type D2D1_POINT_2U = D2D_POINT_2U; |
| pub type D2D1_POINT_2F = D2D_POINT_2F; |
| pub type D2D1_RECT_F = D2D_RECT_F; |
| pub type D2D1_RECT_U = D2D_RECT_U; |
| pub type D2D1_SIZE_F = D2D_SIZE_F; |
| pub type D2D1_SIZE_U = D2D_SIZE_U; |
| pub type D2D1_COLOR_F = D2D_COLOR_F; |
| pub type D2D1_MATRIX_3X2_F = D2D_MATRIX_3X2_F; |
| pub type D2D1_TAG = UINT64; |
| STRUCT!{struct D2D1_BITMAP_PROPERTIES { |
| pixelFormat: D2D1_PIXEL_FORMAT, |
| dpiX: FLOAT, |
| dpiY: FLOAT, |
| }} |
| STRUCT!{struct D2D1_GRADIENT_STOP { |
| position: FLOAT, |
| color: D2D1_COLOR_F, |
| }} |
| STRUCT!{struct D2D1_BRUSH_PROPERTIES { |
| opacity: FLOAT, |
| transform: D2D1_MATRIX_3X2_F, |
| }} |
| STRUCT!{struct D2D1_BITMAP_BRUSH_PROPERTIES { |
| extendModeX: D2D1_EXTEND_MODE, |
| extendModeY: D2D1_EXTEND_MODE, |
| interpolationMode: D2D1_BITMAP_INTERPOLATION_MODE, |
| }} |
| STRUCT!{struct D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES { |
| startPoint: D2D1_POINT_2F, |
| endPoint: D2D1_POINT_2F, |
| }} |
| STRUCT!{struct D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES { |
| center: D2D1_POINT_2F, |
| gradientOriginOffset: D2D1_POINT_2F, |
| radiusX: FLOAT, |
| radiusY: FLOAT, |
| }} |
| ENUM!{enum D2D1_ARC_SIZE { |
| D2D1_ARC_SIZE_SMALL = 0, |
| D2D1_ARC_SIZE_LARGE = 1, |
| }} |
| ENUM!{enum D2D1_CAP_STYLE { |
| D2D1_CAP_STYLE_FLAT = 0, |
| D2D1_CAP_STYLE_SQUARE = 1, |
| D2D1_CAP_STYLE_ROUND = 2, |
| D2D1_CAP_STYLE_TRIANGLE = 3, |
| }} |
| ENUM!{enum D2D1_DASH_STYLE { |
| D2D1_DASH_STYLE_SOLID = 0, |
| D2D1_DASH_STYLE_DASH = 1, |
| D2D1_DASH_STYLE_DOT = 2, |
| D2D1_DASH_STYLE_DASH_DOT = 3, |
| D2D1_DASH_STYLE_DASH_DOT_DOT = 4, |
| D2D1_DASH_STYLE_CUSTOM = 5, |
| }} |
| ENUM!{enum D2D1_LINE_JOIN { |
| D2D1_LINE_JOIN_MITER = 0, |
| D2D1_LINE_JOIN_BEVEL = 1, |
| D2D1_LINE_JOIN_ROUND = 2, |
| D2D1_LINE_JOIN_MITER_OR_BEVEL = 3, |
| }} |
| ENUM!{enum D2D1_COMBINE_MODE { |
| D2D1_COMBINE_MODE_UNION = 0, |
| D2D1_COMBINE_MODE_INTERSECT = 1, |
| D2D1_COMBINE_MODE_XOR = 2, |
| D2D1_COMBINE_MODE_EXCLUDE = 3, |
| }} |
| ENUM!{enum D2D1_GEOMETRY_RELATION { |
| D2D1_GEOMETRY_RELATION_UNKNOWN = 0, |
| D2D1_GEOMETRY_RELATION_DISJOINT = 1, |
| D2D1_GEOMETRY_RELATION_IS_CONTAINED = 2, |
| D2D1_GEOMETRY_RELATION_CONTAINS = 3, |
| D2D1_GEOMETRY_RELATION_OVERLAP = 4, |
| }} |
| ENUM!{enum D2D1_GEOMETRY_SIMPLIFICATION_OPTION { |
| D2D1_GEOMETRY_SIMPLIFICATION_OPTION_CUBICS_AND_LINES = 0, |
| D2D1_GEOMETRY_SIMPLIFICATION_OPTION_LINES = 1, |
| }} |
| ENUM!{enum D2D1_FIGURE_BEGIN { |
| D2D1_FIGURE_BEGIN_FILLED = 0, |
| D2D1_FIGURE_BEGIN_HOLLOW = 1, |
| }} |
| ENUM!{enum D2D1_FIGURE_END { |
| D2D1_FIGURE_END_OPEN = 0, |
| D2D1_FIGURE_END_CLOSED = 1, |
| }} |
| STRUCT!{struct D2D1_BEZIER_SEGMENT { |
| point1: D2D1_POINT_2F, |
| point2: D2D1_POINT_2F, |
| point3: D2D1_POINT_2F, |
| }} |
| STRUCT!{struct D2D1_TRIANGLE { |
| point1: D2D1_POINT_2F, |
| point2: D2D1_POINT_2F, |
| point3: D2D1_POINT_2F, |
| }} |
| ENUM!{enum D2D1_PATH_SEGMENT { |
| D2D1_PATH_SEGMENT_NONE = 0x00000000, |
| D2D1_PATH_SEGMENT_FORCE_UNSTROKED = 0x00000001, |
| D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN = 0x00000002, |
| }} |
| ENUM!{enum D2D1_SWEEP_DIRECTION { |
| D2D1_SWEEP_DIRECTION_COUNTER_CLOCKWISE = 0, |
| D2D1_SWEEP_DIRECTION_CLOCKWISE = 1, |
| }} |
| ENUM!{enum D2D1_FILL_MODE { |
| D2D1_FILL_MODE_ALTERNATE = 0, |
| D2D1_FILL_MODE_WINDING = 1, |
| }} |
| STRUCT!{struct D2D1_ARC_SEGMENT { |
| point: D2D1_POINT_2F, |
| size: D2D1_SIZE_F, |
| rotationAngle: FLOAT, |
| sweepDirection: D2D1_SWEEP_DIRECTION, |
| arcSize: D2D1_ARC_SIZE, |
| }} |
| STRUCT!{struct D2D1_QUADRATIC_BEZIER_SEGMENT { |
| point1: D2D1_POINT_2F, |
| point2: D2D1_POINT_2F, |
| }} |
| STRUCT!{struct D2D1_ELLIPSE { |
| point: D2D1_POINT_2F, |
| radiusX: FLOAT, |
| radiusY: FLOAT, |
| }} |
| STRUCT!{struct D2D1_ROUNDED_RECT { |
| rect: D2D1_RECT_F, |
| radiusX: FLOAT, |
| radiusY: FLOAT, |
| }} |
| STRUCT!{struct D2D1_STROKE_STYLE_PROPERTIES { |
| startCap: D2D1_CAP_STYLE, |
| endCap: D2D1_CAP_STYLE, |
| dashCap: D2D1_CAP_STYLE, |
| lineJoin: D2D1_LINE_JOIN, |
| miterLimit: FLOAT, |
| dashStyle: D2D1_DASH_STYLE, |
| dashOffset: FLOAT, |
| }} |
| ENUM!{enum D2D1_LAYER_OPTIONS { |
| D2D1_LAYER_OPTIONS_NONE = 0x00000000, |
| D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE = 0x00000001, |
| }} |
| STRUCT!{struct D2D1_LAYER_PARAMETERS { |
| contentBounds: D2D1_RECT_F, |
| geometricMask: *mut ID2D1Geometry, |
| maskAntialiasMode: D2D1_ANTIALIAS_MODE, |
| maskTransform: D2D1_MATRIX_3X2_F, |
| opacity: FLOAT, |
| opacityBrush: *mut ID2D1Brush, |
| layerOptions: D2D1_LAYER_OPTIONS, |
| }} |
| ENUM!{enum D2D1_WINDOW_STATE { |
| D2D1_WINDOW_STATE_NONE = 0x0000000, |
| D2D1_WINDOW_STATE_OCCLUDED = 0x0000001, |
| }} |
| ENUM!{enum D2D1_RENDER_TARGET_TYPE { |
| D2D1_RENDER_TARGET_TYPE_DEFAULT = 0, |
| D2D1_RENDER_TARGET_TYPE_SOFTWARE = 1, |
| D2D1_RENDER_TARGET_TYPE_HARDWARE = 2, |
| }} |
| ENUM!{enum D2D1_FEATURE_LEVEL { |
| D2D1_FEATURE_LEVEL_DEFAULT = 0, |
| D2D1_FEATURE_LEVEL_9 = D3D_FEATURE_LEVEL_9_1, |
| D2D1_FEATURE_LEVEL_10 = D3D_FEATURE_LEVEL_10_0, |
| }} |
| ENUM!{enum D2D1_RENDER_TARGET_USAGE { |
| D2D1_RENDER_TARGET_USAGE_NONE = 0x00000000, |
| D2D1_RENDER_TARGET_USAGE_FORCE_BITMAP_REMOTING = 0x00000001, |
| D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE = 0x00000002, |
| }} |
| ENUM!{enum D2D1_PRESENT_OPTIONS { |
| D2D1_PRESENT_OPTIONS_NONE = 0x00000000, |
| D2D1_PRESENT_OPTIONS_RETAIN_CONTENTS = 0x00000001, |
| D2D1_PRESENT_OPTIONS_IMMEDIATELY = 0x00000002, |
| }} |
| STRUCT!{struct D2D1_RENDER_TARGET_PROPERTIES { |
| _type: D2D1_RENDER_TARGET_TYPE, |
| pixelFormat: D2D1_PIXEL_FORMAT, |
| dpiX: FLOAT, |
| dpiY: FLOAT, |
| usage: D2D1_RENDER_TARGET_USAGE, |
| minLevel: D2D1_FEATURE_LEVEL, |
| }} |
| STRUCT!{struct D2D1_HWND_RENDER_TARGET_PROPERTIES { |
| hwnd: HWND, |
| pixelSize: D2D1_SIZE_U, |
| presentOptions: D2D1_PRESENT_OPTIONS, |
| }} |
| ENUM!{enum D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS { |
| D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE = 0x00000000, |
| D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_GDI_COMPATIBLE = 0x00000001, |
| }} |
| STRUCT!{struct D2D1_DRAWING_STATE_DESCRIPTION { |
| antialiasMode: D2D1_ANTIALIAS_MODE, |
| textAntialiasMode: D2D1_TEXT_ANTIALIAS_MODE, |
| tag1: D2D1_TAG, |
| tag2: D2D1_TAG, |
| transform: D2D1_MATRIX_3X2_F, |
| }} |
| ENUM!{enum D2D1_DC_INITIALIZE_MODE { |
| D2D1_DC_INITIALIZE_MODE_COPY = 0, |
| D2D1_DC_INITIALIZE_MODE_CLEAR = 1, |
| }} |
| ENUM!{enum D2D1_DEBUG_LEVEL { |
| D2D1_DEBUG_LEVEL_NONE = 0, |
| D2D1_DEBUG_LEVEL_ERROR = 1, |
| D2D1_DEBUG_LEVEL_WARNING = 2, |
| D2D1_DEBUG_LEVEL_INFORMATION = 3, |
| }} |
| ENUM!{enum D2D1_FACTORY_TYPE { |
| D2D1_FACTORY_TYPE_SINGLE_THREADED = 0, |
| D2D1_FACTORY_TYPE_MULTI_THREADED = 1, |
| }} |
| STRUCT!{struct D2D1_FACTORY_OPTIONS { |
| debugLevel: D2D1_DEBUG_LEVEL, |
| }} |
| RIDL!{#[uuid(0x2cd90691, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1Resource(ID2D1ResourceVtbl): IUnknown(IUnknownVtbl) { |
| fn GetFactory( |
| factory: *mut *mut ID2D1Factory, |
| ) -> (), |
| }} |
| RIDL!{#[uuid(0x65019f75, 0x8da2, 0x497c, 0xb3, 0x2c, 0xdf, 0xa3, 0x4e, 0x48, 0xed, 0xe6)] |
| interface ID2D1Image(ID2D1ImageVtbl): ID2D1Resource(ID2D1ResourceVtbl) {}} |
| RIDL!{#[uuid(0xa2296057, 0xea42, 0x4099, 0x98, 0x3b, 0x53, 0x9f, 0xb6, 0x50, 0x54, 0x26)] |
| interface ID2D1Bitmap(ID2D1BitmapVtbl): ID2D1Image(ID2D1ImageVtbl) { |
| #[fixme] fn GetSize() -> D2D1_SIZE_F, |
| #[fixme] fn GetPixelSize() -> D2D1_SIZE_U, |
| #[fixme] fn GetPixelFormat() -> D2D1_PIXEL_FORMAT, |
| fn GetDpi( |
| dpiX: *mut FLOAT, |
| dpiY: *mut FLOAT, |
| ) -> (), |
| fn CopyFromBitmap( |
| destPoint: *const D2D1_POINT_2U, |
| bitmap: *mut ID2D1Bitmap, |
| srcRect: *const D2D1_RECT_U, |
| ) -> HRESULT, |
| fn CopyFromRenderTarget( |
| destPoint: *const D2D1_POINT_2U, |
| renderTarget: *mut ID2D1RenderTarget, |
| srcRect: *const D2D1_RECT_U, |
| ) -> HRESULT, |
| fn CopyFromMemory( |
| dstRect: *const D2D1_RECT_U, |
| srcData: *const c_void, |
| pitch: UINT32, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x2cd906a7, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1GradientStopCollection(ID2D1GradientStopCollectionVtbl): |
| ID2D1Resource(ID2D1ResourceVtbl) { |
| fn GetGradientStopCount() -> UINT32, |
| fn GetGradientStops( |
| gradientStops: *mut D2D1_GRADIENT_STOP, |
| gradientStopsCount: UINT32, |
| ) -> (), |
| fn GetColorInterpolationGamma() -> D2D1_GAMMA, |
| fn GetExtendMode() -> D2D1_EXTEND_MODE, |
| }} |
| RIDL!{#[uuid(0x2cd906a8, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1Brush(ID2D1BrushVtbl): ID2D1Resource(ID2D1ResourceVtbl) { |
| fn SetOpacity( |
| opacity: FLOAT, |
| ) -> (), |
| fn SetTransform( |
| transform: *const D2D1_MATRIX_3X2_F, |
| ) -> (), |
| fn GetOpacity() -> FLOAT, |
| fn GetTransform( |
| transform: *mut D2D1_MATRIX_3X2_F, |
| ) -> (), |
| }} |
| RIDL!{#[uuid(0x2cd906aa, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1BitmapBrush(ID2D1BitmapBrushVtbl): ID2D1Brush(ID2D1BrushVtbl) { |
| fn SetExtendModeX( |
| extendModeX: D2D1_EXTEND_MODE, |
| ) -> (), |
| fn SetExtendModeY( |
| extendModeY: D2D1_EXTEND_MODE, |
| ) -> (), |
| fn SetInterpolationMode( |
| interpolationMode: D2D1_BITMAP_INTERPOLATION_MODE, |
| ) -> (), |
| fn SetBitmap( |
| bitmap: *mut ID2D1Bitmap, |
| ) -> (), |
| fn GetExtendModeX() -> D2D1_EXTEND_MODE, |
| fn GetExtendModeY() -> D2D1_EXTEND_MODE, |
| fn GetInterpolationMode() -> D2D1_BITMAP_INTERPOLATION_MODE, |
| fn GetBitmap( |
| bitmap: *mut *mut ID2D1Bitmap, |
| ) -> (), |
| }} |
| RIDL!{#[uuid(0x2cd906a9, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1SolidColorBrush(ID2D1SolidColorBrushVtbl): ID2D1Brush(ID2D1BrushVtbl) { |
| fn SetColor( |
| color: *const D2D1_COLOR_F, |
| ) -> (), |
| #[fixme] fn GetColor() -> D2D1_COLOR_F, |
| }} |
| RIDL!{#[uuid(0x2cd906ab, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1LinearGradientBrush(ID2D1LinearGradientBrushVtbl): ID2D1Brush(ID2D1BrushVtbl) { |
| fn SetStartPoint( |
| startPoint: D2D1_POINT_2F, |
| ) -> (), |
| fn SetEndPoint( |
| endPoint: D2D1_POINT_2F, |
| ) -> (), |
| #[fixme] fn GetStartPoint() -> D2D1_POINT_2F, |
| #[fixme] fn GetEndPoint() -> D2D1_POINT_2F, |
| fn GetGradientStopCollection( |
| gradientStopCollection: *mut *mut ID2D1GradientStopCollection, |
| ) -> (), |
| }} |
| RIDL!{#[uuid(0x2cd906ac, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1RadialGradientBrush(ID2D1RadialGradientBrushVtbl): ID2D1Brush(ID2D1BrushVtbl) { |
| fn SetCenter( |
| center: D2D1_POINT_2F, |
| ) -> (), |
| fn SetGradientOriginOffset( |
| gradientOriginOffset: D2D1_POINT_2F, |
| ) -> (), |
| fn SetRadiusX( |
| radiusX: FLOAT, |
| ) -> (), |
| fn SetRadiusY( |
| radiusY: FLOAT, |
| ) -> (), |
| #[fixme] fn GetCenter() -> D2D1_POINT_2F, |
| #[fixme] fn GetGradientOriginOffset() -> D2D1_POINT_2F, |
| fn GetRadiusX() -> FLOAT, |
| fn GetRadiusY() -> FLOAT, |
| fn GetGradientStopCollection( |
| gradientStopCollection: *mut *mut ID2D1GradientStopCollection, |
| ) -> (), |
| }} |
| RIDL!{#[uuid(0x2cd9069d, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1StrokeStyle(ID2D1StrokeStyleVtbl): ID2D1Resource(ID2D1ResourceVtbl) { |
| fn GetStartCap() -> D2D1_CAP_STYLE, |
| fn GetEndCap() -> D2D1_CAP_STYLE, |
| fn GetDashCap() -> D2D1_CAP_STYLE, |
| fn GetMiterLimit() -> FLOAT, |
| fn GetLineJoin() -> D2D1_LINE_JOIN, |
| fn GetDashOffset() -> FLOAT, |
| fn GetDashStyle() -> D2D1_DASH_STYLE, |
| fn GetDashesCount() -> UINT32, |
| fn GetDashes( |
| dashes: *mut FLOAT, |
| dashesCount: UINT32, |
| ) -> (), |
| }} |
| RIDL!{#[uuid(0x2cd906a1, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1Geometry(ID2D1GeometryVtbl): ID2D1Resource(ID2D1ResourceVtbl) { |
| fn GetBounds( |
| worldTransform: *const D2D1_MATRIX_3X2_F, |
| bounds: *mut D2D1_RECT_F, |
| ) -> HRESULT, |
| fn GetWidenedBounds( |
| strokeWidth: FLOAT, |
| strokeStyle: *mut ID2D1StrokeStyle, |
| worldTransform: *const D2D1_MATRIX_3X2_F, |
| flatteningTolerance: FLOAT, |
| bounds: *mut D2D1_RECT_F, |
| ) -> HRESULT, |
| fn StrokeContainsPoint( |
| point: D2D1_POINT_2F, |
| strokeWidth: FLOAT, |
| strokeStyle: *mut ID2D1StrokeStyle, |
| worldTransform: *const D2D1_MATRIX_3X2_F, |
| flatteningTolerance: FLOAT, |
| contains: *mut BOOL, |
| ) -> HRESULT, |
| fn FillContainsPoint( |
| point: D2D1_POINT_2F, |
| worldTransform: *const D2D1_MATRIX_3X2_F, |
| flatteningTolerance: FLOAT, |
| contains: *mut BOOL, |
| ) -> HRESULT, |
| fn CompareWithGeometry( |
| inputGeometry: *mut ID2D1Geometry, |
| inputGeometryTransform: *const D2D1_MATRIX_3X2_F, |
| flatteningTolerance: FLOAT, |
| relation: *mut D2D1_GEOMETRY_RELATION, |
| ) -> HRESULT, |
| fn Simplify( |
| simplificationOption: D2D1_GEOMETRY_SIMPLIFICATION_OPTION, |
| worldTransform: *const D2D1_MATRIX_3X2_F, |
| flatteningTolerance: FLOAT, |
| geometrySink: *mut ID2D1SimplifiedGeometrySink, |
| ) -> HRESULT, |
| fn Tessellate( |
| worldTransform: *const D2D1_MATRIX_3X2_F, |
| flatteningTolerance: FLOAT, |
| tessellationSink: *mut ID2D1TessellationSink, |
| ) -> HRESULT, |
| fn CombineWithGeometry( |
| inputGeometry: *mut ID2D1Geometry, |
| combineMode: D2D1_COMBINE_MODE, |
| inputGeometryTransform: *const D2D1_MATRIX_3X2_F, |
| flatteningTolerance: FLOAT, |
| geometrySink: *mut ID2D1SimplifiedGeometrySink, |
| ) -> HRESULT, |
| fn Outline( |
| worldTransform: *const D2D1_MATRIX_3X2_F, |
| flatteningTolerance: FLOAT, |
| geometrySink: *mut ID2D1SimplifiedGeometrySink, |
| ) -> HRESULT, |
| fn ComputeArea( |
| worldTransform: *const D2D1_MATRIX_3X2_F, |
| flatteningTolerance: FLOAT, |
| area: *mut FLOAT, |
| ) -> HRESULT, |
| fn ComputeLength( |
| worldTransform: *const D2D1_MATRIX_3X2_F, |
| flatteningTolerance: FLOAT, |
| length: *mut FLOAT, |
| ) -> HRESULT, |
| fn ComputePointAtLength( |
| length: FLOAT, |
| worldTransform: *const D2D1_MATRIX_3X2_F, |
| flatteningTolerance: FLOAT, |
| point: *mut D2D1_POINT_2F, |
| unitTangentVector: *mut D2D1_POINT_2F, |
| ) -> HRESULT, |
| fn Widen( |
| strokeWidth: FLOAT, |
| strokeStyle: *mut ID2D1StrokeStyle, |
| worldTransform: *const D2D1_MATRIX_3X2_F, |
| flatteningTolerance: FLOAT, |
| geometrySink: *mut ID2D1SimplifiedGeometrySink, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x2cd906a2, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1RectangleGeometry(ID2D1RectangleGeometryVtbl): ID2D1Geometry(ID2D1GeometryVtbl) { |
| fn GetRect( |
| rect: *mut D2D1_RECT_F, |
| ) -> (), |
| }} |
| RIDL!{#[uuid(0x2cd906a3, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1RoundedRectangleGeometry(ID2D1RoundedRectangleGeometryVtbl): |
| ID2D1Geometry(ID2D1GeometryVtbl) { |
| fn GetRoundedRect( |
| roundedRect: *mut D2D1_ROUNDED_RECT, |
| ) -> (), |
| }} |
| RIDL!{#[uuid(0x2cd906a4, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1EllipseGeometry(ID2D1EllipseGeometryVtbl): ID2D1Geometry(ID2D1GeometryVtbl) { |
| fn GetEllipse( |
| ellipse: *mut D2D1_ELLIPSE, |
| ) -> (), |
| }} |
| RIDL!{#[uuid(0x2cd906a6, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1GeometryGroup(ID2D1GeometryGroupVtbl): ID2D1Geometry(ID2D1GeometryVtbl) { |
| fn GetFillMode() -> D2D1_FILL_MODE, |
| fn GetSourceGeometryCount() -> UINT32, |
| fn GetSourceGeometries( |
| geometries: *mut *mut ID2D1Geometry, |
| geometriesCount: UINT32, |
| ) -> (), |
| }} |
| RIDL!{#[uuid(0x2cd906bb, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1TransformedGeometry(ID2D1TransformedGeometryVtbl): |
| ID2D1Geometry(ID2D1GeometryVtbl) { |
| fn GetSourceGeometry( |
| sourceGeometry: *mut *mut ID2D1Geometry, |
| ) -> (), |
| fn GetTransform( |
| transform: *mut D2D1_MATRIX_3X2_F, |
| ) -> (), |
| }} |
| RIDL!{#[uuid(0x2cd9069e, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1SimplifiedGeometrySink(ID2D1SimplifiedGeometrySinkVtbl): IUnknown(IUnknownVtbl) { |
| fn SetFillMode( |
| fillMode: D2D1_FILL_MODE, |
| ) -> (), |
| fn SetSegmentFlags( |
| vertexFlags: D2D1_PATH_SEGMENT, |
| ) -> (), |
| fn BeginFigure( |
| startPoint: D2D1_POINT_2F, |
| figureBegin: D2D1_FIGURE_BEGIN, |
| ) -> (), |
| fn AddLines( |
| points: *const D2D1_POINT_2F, |
| pointsCount: UINT32, |
| ) -> (), |
| fn AddBeziers( |
| beziers: *const D2D1_BEZIER_SEGMENT, |
| beziersCount: UINT32, |
| ) -> (), |
| fn EndFigure( |
| figureEnd: D2D1_FIGURE_END, |
| ) -> (), |
| fn Close() -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x2cd9069f, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1GeometrySink(ID2D1GeometrySinkVtbl): |
| ID2D1SimplifiedGeometrySink(ID2D1SimplifiedGeometrySinkVtbl) { |
| fn AddLine( |
| point: D2D1_POINT_2F, |
| ) -> (), |
| fn AddBezier( |
| bezier: *const D2D1_BEZIER_SEGMENT, |
| ) -> (), |
| fn AddQuadraticBezier( |
| bezier: *const D2D1_QUADRATIC_BEZIER_SEGMENT, |
| ) -> (), |
| fn AddQuadraticBeziers( |
| beziers: *const D2D1_QUADRATIC_BEZIER_SEGMENT, |
| beziersCount: UINT32, |
| ) -> (), |
| fn AddArc( |
| arc: *const D2D1_ARC_SEGMENT, |
| ) -> (), |
| }} |
| RIDL!{#[uuid(0x2cd906c1, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1TessellationSink(ID2D1TessellationSinkVtbl): IUnknown(IUnknownVtbl) { |
| fn AddTriangles( |
| triangles: *const D2D1_TRIANGLE, |
| triangleCount: UINT32, |
| ) -> (), |
| fn Close() -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x2cd906a5, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1PathGeometry(ID2D1PathGeometryVtbl): ID2D1Geometry(ID2D1GeometryVtbl) { |
| fn Open( |
| geometrySink: *mut *mut ID2D1GeometrySink, |
| ) -> HRESULT, |
| fn Stream( |
| geometrySink: *mut ID2D1GeometrySink, |
| ) -> HRESULT, |
| fn GetSegmentCount( |
| count: *mut UINT32, |
| ) -> HRESULT, |
| fn GetFigureCount( |
| count: *mut UINT32, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x2cd906c2, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1Mesh(ID2D1MeshVtbl): ID2D1Resource(ID2D1ResourceVtbl) { |
| fn Open( |
| tessellationSink: *mut *mut ID2D1TessellationSink, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x2cd9069b, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1Layer(ID2D1LayerVtbl): ID2D1Resource(ID2D1ResourceVtbl) { |
| #[fixme] fn GetSize() -> D2D1_SIZE_F, |
| }} |
| RIDL!{#[uuid(0x28506e39, 0xebf6, 0x46a1, 0xbb, 0x47, 0xfd, 0x85, 0x56, 0x5a, 0xb9, 0x57)] |
| interface ID2D1DrawingStateBlock(ID2D1DrawingStateBlockVtbl): ID2D1Resource(ID2D1ResourceVtbl) { |
| fn GetDescription( |
| stateDescription: *mut D2D1_DRAWING_STATE_DESCRIPTION, |
| ) -> (), |
| fn SetDescription( |
| stateDescription: *const D2D1_DRAWING_STATE_DESCRIPTION, |
| ) -> (), |
| fn SetTextRenderingParams( |
| textRenderingParams: *mut IDWriteRenderingParams, |
| ) -> (), |
| fn GetTextRenderingParams( |
| textRenderingParams: *mut *mut IDWriteRenderingParams, |
| ) -> (), |
| }} |
| RIDL!{#[uuid(0x2cd90694, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1RenderTarget(ID2D1RenderTargetVtbl): ID2D1Resource(ID2D1ResourceVtbl) { |
| fn CreateBitmap( |
| size: D2D1_SIZE_U, |
| srcData: *const c_void, |
| pitch: UINT32, |
| bitmapProperties: *const D2D1_BITMAP_PROPERTIES, |
| bitmap: *mut *mut ID2D1Bitmap, |
| ) -> HRESULT, |
| fn CreateBitmapFromWicBitmap( |
| wicBitmapSource: *mut IWICBitmapSource, |
| bitmapProperties: *const D2D1_BITMAP_PROPERTIES, |
| bitmap: *mut *mut ID2D1Bitmap, |
| ) -> HRESULT, |
| fn CreateSharedBitmap( |
| riid: REFIID, |
| data: *const c_void, |
| bitmapProperties: *const D2D1_BITMAP_PROPERTIES, |
| bitmap: *mut *mut ID2D1Bitmap, |
| ) -> HRESULT, |
| fn CreateBitmapBrush( |
| bitmap: *mut ID2D1Bitmap, |
| bitmapBrushProperties: *const D2D1_BITMAP_BRUSH_PROPERTIES, |
| brushProperties: *const D2D1_BRUSH_PROPERTIES, |
| bitmapBrush: *mut *mut ID2D1BitmapBrush, |
| ) -> HRESULT, |
| fn CreateSolidColorBrush( |
| color: *const D2D1_COLOR_F, |
| brushProperties: *const D2D1_BRUSH_PROPERTIES, |
| solidColorBrush: *mut *mut ID2D1SolidColorBrush, |
| ) -> HRESULT, |
| fn CreateGradientStopCollection( |
| gradientStops: *const D2D1_GRADIENT_STOP, |
| gradientStopsCount: UINT32, |
| colorInterpolationGamma: D2D1_GAMMA, |
| extendMode: D2D1_EXTEND_MODE, |
| gradientStopCollection: *mut *mut ID2D1GradientStopCollection, |
| ) -> HRESULT, |
| fn CreateLinearGradientBrush( |
| linearGradientBrushProperties: *const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES, |
| brushProperties: *const D2D1_BRUSH_PROPERTIES, |
| gradientStopCollection: *mut ID2D1GradientStopCollection, |
| linearGradientBrush: *mut *mut ID2D1LinearGradientBrush, |
| ) -> HRESULT, |
| fn CreateRadialGradientBrush( |
| radialGradientBrushProperties: *const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES, |
| brushProperties: *const D2D1_BRUSH_PROPERTIES, |
| gradientStopCollection: *mut ID2D1GradientStopCollection, |
| radialGradientBrush: *mut *mut ID2D1RadialGradientBrush, |
| ) -> HRESULT, |
| fn CreateCompatibleRenderTarget( |
| desiredSize: *const D2D1_SIZE_F, |
| desiredPixelSize: *const D2D1_SIZE_U, |
| desiredFormat: *const D2D1_PIXEL_FORMAT, |
| options: D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS, |
| bitmapRenderTarget: *mut *mut ID2D1BitmapRenderTarget, |
| ) -> HRESULT, |
| fn CreateLayer( |
| size: *const D2D1_SIZE_F, |
| layer: *mut *mut ID2D1Layer, |
| ) -> HRESULT, |
| fn CreateMesh( |
| mesh: *mut *mut ID2D1Mesh, |
| ) -> HRESULT, |
| fn DrawLine( |
| point0: D2D1_POINT_2F, |
| point1: D2D1_POINT_2F, |
| brush: *mut ID2D1Brush, |
| strokeWidth: FLOAT, |
| strokeStype: *mut ID2D1StrokeStyle, |
| ) -> (), |
| fn DrawRectangle( |
| rect: *const D2D1_RECT_F, |
| brush: *mut ID2D1Brush, |
| strokeWidth: FLOAT, |
| strokeStyle: *mut ID2D1StrokeStyle, |
| ) -> (), |
| fn FillRectangle( |
| rect: *const D2D1_RECT_F, |
| brush: *mut ID2D1Brush, |
| ) -> (), |
| fn DrawRoundedRectangle( |
| roundedRect: *const D2D1_ROUNDED_RECT, |
| brush: *mut ID2D1Brush, |
| strokeWidth: FLOAT, |
| strokeStyle: *mut ID2D1StrokeStyle, |
| ) -> (), |
| fn FillRoundedRectangle( |
| roundedRect: *const D2D1_ROUNDED_RECT, |
| brush: *mut ID2D1Brush, |
| ) -> (), |
| fn DrawEllipse( |
| ellipse: *const D2D1_ELLIPSE, |
| brush: *mut ID2D1Brush, |
| strokeWidth: FLOAT, |
| strokeStyle: *mut ID2D1StrokeStyle, |
| ) -> (), |
| fn FillEllipse( |
| ellipse: *const D2D1_ELLIPSE, |
| brush: *mut ID2D1Brush, |
| ) -> (), |
| fn DrawGeometry( |
| geometry: *mut ID2D1Geometry, |
| brush: *mut ID2D1Brush, |
| strokeWidth: FLOAT, |
| strokeStyle: *mut ID2D1StrokeStyle, |
| ) -> (), |
| fn FillGeometry( |
| geometry: *mut ID2D1Geometry, |
| brush: *mut ID2D1Brush, |
| opacityBrush: *mut ID2D1Brush, |
| ) -> (), |
| fn FillMesh( |
| mesh: *mut ID2D1Mesh, |
| brush: *const ID2D1Brush, |
| ) -> (), |
| fn FillOpacityMask( |
| opacityMask: *mut ID2D1Bitmap, |
| brush: *mut ID2D1Brush, |
| content: D2D1_OPACITY_MASK_CONTENT, |
| destinationRectangle: *const D2D1_RECT_F, |
| sourceRectangle: *const D2D1_RECT_F, |
| ) -> (), |
| fn DrawBitmap( |
| bitmap: *mut ID2D1Bitmap, |
| destinationRectangle: *const D2D1_RECT_F, |
| opacity: FLOAT, |
| interpolationMode: D2D1_BITMAP_INTERPOLATION_MODE, |
| sourceRectangle: *const D2D1_RECT_F, |
| ) -> (), |
| fn DrawText( |
| string: *const WCHAR, |
| stringLength: UINT32, |
| textFormat: *mut IDWriteTextFormat, |
| layoutRect: *const D2D1_RECT_F, |
| defaultForegroundBrush: *mut ID2D1Brush, |
| options: D2D1_DRAW_TEXT_OPTIONS, |
| measuringMode: DWRITE_MEASURING_MODE, |
| ) -> (), |
| fn DrawTextLayout( |
| origin: D2D1_POINT_2F, |
| textLayout: *mut IDWriteTextLayout, |
| defaultForegroundBrush: *mut ID2D1Brush, |
| options: D2D1_DRAW_TEXT_OPTIONS, |
| ) -> (), |
| fn DrawGlyphRun( |
| baselineOrigin: D2D1_POINT_2F, |
| glyphRun: *const DWRITE_GLYPH_RUN, |
| foregroundBrush: *mut ID2D1Brush, |
| measuringMode: DWRITE_MEASURING_MODE, |
| ) -> (), |
| fn SetTransform( |
| transform: *const D2D1_MATRIX_3X2_F, |
| ) -> (), |
| fn GetTransform( |
| transform: *mut D2D1_MATRIX_3X2_F, |
| ) -> (), |
| fn SetAntialiasMode( |
| antialiasMode: D2D1_ANTIALIAS_MODE, |
| ) -> (), |
| fn GetAntialiasMode() -> D2D1_ANTIALIAS_MODE, |
| fn SetTextAntialiasMode( |
| textAntialiasMode: D2D1_TEXT_ANTIALIAS_MODE, |
| ) -> (), |
| fn GetTextAntialiasMode() -> D2D1_TEXT_ANTIALIAS_MODE, |
| fn SetTextRenderingParams( |
| textRenderingParams: *mut IDWriteRenderingParams, |
| ) -> (), |
| fn GetTextRenderingParams( |
| textRenderingParams: *mut *mut IDWriteRenderingParams, |
| ) -> (), |
| fn SetTags( |
| tag1: D2D1_TAG, |
| tag2: D2D1_TAG, |
| ) -> (), |
| fn GetTags( |
| tag1: *mut D2D1_TAG, |
| tag2: *mut D2D1_TAG, |
| ) -> (), |
| fn PushLayer( |
| layerParameters: *const D2D1_LAYER_PARAMETERS, |
| layer: *mut ID2D1Layer, |
| ) -> (), |
| fn PopLayer() -> (), |
| fn Flush( |
| tag1: *mut D2D1_TAG, |
| tag2: *mut D2D1_TAG, |
| ) -> HRESULT, |
| fn SaveDrawingState( |
| drawingStateBlock: *mut ID2D1DrawingStateBlock, |
| ) -> (), |
| fn RestoreDrawingState( |
| drawingStateBlock: *mut ID2D1DrawingStateBlock, |
| ) -> (), |
| fn PushAxisAlignedClip( |
| clipRect: *const D2D1_RECT_F, |
| antialiasMode: D2D1_ANTIALIAS_MODE, |
| ) -> (), |
| fn PopAxisAlignedClip() -> (), |
| fn Clear( |
| clearColor: *const D2D1_COLOR_F, |
| ) -> (), |
| fn BeginDraw() -> (), |
| fn EndDraw( |
| tag1: *mut D2D1_TAG, |
| tag2: *mut D2D1_TAG, |
| ) -> HRESULT, |
| #[fixme] fn GetPixelFormat() -> D2D1_PIXEL_FORMAT, |
| fn SetDpi( |
| dpiX: FLOAT, |
| dpiY: FLOAT, |
| ) -> (), |
| fn GetDpi( |
| dpiX: *mut FLOAT, |
| dpiY: *mut FLOAT, |
| ) -> (), |
| #[fixme] fn GetSize() -> D2D1_SIZE_F, |
| #[fixme] fn GetPixelSize() -> D2D1_SIZE_U, |
| fn GetMaximumBitmapSize() -> UINT32, |
| fn IsSupported( |
| renderTargetProperties: *const D2D1_RENDER_TARGET_PROPERTIES, |
| ) -> BOOL, |
| }} |
| RIDL!{#[uuid(0x2cd90695, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1BitmapRenderTarget(ID2D1BitmapRenderTargetVtbl): |
| ID2D1RenderTarget(ID2D1RenderTargetVtbl) { |
| fn GetBitmap( |
| bitmap: *mut *mut ID2D1Bitmap, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x2cd90698, 0x12e2, 0x11dc, 0x9f, 0xed, 0x00, 0x11, 0x43, 0xa0, 0x55, 0xf9)] |
| interface ID2D1HwndRenderTarget(ID2D1HwndRenderTargetVtbl): |
| ID2D1RenderTarget(ID2D1RenderTargetVtbl) { |
| fn CheckWindowState() -> D2D1_WINDOW_STATE, |
| fn Resize( |
| pixelSize: *const D2D1_SIZE_U, |
| ) -> HRESULT, |
| fn GetHwnd() -> HWND, |
| }} |
| RIDL!{#[uuid(0xe0db51c3, 0x6f77, 0x4bae, 0xb3, 0xd5, 0xe4, 0x75, 0x09, 0xb3, 0x58, 0x38)] |
| interface ID2D1GdiInteropRenderTarget(ID2D1GdiInteropRenderTargetVtbl): IUnknown(IUnknownVtbl) { |
| fn GetDC( |
| mode: D2D1_DC_INITIALIZE_MODE, |
| hdc: *mut HDC, |
| ) -> HRESULT, |
| fn ReleaseDC( |
| update: *const RECT, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x1c51bc64, 0xde61, 0x46fd, 0x98, 0x99, 0x63, 0xa5, 0xd8, 0xf0, 0x39, 0x50)] |
| interface ID2D1DCRenderTarget(ID2D1DCRenderTargetVtbl): ID2D1RenderTarget(ID2D1RenderTargetVtbl) { |
| fn BindDC( |
| hDC: HDC, |
| pSubRect: *const RECT, |
| ) -> HRESULT, |
| }} |
| RIDL!{#[uuid(0x06152247, 0x6f50, 0x465a, 0x92, 0x45, 0x11, 0x8b, 0xfd, 0x3b, 0x60, 0x07)] |
| interface ID2D1Factory(ID2D1FactoryVtbl): IUnknown(IUnknownVtbl) { |
| fn ReloadSystemMetrics() -> HRESULT, |
| fn GetDesktopDpi( |
| dpiX: *mut FLOAT, |
| dpiY: *mut FLOAT, |
| ) -> (), |
| fn CreateRectangleGeometry( |
| rectangle: *const D2D1_RECT_F, |
| rectangleGeometry: *mut *mut ID2D1RectangleGeometry, |
| ) -> HRESULT, |
| fn CreateRoundedRectangleGeometry( |
| roundedRectangle: *const D2D1_ROUNDED_RECT, |
| roundedRectangleGeometry: *mut *mut ID2D1RoundedRectangleGeometry, |
| ) -> HRESULT, |
| fn CreateEllipseGeometry( |
| ellipse: *const D2D1_ELLIPSE, |
| ellipseGeometry: *mut *mut ID2D1EllipseGeometry, |
| ) -> HRESULT, |
| fn CreateGeometryGroup( |
| fillMode: D2D1_FILL_MODE, |
| geometries: *mut *mut ID2D1Geometry, |
| geometriesCount: UINT32, |
| geometryGroup: *mut *mut ID2D1GeometryGroup, |
| ) -> HRESULT, |
| fn CreateTransformedGeometry( |
| sourceGeometry: *mut ID2D1Geometry, |
| transform: *const D2D1_MATRIX_3X2_F, |
| transformedGeometry: *mut *mut ID2D1TransformedGeometry, |
| ) -> HRESULT, |
| fn CreatePathGeometry( |
| pathGeometry: *mut *mut ID2D1PathGeometry, |
| ) -> HRESULT, |
| fn CreateStrokeStyle( |
| strokeStyleProperties: *const D2D1_STROKE_STYLE_PROPERTIES, |
| dashes: *const FLOAT, |
| dashesCount: UINT32, |
| strokeStyle: *mut *mut ID2D1StrokeStyle, |
| ) -> HRESULT, |
| fn CreateDrawingStateBlock( |
| drawingStateDescription: *const D2D1_DRAWING_STATE_DESCRIPTION, |
| textRenderingParams: *mut IDWriteRenderingParams, |
| drawingStateBlock: *mut *mut ID2D1DrawingStateBlock, |
| ) -> HRESULT, |
| fn CreateWicBitmapRenderTarget( |
| target: *mut IWICBitmap, |
| renderTargetProperties: *const D2D1_RENDER_TARGET_PROPERTIES, |
| renderTarget: *mut *mut ID2D1RenderTarget, |
| ) -> HRESULT, |
| fn CreateHwndRenderTarget( |
| renderTargetProperties: *const D2D1_RENDER_TARGET_PROPERTIES, |
| hwndRenderTargetProperties: *const D2D1_HWND_RENDER_TARGET_PROPERTIES, |
| hwndRenderTarget: *mut *mut ID2D1HwndRenderTarget, |
| ) -> HRESULT, |
| fn CreateDxgiSurfaceRenderTarget( |
| dxgiSurface: *mut IDXGISurface, |
| renderTargetProperties: *const D2D1_RENDER_TARGET_PROPERTIES, |
| renderTarget: *mut *mut ID2D1RenderTarget, |
| ) -> HRESULT, |
| fn CreateDCRenderTarget( |
| renderTargetProperties: *const D2D1_RENDER_TARGET_PROPERTIES, |
| dcRenderTarget: *mut *mut ID2D1DCRenderTarget, |
| ) -> HRESULT, |
| }} |
| extern "system" { |
| pub fn D2D1CreateFactory( |
| factoryType: D2D1_FACTORY_TYPE, |
| riid: REFIID, |
| pFactoryOptions: *const D2D1_FACTORY_OPTIONS, |
| ppIFactory: *mut *mut c_void, |
| ) -> HRESULT; |
| pub fn D2D1MakeRotateMatrix( |
| angle: FLOAT, |
| center: D2D1_POINT_2F, |
| matrix: *mut D2D1_MATRIX_3X2_F, |
| ); |
| pub fn D2D1MakeSkewMatrix( |
| angleX: FLOAT, |
| angleY: FLOAT, |
| center: D2D1_POINT_2F, |
| matrix: *mut D2D1_MATRIX_3X2_F, |
| ); |
| pub fn D2D1IsMatrixInvertible( |
| matrix: *const D2D1_MATRIX_3X2_F, |
| ) -> BOOL; |
| pub fn D2D1InvertMatrix( |
| matrix: *mut D2D1_MATRIX_3X2_F, |
| ) -> BOOL; |
| pub fn D2D1ComputeMaximumScaleFactor( |
| matrix: *const D2D1_MATRIX_3X2_F, |
| ) -> FLOAT; |
| } |