ifndef _D2D1_3_H_
define _D2D1_3_H_
ifndef _D2D1_2_H_
include d2d1_2.inc
endif
ifndef _D2D1_EFFECTS_2_
include d2d1effects_2.inc
endif
ifndef _D2D1_SVG_
include d2d1svg.inc
endif


.enum D2D1_INK_NIB_SHAPE {
    D2D1_INK_NIB_SHAPE_ROUND = 0,
    D2D1_INK_NIB_SHAPE_SQUARE = 1,
    D2D1_INK_NIB_SHAPE_FORCE_DWORD = 0xffffffff
    }


.enum D2D1_ORIENTATION {
    D2D1_ORIENTATION_DEFAULT = 1,
    D2D1_ORIENTATION_FLIP_HORIZONTAL = 2,
    D2D1_ORIENTATION_ROTATE_CLOCKWISE180 = 3,
    D2D1_ORIENTATION_ROTATE_CLOCKWISE180_FLIP_HORIZONTAL = 4,
    D2D1_ORIENTATION_ROTATE_CLOCKWISE90_FLIP_HORIZONTAL = 5,
    D2D1_ORIENTATION_ROTATE_CLOCKWISE270 = 6,
    D2D1_ORIENTATION_ROTATE_CLOCKWISE270_FLIP_HORIZONTAL = 7,
    D2D1_ORIENTATION_ROTATE_CLOCKWISE90 = 8,
    D2D1_ORIENTATION_FORCE_DWORD = 0xffffffff
    }


.enum D2D1_IMAGE_SOURCE_LOADING_OPTIONS {
    D2D1_IMAGE_SOURCE_LOADING_OPTIONS_NONE = 0,
    D2D1_IMAGE_SOURCE_LOADING_OPTIONS_RELEASE_SOURCE = 1,
    D2D1_IMAGE_SOURCE_LOADING_OPTIONS_CACHE_ON_DEMAND = 2,
    D2D1_IMAGE_SOURCE_LOADING_OPTIONS_FORCE_DWORD = 0xffffffff
    }


.enum D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS {
    D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_NONE = 0,
    D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_LOW_QUALITY_PRIMARY_CONVERSION = 1,
    D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_FORCE_DWORD = 0xffffffff
    }


.enum D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS {
    D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_NONE = 0,
    D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_DISABLE_DPI_SCALE = 1,
    D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_FORCE_DWORD = 0xffffffff
    }


D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES STRUC
orientation		D2D1_ORIENTATION ?
scaleX			FLOAT ?
scaleY			FLOAT ?
interpolationMode	D2D1_INTERPOLATION_MODE ?
options			D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS ?
D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES ENDS


D2D1_INK_POINT		STRUC
x			FLOAT ?
y			FLOAT ?
radius			FLOAT ?
D2D1_INK_POINT		ENDS


D2D1_INK_BEZIER_SEGMENT STRUC
point1			D2D1_INK_POINT <>
point2			D2D1_INK_POINT <>
point3			D2D1_INK_POINT <>
D2D1_INK_BEZIER_SEGMENT ENDS


D2D1_INK_STYLE_PROPERTIES STRUC
nibShape		D2D1_INK_NIB_SHAPE ?
nibTransform		D2D1_MATRIX_3X2_F <>
D2D1_INK_STYLE_PROPERTIES ENDS


.enum D2D1_PATCH_EDGE_MODE {
    D2D1_PATCH_EDGE_MODE_ALIASED = 0,
    D2D1_PATCH_EDGE_MODE_ANTIALIASED = 1,
    D2D1_PATCH_EDGE_MODE_ALIASED_INFLATED = 2,
    D2D1_PATCH_EDGE_MODE_FORCE_DWORD = 0xffffffff
    }


