19#ifndef __WINE_D2D1_PRIVATE_H
20#define __WINE_D2D1_PRIVATE_H
32#include "d2d1effectauthor.h"
80 ID3D11InputLayout *
il;
81 ID3D11VertexShader *
vs;
202 ID3D11PixelShader *
ps;
207 ID3D11RasterizerState *
rs;
208 ID3D11BlendState *
bs;
228 void **render_target);
312 ID3D11ShaderResourceView *
view;
383 unsigned int brush_idx);
429 ID3D11ShaderResourceView *
srv;
430 ID3D11RenderTargetView *
rtv;
719 bool allow_get_dxgi_device);
899 size_t new_capacity, max_capacity;
906 if (
count > max_capacity)
910 while (new_capacity <
count && new_capacity <= max_capacity / 2)
912 if (new_capacity <
count)
913 new_capacity = max_capacity;
915 if (!(new_elements =
realloc(*elements, new_capacity *
size)))
918 *elements = new_elements;
927 a->_11 = tmp.
_11 *
b->_11 + tmp.
_12 *
b->_21;
928 a->_12 = tmp.
_11 *
b->_12 + tmp.
_12 *
b->_22;
929 a->_21 = tmp.
_21 *
b->_11 + tmp.
_22 *
b->_21;
930 a->_22 = tmp.
_21 *
b->_12 + tmp.
_22 *
b->_22;
931 a->_31 = tmp.
_31 *
b->_11 + tmp.
_32 *
b->_21 +
b->_31;
932 a->_32 = tmp.
_31 *
b->_12 + tmp.
_32 *
b->_22 +
b->_32;
960 return p0->
x * p1->
x + p0->
y * p1->
y;
990 return wine_dbg_sprintf(
"{%.8e, %.8e, %.8e, %.8e}", colour->
r, colour->
g, colour->
b, colour->
a);
D2D1_BITMAP_INTERPOLATION_MODE
D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS
HRESULT(__stdcall * PD2D1_EFFECT_FACTORY)(IUnknown **effect)
void d2d_command_list_draw_geometry(struct d2d_command_list *command_list, const struct d2d_device_context *context, ID2D1Geometry *geometry, ID2D1Brush *orig_brush, float stroke_width, ID2D1StrokeStyle *stroke_style)
@ D2D_RENDER_INFO_PIXEL_SHADER
static BOOL d2d_matrix_invert(D2D_MATRIX_3X2_F *dst, const D2D_MATRIX_3X2_F *src)
void d2d_command_list_fill_opacity_mask(struct d2d_command_list *command_list, const struct d2d_device_context *context, ID2D1Bitmap *bitmap, ID2D1Brush *orig_brush, const D2D1_RECT_F *dst_rect, const D2D1_RECT_F *src_rect)
BOOL d2d_brush_fill_cb(const struct d2d_brush *brush, struct d2d_brush_cb *cb)
HRESULT d2d_factory_register_builtin_effect(struct d2d_factory *factory, REFCLSID effect_id, const WCHAR *property_xml, const D2D1_PROPERTY_BINDING *bindings, UINT32 binding_count, PD2D1_EFFECT_FACTORY effect_factory)
static BOOL d2d_device_context_is_dxgi_target(const struct d2d_device_context *context)
HRESULT d2d_stroke_style_init(struct d2d_stroke_style *style, ID2D1Factory *factory, const D2D1_STROKE_STYLE_PROPERTIES1 *desc, const float *dashes, UINT32 dash_count)
void d2d_factory_register_effect(struct d2d_factory *factory, struct d2d_effect_registration *effect)
struct d2d_device * unsafe_impl_from_ID2D1Device(ID2D1Device1 *iface)
void d2d_command_list_set_unit_mode(struct d2d_command_list *command_list, D2D1_UNIT_MODE mode)
HRESULT d2d_device_add_indexed_object(struct d2d_indexed_objects *objects, const GUID *id, IUnknown *object)
d2d_device_context_target_type
@ D2D_TARGET_COMMAND_LIST
static const char * debug_d2d_point_2f(const D2D1_POINT_2F *point)
void d2d_command_list_pop_layer(struct d2d_command_list *command_list)
void d2d_command_list_push_layer(struct d2d_command_list *command_list, const struct d2d_device_context *context, const D2D1_LAYER_PARAMETERS1 *params, ID2D1Layer *layer)
void d2d_command_list_set_text_rendering_params(struct d2d_command_list *command_list, IDWriteRenderingParams *params)
void d2d_command_list_draw_line(struct d2d_command_list *command_list, const struct d2d_device_context *context, D2D1_POINT_2F p0, D2D1_POINT_2F p1, ID2D1Brush *orig_brush, float stroke_width, ID2D1StrokeStyle *stroke_style)
void d2d_transformed_geometry_init(struct d2d_geometry *geometry, ID2D1Factory *factory, ID2D1Geometry *src_geometry, const D2D_MATRIX_3X2_F *transform)
void d2d_effect_context_init(struct d2d_effect_context *effect_context, struct d2d_device_context *device_context)
void d2d_command_list_fill_mesh(struct d2d_command_list *command_list, const struct d2d_device_context *context, ID2D1Mesh *mesh, ID2D1Brush *orig_brush)
void d2d_command_list_set_transform(struct d2d_command_list *command_list, const D2D1_MATRIX_3X2_F *transform)
static float d2d_point_dot(const D2D1_POINT_2F *p0, const D2D1_POINT_2F *p1)
HRESULT d2d_effect_create(struct d2d_device_context *context, const CLSID *effect_id, ID2D1Effect **effect)
HRESULT d2d_dc_render_target_init(struct d2d_dc_render_target *render_target, ID2D1Factory1 *factory, ID3D10Device1 *d3d_device, const D2D1_RENDER_TARGET_PROPERTIES *desc)
void d2d_effect_init_properties(struct d2d_effect *effect, struct d2d_effect_properties *properties)
void d2d_command_list_set_text_antialias_mode(struct d2d_command_list *command_list, D2D1_TEXT_ANTIALIAS_MODE mode)
HRESULT d2d_command_list_create(ID2D1Factory *factory, struct d2d_command_list **command_list)
void d2d_command_list_set_tags(struct d2d_command_list *command_list, D2D1_TAG tag1, D2D1_TAG tag2)
HRESULT d2d_hwnd_render_target_init(struct d2d_hwnd_render_target *render_target, ID2D1Factory1 *factory, ID3D10Device1 *d3d_device, const D2D1_RENDER_TARGET_PROPERTIES *desc, const D2D1_HWND_RENDER_TARGET_PROPERTIES *hwnd_desc)
HRESULT d2d_rounded_rectangle_geometry_init(struct d2d_geometry *geometry, ID2D1Factory *factory, const D2D1_ROUNDED_RECT *rounded_rect)
static const char * debug_d2d_color_f(const D2D1_COLOR_F *colour)
void d2d_device_init(struct d2d_device *device, ID2D1Factory1 *factory, IDXGIDevice *dxgi_device, bool allow_get_dxgi_device)
HRESULT d2d_bitmap_create(struct d2d_device_context *context, D2D1_SIZE_U size, const void *src_data, UINT32 pitch, const D2D1_BITMAP_PROPERTIES1 *desc, struct d2d_bitmap **bitmap)
d2d_device_context_sampler_limits
@ D2D_SAMPLER_EXTEND_MODE_COUNT
@ D2D_SAMPLER_INTERPOLATION_MODE_COUNT
HRESULT d2d_image_brush_create(ID2D1Factory *factory, ID2D1Image *image, const D2D1_IMAGE_BRUSH_PROPERTIES *image_brush_desc, const D2D1_BRUSH_PROPERTIES *brush_desc, struct d2d_brush **brush)
HRESULT d2d_solid_color_brush_create(ID2D1Factory *factory, const D2D1_COLOR_F *color, const D2D1_BRUSH_PROPERTIES *desc, struct d2d_brush **brush)
void d2d_command_list_set_primitive_blend(struct d2d_command_list *command_list, D2D1_PRIMITIVE_BLEND primitive_blend)
void d2d_command_list_draw_bitmap(struct d2d_command_list *command_list, ID2D1Bitmap *bitmap, const D2D1_RECT_F *dst_rect, float opacity, D2D1_INTERPOLATION_MODE interpolation_mode, const D2D1_RECT_F *src_rect, const D2D1_MATRIX_4X4_F *perspective_transform)
HRESULT d2d_linear_gradient_brush_create(ID2D1Factory *factory, const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *gradient_desc, const D2D1_BRUSH_PROPERTIES *brush_desc, ID2D1GradientStopCollection *gradient, struct d2d_brush **brush)
void d2d_command_list_draw_rectangle(struct d2d_command_list *command_list, const struct d2d_device_context *context, const D2D1_RECT_F *rect, ID2D1Brush *orig_brush, float stroke_width, ID2D1StrokeStyle *stroke_style)
static const char * debug_d2d_point_2l(const D2D1_POINT_2L *point)
HRESULT d2d_layer_create(ID2D1Factory *factory, const D2D1_SIZE_F *size, struct d2d_layer **layer)
static const char * debug_d2d_ellipse(const D2D1_ELLIPSE *ellipse)
static void d2d_rect_expand(D2D1_RECT_F *dst, const D2D1_POINT_2F *point)
HRESULT d2d_effect_subproperties_add(struct d2d_effect_properties *props, const WCHAR *name, UINT32 index, D2D1_PROPERTY_TYPE type, const WCHAR *value)
struct d2d_geometry * unsafe_impl_from_ID2D1Geometry(ID2D1Geometry *iface)
struct d2d_effect_property * d2d_effect_properties_get_property_by_name(const struct d2d_effect_properties *properties, const WCHAR *name)
static const char * debug_d2d_rect_l(const D2D1_RECT_L *rect)
void d2d_command_list_fill_geometry(struct d2d_command_list *command_list, const struct d2d_device_context *context, ID2D1Geometry *geometry, ID2D1Brush *orig_brush, ID2D1Brush *orig_opacity_brush)
void d2d_device_indexed_objects_clear(struct d2d_indexed_objects *objects)
static struct d2d_factory * unsafe_impl_from_ID2D1Factory(ID2D1Factory *iface)
static void d2d_matrix_multiply(D2D_MATRIX_3X2_F *a, const D2D_MATRIX_3X2_F *b)
static BOOL d2d_array_reserve(void **elements, size_t *capacity, size_t count, size_t size)
static const char * debug_d2d_rect_f(const D2D1_RECT_F *rect)
struct d2d_effect_registration * d2d_factory_get_registered_effect(ID2D1Factory *factory, const GUID *effect_id)
HRESULT d2d_d3d_create_render_target(struct d2d_device *device, IDXGISurface *surface, IUnknown *outer_unknown, const struct d2d_device_context_ops *ops, const D2D1_RENDER_TARGET_PROPERTIES *desc, void **render_target)
static const char * debug_d2d_rounded_rect(const D2D1_ROUNDED_RECT *rounded_rect)
void d2d_command_list_draw_glyph_run(struct d2d_command_list *command_list, const struct d2d_device_context *context, D2D1_POINT_2F origin, const DWRITE_GLYPH_RUN *run, const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, ID2D1Brush *orig_brush, DWRITE_MEASURING_MODE measuring_mode)
static D2D1_INTERPOLATION_MODE d2d1_1_interp_mode_from_d2d1(D2D1_BITMAP_INTERPOLATION_MODE mode)
@ D2D_COMMAND_LIST_STATE_INITIAL
@ D2D_COMMAND_LIST_STATE_CLOSED
@ D2D_COMMAND_LIST_STATE_ERROR
@ D2D_COMMAND_LIST_STATE_OPEN
HRESULT d2d_bitmap_render_target_init(struct d2d_bitmap_render_target *render_target, const struct d2d_device_context *parent_target, const D2D1_SIZE_F *size, const D2D1_SIZE_U *pixel_size, const D2D1_PIXEL_FORMAT *format, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options)
struct d2d_state_block * unsafe_impl_from_ID2D1DrawingStateBlock(ID2D1DrawingStateBlock *iface)
void d2d_path_geometry_init(struct d2d_geometry *geometry, ID2D1Factory *factory)
void d2d_effects_init_builtins(struct d2d_factory *factory)
struct d2d_command_list * unsafe_impl_from_ID2D1CommandList(ID2D1CommandList *iface)
void d2d_effect_properties_cleanup(struct d2d_effect_properties *props)
HRESULT d2d_bitmap_create_shared(struct d2d_device_context *context, REFIID iid, void *data, const D2D1_BITMAP_PROPERTIES1 *desc, struct d2d_bitmap **bitmap)
void d2d_command_list_clear(struct d2d_command_list *command_list, const D2D1_COLOR_F *color)
HRESULT d2d_bitmap_create_from_wic_bitmap(struct d2d_device_context *context, IWICBitmapSource *bitmap_source, const D2D1_BITMAP_PROPERTIES1 *desc, struct d2d_bitmap **bitmap)
void d2d_command_list_draw_image(struct d2d_command_list *command_list, ID2D1Image *image, const D2D1_POINT_2F *target_offset, const D2D1_RECT_F *image_rect, D2D1_INTERPOLATION_MODE interpolation_mode, D2D1_COMPOSITE_MODE composite_mode)
struct d2d_bitmap * unsafe_impl_from_ID2D1Bitmap(ID2D1Bitmap *iface)
struct d2d_stroke_style * unsafe_impl_from_ID2D1StrokeStyle(ID2D1StrokeStyle *iface)
void d2d_command_list_set_antialias_mode(struct d2d_command_list *command_list, D2D1_ANTIALIAS_MODE mode)
void d2d_command_list_begin_draw(struct d2d_command_list *command_list, const struct d2d_device_context *context)
static void d2d_point_set(D2D1_POINT_2F *dst, float x, float y)
BOOL d2d_device_get_indexed_object(struct d2d_indexed_objects *objects, const GUID *id, IUnknown **object)
void d2d_command_list_fill_rectangle(struct d2d_command_list *command_list, const struct d2d_device_context *context, const D2D1_RECT_F *rect, ID2D1Brush *orig_brush)
HRESULT d2d_factory_create_device(ID2D1Factory1 *factory, IDXGIDevice *dxgi_device, bool allow_get_dxgi_device, REFIID iid, void **device)
unsigned int d2d_get_bitmap_options_for_surface(IDXGISurface *surface)
HRESULT d2d_rectangle_geometry_init(struct d2d_geometry *geometry, ID2D1Factory *factory, const D2D1_RECT_F *rect)
HRESULT d2d_bitmap_brush_create(ID2D1Factory *factory, ID2D1Bitmap *bitmap, const D2D1_BITMAP_BRUSH_PROPERTIES1 *bitmap_brush_desc, const D2D1_BRUSH_PROPERTIES *brush_desc, struct d2d_brush **brush)
struct d2d_brush * unsafe_impl_from_ID2D1Brush(ID2D1Brush *iface)
void d2d_brush_bind_resources(struct d2d_brush *brush, struct d2d_device_context *context, unsigned int brush_idx)
HRESULT d2d_radial_gradient_brush_create(ID2D1Factory *factory, const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *gradient_desc, const D2D1_BRUSH_PROPERTIES *brush_desc, ID2D1GradientStopCollection *gradient, struct d2d_brush **brush)
HRESULT d2d_mesh_create(ID2D1Factory *factory, struct d2d_mesh **mesh)
HRESULT d2d_wic_render_target_init(struct d2d_wic_render_target *render_target, ID2D1Factory1 *factory, ID3D10Device1 *d3d_device, IWICBitmap *bitmap, const D2D1_RENDER_TARGET_PROPERTIES *desc)
HRESULT d2d_effect_properties_add(struct d2d_effect_properties *props, const WCHAR *name, UINT32 index, D2D1_PROPERTY_TYPE type, const WCHAR *value)
void d2d_command_list_push_clip(struct d2d_command_list *command_list, const D2D1_RECT_F *rect, D2D1_ANTIALIAS_MODE antialias_mode)
HRESULT d2d_effect_property_get_uint32_value(const struct d2d_effect_properties *properties, const struct d2d_effect_property *prop, UINT32 *value)
@ D2D_SHAPE_TYPE_TRIANGLE
@ D2D_SHAPE_TYPE_BEZIER_OUTLINE
@ D2D_SHAPE_TYPE_ARC_OUTLINE
HRESULT d2d_geometry_group_init(struct d2d_geometry *geometry, ID2D1Factory *factory, D2D1_FILL_MODE fill_mode, ID2D1Geometry **src_geometries, unsigned int geometry_count)
void d2d_command_list_pop_clip(struct d2d_command_list *command_list)
void d2d_state_block_init(struct d2d_state_block *state_block, ID2D1Factory *factory, const D2D1_DRAWING_STATE_DESCRIPTION1 *desc, IDWriteRenderingParams *text_rendering_params)
@ D2D_GEOMETRY_STATE_CLOSED
@ D2D_GEOMETRY_STATE_ERROR
@ D2D_GEOMETRY_STATE_FIGURE
@ D2D_GEOMETRY_STATE_INITIAL
@ D2D_GEOMETRY_STATE_OPEN
HRESULT d2d_gradient_create(ID2D1Factory *factory, ID3D11Device1 *device, const D2D1_GRADIENT_STOP *stops, UINT32 stop_count, D2D1_GAMMA gamma, D2D1_EXTEND_MODE extend_mode, struct d2d_gradient **gradient)
HRESULT d2d_ellipse_geometry_init(struct d2d_geometry *geometry, ID2D1Factory *factory, const D2D1_ELLIPSE *ellipse)
static void d2d_point_transform(D2D1_POINT_2F *dst, const D2D1_MATRIX_3X2_F *matrix, float x, float y)
HRESULT(__stdcall * PD2D1_PROPERTY_SET_FUNCTION)(IUnknown *effect, const BYTE *data, UINT32 data_size)
HRESULT(__stdcall * PD2D1_PROPERTY_GET_FUNCTION)(const IUnknown *effect, BYTE *data, UINT32 data_size, UINT32 *actual_size)
const char * wine_dbg_sprintf(const char *format,...)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLuint GLenum GLenum transform
GLboolean GLboolean GLboolean b
GLenum const GLfloat * params
GLenum GLuint GLint GLint layer
GLboolean GLboolean GLboolean GLboolean a
static const CLSID * objects[]
D3D11_SHADER_VARIABLE_DESC desc
ID2D1BitmapRenderTarget ID2D1BitmapRenderTarget_iface
ID2D1RenderTarget * dxgi_target
ID2D1Bitmap1 ID2D1Bitmap1_iface
ID3D11Resource * resource
D2D1_BITMAP_OPTIONS options
ID3D11RenderTargetView * rtv
D3D11_MAPPED_SUBRESOURCE mapped_resource
ID3D11ShaderResourceView * srv
struct d2d_brush_cb::@224::@228 bitmap
union d2d_brush_cb::@224 u
struct d2d_brush_cb::@224::@226 linear
struct d2d_brush_cb::@224::@225 solid
struct d2d_brush_cb::@224::@227 radial
ID2D1Brush ID2D1Brush_iface
D2D1_MATRIX_3X2_F transform
struct d2d_brush::@234::@235 solid
struct d2d_gradient * gradient
struct d2d_brush::@234::@237 radial
struct d2d_brush::@234::@236 linear
struct d2d_bitmap * bitmap
D2D1_EXTEND_MODE extend_mode_x
D2D1_EXTEND_MODE extend_mode_y
D2D1_INTERPOLATION_MODE interpolation_mode
ID2D1CommandList ID2D1CommandList_iface
enum d2d_command_list_state state
struct d2d_curve_vertex::@240 texcoord
D2D1_RENDER_TARGET_PROPERTIES desc
ID3D10Device1 * d3d_device
ID2D1DCRenderTarget ID2D1DCRenderTarget_iface
ID2D1RenderTarget * dxgi_target
IDXGISurface1 * dxgi_surface
HRESULT(* device_context_present)(IUnknown *outer_unknown)
IDWriteRenderingParams * default_text_rendering_params
ID3D11RasterizerState * rs
ID3D11Device1 * d3d_device
ID2D1DeviceContext6 ID2D1DeviceContext6_iface
struct d2d_error_state error
ID3DDeviceContextState * d3d_state
ID2D1GdiInteropRenderTarget ID2D1GdiInteropRenderTarget_iface
struct d2d_device_context::@231 target
struct d2d_command_list * command_list
const struct d2d_device_context_ops * ops
struct d2d_device * device
D2D1_RENDER_TARGET_PROPERTIES desc
struct d2d_indexed_objects vertex_buffers
D2D1_DRAWING_STATE_DESCRIPTION1 drawing_state
enum d2d_device_context_target_type type
struct d2d_shape_resources shape_resources[D2D_SHAPE_TYPE_COUNT]
IDWriteRenderingParams * text_rendering_params
ID3D11SamplerState * sampler_states[D2D_SAMPLER_INTERPOLATION_MODE_COUNT][D2D_SAMPLER_EXTEND_MODE_COUNT][D2D_SAMPLER_EXTEND_MODE_COUNT]
struct d2d_bitmap * bitmap
IDWriteTextRenderer IDWriteTextRenderer_iface
struct d2d_clip_stack clip_stack
bool allow_get_dxgi_device
IDXGIDevice * dxgi_device
ID2D1Device6 ID2D1Device6_iface
ID2D1EffectContext ID2D1EffectContext_iface
struct d2d_device_context * device_context
struct d2d_effect_property * properties
struct d2d_effect_properties::@251 data
ID2D1Properties ID2D1Properties_iface
struct d2d_effect * effect
PD2D1_PROPERTY_SET_FUNCTION set_function
PD2D1_PROPERTY_GET_FUNCTION get_function
union d2d_effect_property::@250 data
struct d2d_effect_properties * subproperties
struct d2d_effect_properties * properties
UINT32 registration_count
PD2D1_EFFECT_FACTORY factory
ID2D1Image ID2D1Image_iface
ID2D1Effect ID2D1Effect_iface
struct d2d_effect_properties properties
struct d2d_effect_context * effect_context
struct d2d_transform_graph * graph
ID2D1Factory7 ID2D1Factory7_iface
D2D1_FACTORY_TYPE factory_type
ID2D1Multithread ID2D1Multithread_iface
struct d2d_outline_vertex * vertices
enum d2d_geometry_state state
struct d2d_curve_outline_vertex * beziers
struct d2d_geometry::@243::@248 transformed
struct d2d_geometry::@243::@245 path
size_t bezier_vertices_size
struct d2d_curve_vertex * arc_vertices
struct d2d_figure * figures
union d2d_geometry::@243 u
ID2D1Geometry * src_geometry
D2D_MATRIX_3X2_F transform
ID2D1Geometry ** src_geometries
ID2D1Geometry ID2D1Geometry_iface
struct d2d_geometry::@243::@246 rectangle
D2D1_ROUNDED_RECT rounded_rect
struct d2d_curve_vertex * bezier_vertices
struct d2d_face * bezier_faces
struct d2d_face * arc_faces
size_t bezier_vertex_count
ID2D1GeometrySink ID2D1GeometrySink_iface
struct d2d_geometry::@243::@249 group
struct d2d_geometry::@243::@247 rounded_rectangle
struct d2d_geometry::@241 fill
struct d2d_geometry::@242 outline
struct d2d_curve_outline_vertex * arcs
D2D1_GRADIENT_STOP * stops
ID2D1GradientStopCollection ID2D1GradientStopCollection_iface
ID3D11ShaderResourceView * view
ID2D1RenderTarget * dxgi_target
ID2D1HwndRenderTarget ID2D1HwndRenderTarget_iface
D2D1_RENDER_TARGET_PROPERTIES desc
IDXGISwapChain * swapchain
struct d2d_indexed_objects::@230 * elements
ID2D1Layer ID2D1Layer_iface
ID2D1Mesh ID2D1Mesh_iface
struct d2d_brush_cb opacity_brush
struct d2d_brush_cb colour_brush
ID2D1DrawInfo ID2D1DrawInfo_iface
unsigned int max_version_factory
IDWriteRenderingParams * text_rendering_params
ID2D1DrawingStateBlock1 ID2D1DrawingStateBlock1_iface
D2D1_DRAWING_STATE_DESCRIPTION1 drawing_state
ID2D1StrokeStyle1 ID2D1StrokeStyle1_iface
D2D1_STROKE_STYLE_PROPERTIES1 desc
ID2D1VertexBuffer ID2D1VertexBuffer_iface
struct d2d_vec4 transform_rtx
struct d2d_vec4 transform_rty
struct d2d_vs_cb::@229 transform_geometry
ID3D10Texture2D * readback_texture
ID2D1RenderTarget * dxgi_target
IDXGISurface * dxgi_surface
#define CONTAINING_RECORD(address, type, field)
static const WCHAR props[]