D2D1_GRADIENT_MESH_PATCH STRUC
point00			D2D1_POINT_2F <>
point01			D2D1_POINT_2F <>
point02			D2D1_POINT_2F <>
point03			D2D1_POINT_2F <>
point10			D2D1_POINT_2F <>
point11			D2D1_POINT_2F <>
point12			D2D1_POINT_2F <>
point13			D2D1_POINT_2F <>
point20			D2D1_POINT_2F <>
point21			D2D1_POINT_2F <>
point22			D2D1_POINT_2F <>
point23			D2D1_POINT_2F <>
point30			D2D1_POINT_2F <>
point31			D2D1_POINT_2F <>
point32			D2D1_POINT_2F <>
point33			D2D1_POINT_2F <>
color00			D2D1_COLOR_F <>
color03			D2D1_COLOR_F <>
color30			D2D1_COLOR_F <>
color33			D2D1_COLOR_F <>
topEdgeMode		D2D1_PATCH_EDGE_MODE ?
leftEdgeMode		D2D1_PATCH_EDGE_MODE ?
bottomEdgeMode		D2D1_PATCH_EDGE_MODE ?
rightEdgeMode		D2D1_PATCH_EDGE_MODE ?
D2D1_GRADIENT_MESH_PATCH ENDS

.enum D2D1_SPRITE_OPTIONS {
    D2D1_SPRITE_OPTIONS_NONE = 0,
    D2D1_SPRITE_OPTIONS_CLAMP_TO_SOURCE_RECTANGLE = 1,
    D2D1_SPRITE_OPTIONS_FORCE_DWORD = 0xffffffff
    }


.enum D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION {
    D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION_DEFAULT = 0,
    D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION_DISABLE = 1,
    D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION_FORCE_DWORD = 0xffffffff
    }


.enum D2D1_GAMMA1 {
    D2D1_GAMMA1_G22 = D2D1_GAMMA_2_2,
    D2D1_GAMMA1_G10 = D2D1_GAMMA_1_0,
    D2D1_GAMMA1_G2084 = 2,
    D2D1_GAMMA1_FORCE_DWORD = 0xffffffff
    }


D2D1_SIMPLE_COLOR_PROFILE STRUC
redPrimary		D2D1_POINT_2F <>
greenPrimary		D2D1_POINT_2F <>
bluePrimary		D2D1_POINT_2F <>
whitePointXZ		D2D1_POINT_2F <>
gamma			D2D1_GAMMA1 ?
D2D1_SIMPLE_COLOR_PROFILE ENDS


.enum D2D1_COLOR_CONTEXT_TYPE {
    D2D1_COLOR_CONTEXT_TYPE_ICC = 0,
    D2D1_COLOR_CONTEXT_TYPE_SIMPLE = 1,
    D2D1_COLOR_CONTEXT_TYPE_DXGI = 2,
    D2D1_COLOR_CONTEXT_TYPE_FORCE_DWORD = 0xffffffff
    }


externdef		IID_ID2D1InkStyle:IID
externdef		IID_ID2D1Ink:IID
externdef		IID_ID2D1GradientMesh:IID
externdef		IID_ID2D1ImageSource:IID
externdef		IID_ID2D1ImageSourceFromWic:IID
externdef		IID_ID2D1TransformedImageSource:IID
externdef		IID_ID2D1LookupTable3D:IID
externdef		IID_ID2D1DeviceContext2:IID
externdef		IID_ID2D1Device2:IID
externdef		IID_ID2D1Factory3:IID
externdef		IID_ID2D1CommandSink2:IID
externdef		IID_ID2D1GdiMetafile1:IID
externdef		IID_ID2D1GdiMetafileSink1:IID
externdef		IID_ID2D1SpriteBatch:IID
externdef		IID_ID2D1DeviceContext3:IID
externdef		IID_ID2D1Device3:IID
externdef		IID_ID2D1Factory4:IID
externdef		IID_ID2D1CommandSink3:IID
externdef		IID_ID2D1SvgGlyphStyle:IID
externdef		IID_ID2D1DeviceContext4:IID
externdef		IID_ID2D1Device4:IID
externdef		IID_ID2D1Factory5:IID
externdef		IID_ID2D1CommandSink4:IID
externdef		IID_ID2D1ColorContext1:IID
externdef		IID_ID2D1DeviceContext5:IID
externdef		IID_ID2D1Device5:IID
externdef		IID_ID2D1Factory6:IID
externdef		IID_ID2D1CommandSink5:IID
externdef		IID_ID2D1DeviceContext6:IID
externdef		IID_ID2D1Device6:IID
externdef		IID_ID2D1Factory7:IID

include d2d1_3helper.inc
endif
