58 ID2D1VertexBuffer_AddRef(iface);
99 FIXME(
"iface %p.\n", iface);
117 if (!(
object =
calloc(1,
sizeof(*
object))))
121 object->refcount = 1;
123 *
buffer = &
object->ID2D1VertexBuffer_iface;
138 ID2D1OffsetTransform_AddRef(iface);
172 TRACE(
"iface %p.\n", iface);
192 TRACE(
"iface %p.\n", iface);
212 if (!(
object =
calloc(1,
sizeof(*
object))))
216 object->refcount = 1;
235 ID2D1BlendTransform_AddRef(iface);
271 TRACE(
"iface %p.\n", iface);
287 FIXME(
"iface %p, is_cached %d stub.\n", iface, is_cached);
332 if (!(
object =
calloc(1,
sizeof(*
object))))
336 object->refcount = 1;
356 ID2D1BorderTransform_AddRef(iface);
390 TRACE(
"iface %p.\n", iface);
406 FIXME(
"iface %p, is_cached %d stub.\n", iface, is_cached);
414 TRACE(
"iface %p.\n", iface);
433 TRACE(
"iface %p.\n", iface);
452 TRACE(
"iface %p.\n", iface);
462 TRACE(
"iface %p.\n", iface);
488 if (!(
object =
calloc(1,
sizeof(*
object))))
492 object->refcount = 1;
493 object->border.mode_x =
mode_x;
494 object->border.mode_y =
mode_y;
506 if (
IsEqualGUID(iid, &IID_ID2D1BoundsAdjustmentTransform)
511 ID2D1BoundsAdjustmentTransform_AddRef(iface);
548 TRACE(
"iface %p.\n", iface);
558 TRACE(
"iface %p.\n", iface);
568 TRACE(
"iface %p.\n", iface);
590 if (!(
object =
calloc(1,
sizeof(*
object))))
594 object->refcount = 1;
595 object->bounds = *
rect;
609 if (
node->object ==
object)
623 node->input_count = ID2D1TransformNode_GetInputCount(
object);
631 ID2D1TransformNode_AddRef(
node->object);
645 for (
i = 0;
i <
output->input_count; ++
i)
661 ID2D1TransformNode_Release(
node->object);
663 for (
i = 0;
i <
graph->input_count; ++
i)
672 if (
node->render_info)
673 ID2D1DrawInfo_Release(&
node->render_info->ID2D1DrawInfo_iface);
689 graph->passthrough =
false;
704 ID2D1TransformGraph_AddRef(iface);
744 TRACE(
"iface %p.\n", iface);
746 return graph->input_count;
757 TRACE(
"iface %p, object %p.\n", iface,
object);
766 input_count = ID2D1TransformNode_GetInputCount(
object);
770 for (
i = 0;
i <
graph->input_count; ++
i)
784 TRACE(
"iface %p, object %p.\n", iface,
object);
798 TRACE(
"iface %p, object %p.\n", iface,
object);
813 TRACE(
"iface %p, object %p.\n", iface,
object);
819 graph->passthrough =
false;
830 TRACE(
"iface %p, from_node %p, to_node %p, index %u.\n", iface, from_node, to_node,
index);
855 TRACE(
"iface %p, input_index %u, object %p, node_index %u.\n", iface, input_index,
object, node_index);
860 if (input_index >=
graph->input_count)
863 count = ID2D1TransformNode_GetInputCount(
object);
864 if (node_index >=
count)
868 graph->inputs[input_index].index = node_index;
869 graph->passthrough =
false;
878 TRACE(
"iface %p.\n", iface);
894 graph->passthrough =
true;
920 if (!(
object =
calloc(1,
sizeof(*
object))))
924 object->refcount = 1;
946 ID2D1EffectImpl_AddRef(iface);
995 *effect_impl = (
IUnknown *)&builtin_stub;
1001L"<?xml version='1.0'?> \
1003 <Property name='DisplayName' type='string' value='2D Affine Transform'/> \
1004 <Property name='Author' type='string' value='The Wine Project'/> \
1005 <Property name='Category' type='string' value='Stub'/> \
1006 <Property name='Description' type='string' value='2D Affine Transform'/> \
1008 <Input name='Source'/> \
1013L"<?xml version='1.0'?> \
1015 <Property name='DisplayName' type='string' value='3D Perspective Transform'/> \
1016 <Property name='Author' type='string' value='The Wine Project'/> \
1017 <Property name='Category' type='string' value='Stub'/> \
1018 <Property name='Description' type='string' value='3D Perspective Transform'/> \
1020 <Input name='Source'/> \
1025L"<?xml version='1.0'?> \
1027 <Property name='DisplayName' type='string' value='Composite'/> \
1028 <Property name='Author' type='string' value='The Wine Project'/> \
1029 <Property name='Category' type='string' value='Stub'/> \
1030 <Property name='Description' type='string' value='Composite'/> \
1031 <Inputs minimum='1' maximum='0xffffffff' > \
1032 <Input name='Source1'/> \
1033 <Input name='Source2'/> \
1038L"<?xml version='1.0'?> \
1040 <Property name='DisplayName' type='string' value='Crop'/> \
1041 <Property name='Author' type='string' value='The Wine Project'/> \
1042 <Property name='Category' type='string' value='Stub'/> \
1043 <Property name='Description' type='string' value='Crop'/> \
1045 <Input name='Source'/> \
1047 <Property name='Rect' type='vector4' /> \
1051L"<?xml version='1.0'?> \
1053 <Property name='DisplayName' type='string' value='Shadow'/> \
1054 <Property name='Author' type='string' value='The Wine Project'/> \
1055 <Property name='Category' type='string' value='Stub'/> \
1056 <Property name='Description' type='string' value='Shadow'/> \
1058 <Input name='Source'/> \
1063L"<?xml version='1.0'?> \
1065 <Property name='DisplayName' type='string' value='Grayscale'/> \
1066 <Property name='Author' type='string' value='The Wine Project'/> \
1067 <Property name='Category' type='string' value='Stub'/> \
1068 <Property name='Description' type='string' value='Grayscale'/> \
1070 <Input name='Source'/> \
1076 static const struct builtin_description
1107 unsigned int i, num_components;
1132 for (
i = 0;
i < num_components; ++
i)
1139 if (
i == num_components - 1)
continue;
1177 sizeof(*
props->properties)))
1193 if (
p->index < 0x80000000)
1195 props->custom_count++;
1223 p->data.offset =
props->offset;
1225 props->offset +=
p->size;
1259 WARN(
"Failed to parse float array %s for type %u.\n",
1269 FIXME(
"Initial value for property type %u is not handled.\n",
p->type);
1300 dst->effect = effect;
1309 for (
i = 0;
i <
dst->count; ++
i)
1319 if (
s->subproperties)
1321 if (!(
d->subproperties =
calloc(1,
sizeof(*
d->subproperties))))
1336 for (
i = 0;
i < properties->
count; ++
i)
1350 for (
i = 0;
i < properties->
count; ++
i)
1451 FIXME(
"Unhandled type %u.\n", prop->
type);
1468 if (
p->subproperties)
1471 free(
p->subproperties);
1490 ID2D1EffectContext_AddRef(iface);
1520 ID2D1DeviceContext6_Release(&effect_context->
device_context->ID2D1DeviceContext6_iface);
1521 free(effect_context);
1531 TRACE(
"iface %p, dpi_x %p, dpi_y %p.\n", iface, dpi_x, dpi_y);
1533 ID2D1DeviceContext6_GetDpi(&effect_context->
device_context->ID2D1DeviceContext6_iface, dpi_x, dpi_y);
1543 return ID2D1DeviceContext6_CreateEffect(&effect_context->
device_context->ID2D1DeviceContext6_iface,
1550 FIXME(
"iface %p, levels %p, level_count %u, max_level %p stub!\n", iface,
levels, level_count, max_level);
1558 FIXME(
"iface %p, effect %p, node %p stub!\n", iface, effect,
node);
1574 TRACE(
"iface %p, mode_x %#x, mode_y %#x, transform %p.\n", iface, mode_x, mode_y,
transform);
1600 ID3D11PixelShader *
shader;
1603 TRACE(
"iface %p, shader_id %s, buffer %p, buffer_size %u.\n",
1612 WARN(
"Failed to create a pixel shader, hr %#lx.\n",
hr);
1617 ID3D11PixelShader_Release(
shader);
1627 ID3D11VertexShader *
shader;
1630 TRACE(
"iface %p, shader_id %s, buffer %p, buffer_size %u.\n",
1639 WARN(
"Failed to create vertex shader, hr %#lx.\n",
hr);
1644 ID3D11VertexShader_Release(
shader);
1654 ID3D11ComputeShader *
shader;
1657 TRACE(
"iface %p, shader_id %s, buffer %p, buffer_size %u.\n",
1666 WARN(
"Failed to create a compute shader, hr %#lx.\n",
hr);
1671 ID3D11ComputeShader_Release(
shader);
1690 FIXME(
"iface %p, id %s, texture_properties %p, data %p, strides %p, data_size %u, texture %p stub!\n",
1713 FIXME(
"iface %p, buffer_properties %p, id %s, custom_buffer_properties %p, buffer %p stub!\n",
1750 TRACE(
"iface %p, space %#x, profile %p, profile_size %u, color_context %p.\n",
1753 return ID2D1DeviceContext6_CreateColorContext(&effect_context->
device_context->ID2D1DeviceContext6_iface,
1764 return ID2D1DeviceContext6_CreateColorContextFromFilename(&effect_context->
device_context->ID2D1DeviceContext6_iface,
1773 TRACE(
"iface %p, wic_color_context %p, color_context %p.\n", iface, wic_color_context, color_context);
1775 return ID2D1DeviceContext6_CreateColorContextFromWicColorContext(&effect_context->
device_context->ID2D1DeviceContext6_iface,
1776 wic_color_context, color_context);
1785 TRACE(
"iface %p, feature %#x, data %p, data_size %u.\n", iface,
feature,
data, data_size);
1797 return ID3D11Device1_CheckFeatureSupport(effect_context->
device_context->d3d_device,
1798 d3d11_feature,
data, data_size);
1808 return ID2D1DeviceContext6_IsBufferPrecisionSupported(&effect_context->
device_context->ID2D1DeviceContext6_iface,
1845 ID2D1DeviceContext6_AddRef(&
device_context->ID2D1DeviceContext6_iface);
1860 ID2D1Image_Release(effect->
inputs[
i]);
1863 ID2D1EffectContext_Release(&effect->
effect_context->ID2D1EffectContext_iface);
1865 ID2D1TransformGraph_Release(&effect->
graph->ID2D1TransformGraph_iface);
1868 ID2D1EffectImpl_Release(effect->
impl);
1880 ID2D1Effect_AddRef(iface);
1929 TRACE(
"iface %p.\n", iface);
1931 return ID2D1Properties_GetPropertyCount(&effect->
properties.ID2D1Properties_iface);
1939 TRACE(
"iface %p, index %u, name %p, name_count %u.\n", iface,
index,
name, name_count);
1941 return ID2D1Properties_GetPropertyName(&effect->
properties.ID2D1Properties_iface,
1949 TRACE(
"iface %p, index %u.\n", iface,
index);
1951 return ID2D1Properties_GetPropertyNameLength(&effect->
properties.ID2D1Properties_iface,
index);
1958 TRACE(
"iface %p, index %#x.\n", iface,
index);
1960 return ID2D1Properties_GetType(&effect->
properties.ID2D1Properties_iface,
index);
1969 return ID2D1Properties_GetPropertyIndex(&effect->
properties.ID2D1Properties_iface,
name);
1980 return ID2D1Properties_SetValueByName(&effect->
properties.ID2D1Properties_iface,
name,
1989 TRACE(
"iface %p, index %#x, type %u, value %p, value_size %u.\n", iface,
index,
type,
value, value_size);
2003 return ID2D1Properties_GetValueByName(&effect->
properties.ID2D1Properties_iface,
name,
type,
2018 TRACE(
"iface %p, index %#x, type %u, value %p, value_size %u.\n", iface,
index,
type,
value, value_size);
2027 TRACE(
"iface %p, index %#x.\n", iface,
index);
2029 return ID2D1Properties_GetValueSize(&effect->
properties.ID2D1Properties_iface,
index);
2039 return ID2D1Properties_GetSubProperties(&effect->
properties.ID2D1Properties_iface,
index,
props);
2051 ID2D1Image_AddRef(
input);
2071 ID2D1Image_Release(effect->
inputs[
i]);
2079 ERR(
"Failed to resize inputs array.\n");
2089 ID2D1TransformGraph_Release(&effect->
graph->ID2D1TransformGraph_iface);
2094 if (
FAILED(
hr = ID2D1EffectImpl_SetGraph(effect->
impl, &effect->
graph->ID2D1TransformGraph_iface)))
2095 WARN(
"Failed to set a new transform graph, hr %#lx.\n",
hr);
2105 unsigned int min_inputs, max_inputs;
2107 TRACE(
"iface %p, count %u.\n", iface,
count);
2110 (
BYTE *)&min_inputs,
sizeof(min_inputs));
2112 (
BYTE *)&max_inputs,
sizeof(max_inputs));
2114 if (count < min_inputs || count > max_inputs)
2136 TRACE(
"iface %p.\n", iface);
2145 TRACE(
"iface %p, output %p.\n", iface, output);
2191 TRACE(
"iface %p.\n", iface);
2200 TRACE(
"iface %p.\n", iface);
2234 ID2D1Properties_AddRef(iface);
2247 return ID2D1Effect_AddRef(&
properties->effect->ID2D1Effect_iface);
2258 return ID2D1Effect_Release(&
properties->effect->ID2D1Effect_iface);
2275 TRACE(
"iface %p.\n", iface);
2286 TRACE(
"iface %p, index %u, name %p, name_count %u.\n", iface,
index,
name, name_count);
2300 TRACE(
"iface %p, index %u.\n", iface,
index);
2314 TRACE(
"iface %p, index %#x.\n", iface,
index);
2331 return D2D1_INVALID_PROPERTY_INDEX;
2357 TRACE(
"iface %p, index %#x, type %u, value %p, value_size %u.\n", iface,
index,
type,
value, value_size);
2386 TRACE(
"iface %p, index %#x, type %u, value %p, value_size %u.\n", iface,
index,
type,
value, value_size);
2399 TRACE(
"iface %p, index %#x.\n", iface,
index);
2418 ID2D1Properties_AddRef(*
props);
2444 properties->
effect = effect;
2463 ID2D1DrawInfo_AddRef(iface);
2500 FIXME(
"iface %p, index %u stub.\n", iface,
index);
2515 FIXME(
"iface %p, is_cached %d stub.\n", iface, is_cached);
2521 FIXME(
"iface %p, count %u stub.\n", iface,
count);
2565 FIXME(
"iface %p, buffer %p, options %#x, description %p, range %p, shader %s stub.\n",
2591 if (!(
object =
calloc(1,
sizeof(*
object))))
2595 object->refcount = 1;
2604 static const GUID *iids[] =
2606 &IID_ID2D1SourceTransform,
2607 &IID_ID2D1ComputeTransform,
2608 &IID_ID2D1DrawTransform,
2615 if (
SUCCEEDED(ID2D1TransformNode_QueryInterface(
node->object, iids[
i], (
void **)&
obj)))
2617 IUnknown_Release(
obj);
2639 if (
SUCCEEDED(ID2D1TransformNode_QueryInterface(
node->object, &IID_ID2D1DrawTransform,
2640 (
void **)&draw_transform)))
2642 hr = ID2D1DrawTransform_SetDrawInfo(draw_transform, &
node->render_info->ID2D1DrawInfo_iface);
2643 ID2D1DrawTransform_Release(draw_transform);
2646 WARN(
"Failed to set draw info, hr %#lx.\n",
hr);
2680 if (!(
object =
calloc(1,
sizeof(*
object))))
2682 ID2D1EffectContext_Release(&
effect_context->ID2D1EffectContext_iface);
2688 object->refcount = 1;
2705 ID2D1EffectContext_Release(&
effect_context->ID2D1EffectContext_iface);
2711 WARN(
"Failed to create implementation object, hr %#lx.\n",
hr);
2712 ID2D1Effect_Release(&
object->ID2D1Effect_iface);
2717 &
object->graph->ID2D1TransformGraph_iface)))
2719 WARN(
"Failed to initialize effect, hr %#lx.\n",
hr);
2720 ID2D1Effect_Release(&
object->ID2D1Effect_iface);
2726 WARN(
"Failed to initialize graph nodes, hr %#lx.\n",
hr);
2727 ID2D1Effect_Release(&
object->ID2D1Effect_iface);
2731 *effect = &
object->ID2D1Effect_iface;
2733 TRACE(
"Created effect %p.\n", *effect);
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
#define STDMETHODCALLTYPE
@ D2D1_EXTEND_MODE_MIRROR
@ D2D1_PROPERTY_MAX_INPUTS
@ D2D1_PROPERTY_PRECISION
@ D2D1_PROPERTY_MIN_INPUTS
@ D2D1_PROPERTY_TYPE_BLOB
@ D2D1_PROPERTY_TYPE_CLSID
@ D2D1_PROPERTY_TYPE_MATRIX_5X4
@ D2D1_PROPERTY_TYPE_ENUM
@ D2D1_PROPERTY_TYPE_BOOL
@ D2D1_PROPERTY_TYPE_MATRIX_3X2
@ D2D1_PROPERTY_TYPE_MATRIX_4X4
@ D2D1_PROPERTY_TYPE_UINT32
@ D2D1_PROPERTY_TYPE_UNKNOWN
@ D2D1_PROPERTY_TYPE_MATRIX_4X3
@ D2D1_PROPERTY_TYPE_STRING
@ D2D1_PROPERTY_TYPE_VECTOR2
@ D2D1_PROPERTY_TYPE_FLOAT
@ D2D1_PROPERTY_TYPE_VECTOR3
@ D2D1_PROPERTY_TYPE_IUNKNOWN
@ D2D1_PROPERTY_TYPE_ARRAY
@ D2D1_PROPERTY_TYPE_INT32
@ D2D1_PROPERTY_TYPE_VECTOR4
@ D2D1_PROPERTY_TYPE_COLOR_CONTEXT
@ D2D_RENDER_INFO_PIXEL_SHADER
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)
HRESULT d2d_device_add_indexed_object(struct d2d_indexed_objects *objects, const GUID *id, IUnknown *object)
static const char * debug_d2d_point_2l(const D2D1_POINT_2L *point)
static const char * debug_d2d_rect_l(const D2D1_RECT_L *rect)
static BOOL d2d_array_reserve(void **elements, size_t *capacity, size_t count, size_t size)
struct d2d_effect_registration * d2d_factory_get_registered_effect(ID2D1Factory *factory, const GUID *effect_id)
BOOL d2d_device_get_indexed_object(struct d2d_indexed_objects *objects, const GUID *id, IUnknown **object)
@ D2D1_FEATURE_D3D10_X_HARDWARE_OPTIONS
#define D2DERR_INSUFFICIENT_BUFFER
@ D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS
static HRESULT STDMETHODCALLTYPE d2d_effect_image_QueryInterface(ID2D1Image *iface, REFIID iid, void **out)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_CreateResourceTexture(ID2D1EffectContext *iface, const GUID *id, const D2D1_RESOURCE_TEXTURE_PROPERTIES *texture_properties, const BYTE *data, const UINT32 *strides, UINT32 data_size, ID2D1ResourceTexture **texture)
static void STDMETHODCALLTYPE d2d_blend_transform_GetDescription(ID2D1BlendTransform *iface, D2D1_BLEND_DESCRIPTION *description)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_CheckFeatureSupport(ID2D1EffectContext *iface, D2D1_FEATURE feature, void *data, UINT32 data_size)
static HRESULT STDMETHODCALLTYPE d2d_draw_info_SetResourceTexture(ID2D1DrawInfo *iface, UINT32 index, ID2D1ResourceTexture *texture)
static HRESULT STDMETHODCALLTYPE d2d_transform_graph_RemoveNode(ID2D1TransformGraph *iface, ID2D1TransformNode *object)
static HRESULT d2d_offset_transform_create(D2D1_POINT_2L offset, ID2D1OffsetTransform **transform)
static struct d2d_effect * impl_from_ID2D1Image(ID2D1Image *iface)
static HRESULT d2d_effect_return_string(const WCHAR *str, WCHAR *buffer, UINT32 buffer_size)
static HRESULT STDMETHODCALLTYPE d2d_draw_info_SetVertexShaderConstantBuffer(ID2D1DrawInfo *iface, const BYTE *buffer, UINT32 size)
static UINT32 STDMETHODCALLTYPE d2d_effect_GetPropertyIndex(ID2D1Effect *iface, const WCHAR *name)
static HRESULT d2d_effect_property_get_value(const struct d2d_effect_properties *properties, const struct d2d_effect_property *prop, D2D1_PROPERTY_TYPE type, BYTE *value, UINT32 size)
static HRESULT STDMETHODCALLTYPE d2d_effect_properties_GetValueByName(ID2D1Properties *iface, const WCHAR *name, D2D1_PROPERTY_TYPE type, BYTE *value, UINT32 value_size)
static HRESULT STDMETHODCALLTYPE d2d_effect_GetValue(ID2D1Effect *iface, UINT32 index, D2D1_PROPERTY_TYPE type, BYTE *value, UINT32 value_size)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_CreateVertexBuffer(ID2D1EffectContext *iface, const D2D1_VERTEX_BUFFER_PROPERTIES *buffer_properties, const GUID *id, const D2D1_CUSTOM_VERTEX_BUFFER_PROPERTIES *custom_buffer_properties, ID2D1VertexBuffer **buffer)
static UINT32 STDMETHODCALLTYPE d2d_transform_graph_GetInputCount(ID2D1TransformGraph *iface)
static void STDMETHODCALLTYPE d2d_blend_transform_SetCached(ID2D1BlendTransform *iface, BOOL is_cached)
static HRESULT d2d_effect_get_value(struct d2d_effect *effect, UINT32 index, D2D1_PROPERTY_TYPE type, BYTE *value, UINT32 value_size)
static struct d2d_effect_context * impl_from_ID2D1EffectContext(ID2D1EffectContext *iface)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_FindVertexBuffer(ID2D1EffectContext *iface, const GUID *id, ID2D1VertexBuffer **buffer)
static const WCHAR _2d_affine_transform_description[]
static const ID2D1VertexBufferVtbl d2d_vertex_buffer_vtbl
static UINT32 STDMETHODCALLTYPE d2d_effect_properties_GetPropertyCount(ID2D1Properties *iface)
static UINT32 STDMETHODCALLTYPE d2d_effect_properties_GetValueSize(ID2D1Properties *iface, UINT32 index)
static ULONG STDMETHODCALLTYPE d2d_effect_AddRef(ID2D1Effect *iface)
static ULONG STDMETHODCALLTYPE d2d_effect_Release(ID2D1Effect *iface)
void d2d_effect_context_init(struct d2d_effect_context *effect_context, struct d2d_device_context *device_context)
static ULONG STDMETHODCALLTYPE d2d_transform_graph_Release(ID2D1TransformGraph *iface)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_LoadVertexShader(ID2D1EffectContext *iface, REFGUID shader_id, const BYTE *buffer, UINT32 buffer_size)
static ULONG STDMETHODCALLTYPE d2d_border_transform_Release(ID2D1BorderTransform *iface)
static HRESULT STDMETHODCALLTYPE d2d_effect_SetInputCount(ID2D1Effect *iface, UINT32 count)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_CreateBlendTransform(ID2D1EffectContext *iface, UINT32 num_inputs, const D2D1_BLEND_DESCRIPTION *description, ID2D1BlendTransform **transform)
static HRESULT STDMETHODCALLTYPE d2d_vertex_buffer_QueryInterface(ID2D1VertexBuffer *iface, REFIID iid, void **out)
static HRESULT STDMETHODCALLTYPE d2d_effect_GetPropertyName(ID2D1Effect *iface, UINT32 index, WCHAR *name, UINT32 name_count)
static UINT32 STDMETHODCALLTYPE d2d_offset_transform_GetInputCount(ID2D1OffsetTransform *iface)
static UINT32 STDMETHODCALLTYPE d2d_effect_GetValueSize(ID2D1Effect *iface, UINT32 index)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_LoadComputeShader(ID2D1EffectContext *iface, REFGUID shader_id, const BYTE *buffer, UINT32 buffer_size)
static const ID2D1BorderTransformVtbl d2d_border_transform_vtbl
HRESULT d2d_effect_create(struct d2d_device_context *context, const CLSID *effect_id, ID2D1Effect **effect)
static ULONG STDMETHODCALLTYPE d2d_offset_transform_AddRef(ID2D1OffsetTransform *iface)
static HRESULT STDMETHODCALLTYPE d2d_draw_info_SetOutputBuffer(ID2D1DrawInfo *iface, D2D1_BUFFER_PRECISION precision, D2D1_CHANNEL_DEPTH depth)
static struct d2d_effect * impl_from_ID2D1Effect(ID2D1Effect *iface)
static void STDMETHODCALLTYPE d2d_border_transform_SetExtendModeX(ID2D1BorderTransform *iface, D2D1_EXTEND_MODE mode)
static const ID2D1OffsetTransformVtbl d2d_offset_transform_vtbl
static HRESULT d2d_effect_property_set_value(struct d2d_effect_properties *properties, struct d2d_effect_property *prop, D2D1_PROPERTY_TYPE type, const BYTE *value, UINT32 size)
static HRESULT STDMETHODCALLTYPE d2d_effect_GetSubProperties(ID2D1Effect *iface, UINT32 index, ID2D1Properties **props)
static HRESULT STDMETHODCALLTYPE d2d_vertex_buffer_Map(ID2D1VertexBuffer *iface, BYTE **data, UINT32 size)
void d2d_effect_init_properties(struct d2d_effect *effect, struct d2d_effect_properties *properties)
static UINT32 STDMETHODCALLTYPE d2d_effect_GetPropertyNameLength(ID2D1Effect *iface, UINT32 index)
static D2D1_POINT_2L *STDMETHODCALLTYPE d2d_offset_transform_GetOffset(ID2D1OffsetTransform *iface, D2D1_POINT_2L *offset)
static const WCHAR _3d_perspective_transform_description[]
static const WCHAR grayscale_description[]
static struct d2d_transform * impl_from_ID2D1BoundsAdjustmentTransform(ID2D1BoundsAdjustmentTransform *iface)
static HRESULT STDMETHODCALLTYPE d2d_offset_transform_QueryInterface(ID2D1OffsetTransform *iface, REFIID iid, void **out)
static void STDMETHODCALLTYPE d2d_effect_GetInput(ID2D1Effect *iface, UINT32 index, ID2D1Image **input)
static HRESULT d2d_effect_set_input_count(struct d2d_effect *effect, UINT32 count)
static ULONG STDMETHODCALLTYPE d2d_effect_context_Release(ID2D1EffectContext *iface)
static HRESULT d2d_effect_parse_float_array(D2D1_PROPERTY_TYPE type, const WCHAR *value, float *vec)
static void STDMETHODCALLTYPE d2d_offset_transform_SetOffset(ID2D1OffsetTransform *iface, D2D1_POINT_2L offset)
static HRESULT STDMETHODCALLTYPE d2d_effect_impl_QueryInterface(ID2D1EffectImpl *iface, REFIID iid, void **out)
static ULONG STDMETHODCALLTYPE d2d_vertex_buffer_AddRef(ID2D1VertexBuffer *iface)
static HRESULT d2d_effect_duplicate_properties(struct d2d_effect *effect, struct d2d_effect_properties *dst, const struct d2d_effect_properties *src)
static struct d2d_vertex_buffer * impl_from_ID2D1VertexBuffer(ID2D1VertexBuffer *iface)
static bool d2d_transform_node_needs_render_info(const struct d2d_transform_node *node)
static void STDMETHODCALLTYPE d2d_effect_image_GetFactory(ID2D1Image *iface, ID2D1Factory **factory)
static HRESULT STDMETHODCALLTYPE d2d_effect_impl_SetGraph(ID2D1EffectImpl *iface, ID2D1TransformGraph *graph)
static ULONG STDMETHODCALLTYPE d2d_effect_properties_Release(ID2D1Properties *iface)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_CreateOffsetTransform(ID2D1EffectContext *iface, D2D1_POINT_2L offset, ID2D1OffsetTransform **transform)
static struct d2d_effect_properties * impl_from_ID2D1Properties(ID2D1Properties *iface)
static HRESULT STDMETHODCALLTYPE d2d_effect_properties_GetValue(ID2D1Properties *iface, UINT32 index, D2D1_PROPERTY_TYPE type, BYTE *value, UINT32 value_size)
static HRESULT STDMETHODCALLTYPE d2d_effect_QueryInterface(ID2D1Effect *iface, REFIID iid, void **out)
static HRESULT STDMETHODCALLTYPE d2d_transform_graph_SetSingleTransformNode(ID2D1TransformGraph *iface, ID2D1TransformNode *object)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_QueryInterface(ID2D1EffectContext *iface, REFIID iid, void **out)
static ULONG STDMETHODCALLTYPE d2d_vertex_buffer_Release(ID2D1VertexBuffer *iface)
static void STDMETHODCALLTYPE d2d_bounds_adjustment_transform_GetOutputBounds(ID2D1BoundsAdjustmentTransform *iface, D2D1_RECT_L *bounds)
static void STDMETHODCALLTYPE d2d_draw_info_SetInstructionCountHint(ID2D1DrawInfo *iface, UINT32 count)
static UINT32 STDMETHODCALLTYPE d2d_blend_transform_GetInputCount(ID2D1BlendTransform *iface)
static struct d2d_transform * impl_from_ID2D1BlendTransform(ID2D1BlendTransform *iface)
static ULONG STDMETHODCALLTYPE d2d_effect_context_AddRef(ID2D1EffectContext *iface)
static HRESULT STDMETHODCALLTYPE d2d_effect_impl_PrepareForRender(ID2D1EffectImpl *iface, D2D1_CHANGE_TYPE type)
static HRESULT d2d_bounds_adjustment_transform_create(const D2D1_RECT_L *rect, ID2D1BoundsAdjustmentTransform **transform)
static struct d2d_transform_node * d2d_transform_graph_get_node(const struct d2d_transform_graph *graph, ID2D1TransformNode *object)
static D2D1_PROPERTY_TYPE STDMETHODCALLTYPE d2d_effect_GetType(ID2D1Effect *iface, UINT32 index)
static HRESULT STDMETHODCALLTYPE d2d_border_transform_SetOutputBuffer(ID2D1BorderTransform *iface, D2D1_BUFFER_PRECISION precision, D2D1_CHANNEL_DEPTH depth)
static HRESULT STDMETHODCALLTYPE d2d_draw_info_SetInputDescription(ID2D1DrawInfo *iface, UINT32 index, D2D1_INPUT_DESCRIPTION description)
static ULONG STDMETHODCALLTYPE d2d_effect_properties_AddRef(ID2D1Properties *iface)
static HRESULT d2d_transform_graph_add_node(struct d2d_transform_graph *graph, ID2D1TransformNode *object)
static BOOL STDMETHODCALLTYPE d2d_effect_context_IsBufferPrecisionSupported(ID2D1EffectContext *iface, D2D1_BUFFER_PRECISION precision)
static void STDMETHODCALLTYPE d2d_border_transform_SetExtendModeY(ID2D1BorderTransform *iface, D2D1_EXTEND_MODE mode)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_CreateBoundsAdjustmentTransform(ID2D1EffectContext *iface, const D2D1_RECT_L *output_rect, ID2D1BoundsAdjustmentTransform **transform)
static HRESULT d2d_vertex_buffer_create(ID2D1VertexBuffer **buffer)
static HRESULT STDMETHODCALLTYPE d2d_draw_info_SetPixelShaderConstantBuffer(ID2D1DrawInfo *iface, const BYTE *buffer, UINT32 size)
static ULONG STDMETHODCALLTYPE d2d_effect_image_AddRef(ID2D1Image *iface)
HRESULT d2d_effect_subproperties_add(struct d2d_effect_properties *props, const WCHAR *name, UINT32 index, D2D1_PROPERTY_TYPE type, const WCHAR *value)
static HRESULT STDMETHODCALLTYPE d2d_draw_info_SetVertexProcessing(ID2D1DrawInfo *iface, ID2D1VertexBuffer *buffer, D2D1_VERTEX_OPTIONS options, const D2D1_BLEND_DESCRIPTION *description, const D2D1_VERTEX_RANGE *range, const GUID *shader)
static void STDMETHODCALLTYPE d2d_effect_GetOutput(ID2D1Effect *iface, ID2D1Image **output)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_CreateColorContext(ID2D1EffectContext *iface, D2D1_COLOR_SPACE space, const BYTE *profile, UINT32 profile_size, ID2D1ColorContext **color_context)
static const ID2D1EffectImplVtbl d2d_effect_impl_vtbl
static void d2d_effect_cleanup(struct d2d_effect *effect)
static ULONG STDMETHODCALLTYPE d2d_effect_image_Release(ID2D1Image *iface)
struct d2d_effect_property * d2d_effect_properties_get_property_by_name(const struct d2d_effect_properties *properties, const WCHAR *name)
static void d2d_transform_graph_clear(struct d2d_transform_graph *graph)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_CreateEffect(ID2D1EffectContext *iface, REFCLSID clsid, ID2D1Effect **effect)
static HRESULT STDMETHODCALLTYPE d2d_effect_properties_GetSubProperties(ID2D1Properties *iface, UINT32 index, ID2D1Properties **props)
static HRESULT STDMETHODCALLTYPE d2d_effect_properties_SetValueByName(ID2D1Properties *iface, const WCHAR *name, D2D1_PROPERTY_TYPE type, const BYTE *value, UINT32 value_size)
static struct d2d_transform_graph * impl_from_ID2D1TransformGraph(ID2D1TransformGraph *iface)
static UINT32 STDMETHODCALLTYPE d2d_effect_properties_GetPropertyNameLength(ID2D1Properties *iface, UINT32 index)
static const ID2D1BlendTransformVtbl d2d_blend_transform_vtbl
static D2D1_PROPERTY_TYPE STDMETHODCALLTYPE d2d_effect_properties_GetType(ID2D1Properties *iface, UINT32 index)
static HRESULT STDMETHODCALLTYPE d2d_blend_transform_SetOutputBuffer(ID2D1BlendTransform *iface, D2D1_BUFFER_PRECISION precision, D2D1_CHANNEL_DEPTH depth)
static const WCHAR shadow_description[]
static UINT32 d2d_effect_properties_get_value_size(const struct d2d_effect_properties *properties, UINT32 index)
static struct d2d_render_info * impl_from_ID2D1DrawInfo(ID2D1DrawInfo *iface)
static HRESULT d2d_effect_properties_internal_add(struct d2d_effect_properties *props, const WCHAR *name, UINT32 index, BOOL subprop, D2D1_PROPERTY_TYPE type, const WCHAR *value)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_CreateBorderTransform(ID2D1EffectContext *iface, D2D1_EXTEND_MODE mode_x, D2D1_EXTEND_MODE mode_y, ID2D1BorderTransform **transform)
void d2d_effects_init_builtins(struct d2d_factory *factory)
static ULONG STDMETHODCALLTYPE d2d_transform_graph_AddRef(ID2D1TransformGraph *iface)
static D2D1_EXTEND_MODE STDMETHODCALLTYPE d2d_border_transform_GetExtendModeX(ID2D1BorderTransform *iface)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_FindResourceTexture(ID2D1EffectContext *iface, const GUID *id, ID2D1ResourceTexture **texture)
void d2d_effect_properties_cleanup(struct d2d_effect_properties *props)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_CreateTransformNodeFromEffect(ID2D1EffectContext *iface, ID2D1Effect *effect, ID2D1TransformNode **node)
static UINT32 STDMETHODCALLTYPE d2d_effect_properties_GetPropertyIndex(ID2D1Properties *iface, const WCHAR *name)
static HRESULT STDMETHODCALLTYPE d2d_transform_graph_SetOutputNode(ID2D1TransformGraph *iface, ID2D1TransformNode *object)
static UINT32 STDMETHODCALLTYPE d2d_border_transform_GetInputCount(ID2D1BorderTransform *iface)
static HRESULT STDMETHODCALLTYPE d2d_bounds_adjustment_transform_QueryInterface(ID2D1BoundsAdjustmentTransform *iface, REFIID iid, void **out)
static const ID2D1PropertiesVtbl d2d_effect_properties_vtbl
static ULONG STDMETHODCALLTYPE d2d_bounds_adjustment_transform_AddRef(ID2D1BoundsAdjustmentTransform *iface)
static HRESULT STDMETHODCALLTYPE d2d_border_transform_QueryInterface(ID2D1BorderTransform *iface, REFIID iid, void **out)
static struct d2d_transform * impl_from_ID2D1BorderTransform(ID2D1BorderTransform *iface)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_CreateColorContextFromWicColorContext(ID2D1EffectContext *iface, IWICColorContext *wic_color_context, ID2D1ColorContext **color_context)
static UINT32 STDMETHODCALLTYPE d2d_effect_GetInputCount(ID2D1Effect *iface)
static HRESULT STDMETHODCALLTYPE d2d_transform_graph_QueryInterface(ID2D1TransformGraph *iface, REFIID iid, void **out)
static HRESULT STDMETHODCALLTYPE builtin_factory_stub(IUnknown **effect_impl)
static const ID2D1TransformGraphVtbl d2d_transform_graph_vtbl
static HRESULT STDMETHODCALLTYPE d2d_effect_impl_Initialize(ID2D1EffectImpl *iface, ID2D1EffectContext *context, ID2D1TransformGraph *graph)
static HRESULT STDMETHODCALLTYPE d2d_transform_graph_SetPassthroughGraph(ID2D1TransformGraph *iface, UINT32 index)
static HRESULT STDMETHODCALLTYPE d2d_draw_info_QueryInterface(ID2D1DrawInfo *iface, REFIID iid, void **obj)
static D2D1_EXTEND_MODE STDMETHODCALLTYPE d2d_border_transform_GetExtendModeY(ID2D1BorderTransform *iface)
static ULONG STDMETHODCALLTYPE d2d_effect_impl_Release(ID2D1EffectImpl *iface)
static HRESULT STDMETHODCALLTYPE d2d_effect_properties_GetPropertyName(ID2D1Properties *iface, UINT32 index, WCHAR *name, UINT32 name_count)
static void STDMETHODCALLTYPE d2d_effect_SetInput(ID2D1Effect *iface, UINT32 index, ID2D1Image *input, BOOL invalidate)
static void d2d_transform_graph_delete_node(struct d2d_transform_graph *graph, struct d2d_transform_node *node)
static HRESULT STDMETHODCALLTYPE d2d_effect_properties_QueryInterface(ID2D1Properties *iface, REFIID riid, void **obj)
static struct d2d_transform * impl_from_ID2D1OffsetTransform(ID2D1OffsetTransform *iface)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_LoadPixelShader(ID2D1EffectContext *iface, REFGUID shader_id, const BYTE *buffer, UINT32 buffer_size)
static ULONG STDMETHODCALLTYPE d2d_blend_transform_AddRef(ID2D1BlendTransform *iface)
static ULONG STDMETHODCALLTYPE d2d_draw_info_AddRef(ID2D1DrawInfo *iface)
static struct d2d_effect_property * d2d_effect_properties_get_property_by_index(const struct d2d_effect_properties *properties, UINT32 index)
static HRESULT STDMETHODCALLTYPE d2d_transform_graph_AddNode(ID2D1TransformGraph *iface, ID2D1TransformNode *object)
static HRESULT d2d_effect_transform_graph_initialize_nodes(struct d2d_transform_graph *graph)
static const ID2D1EffectContextVtbl d2d_effect_context_vtbl
HRESULT d2d_effect_properties_add(struct d2d_effect_properties *props, const WCHAR *name, UINT32 index, D2D1_PROPERTY_TYPE type, const WCHAR *value)
static HRESULT STDMETHODCALLTYPE d2d_effect_GetValueByName(ID2D1Effect *iface, const WCHAR *name, D2D1_PROPERTY_TYPE type, BYTE *value, UINT32 value_size)
static HRESULT STDMETHODCALLTYPE d2d_transform_graph_ConnectNode(ID2D1TransformGraph *iface, ID2D1TransformNode *from_node, ID2D1TransformNode *to_node, UINT32 index)
static void STDMETHODCALLTYPE d2d_border_transform_SetCached(ID2D1BorderTransform *iface, BOOL is_cached)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_CreateColorContextFromFilename(ID2D1EffectContext *iface, const WCHAR *filename, ID2D1ColorContext **color_context)
HRESULT d2d_effect_property_get_uint32_value(const struct d2d_effect_properties *properties, const struct d2d_effect_property *prop, UINT32 *value)
static const ID2D1ImageVtbl d2d_effect_image_vtbl
static UINT32 STDMETHODCALLTYPE d2d_effect_GetPropertyCount(ID2D1Effect *iface)
static const ID2D1EffectVtbl d2d_effect_vtbl
static HRESULT STDMETHODCALLTYPE d2d_effect_SetValue(ID2D1Effect *iface, UINT32 index, D2D1_PROPERTY_TYPE type, const BYTE *value, UINT32 value_size)
static HRESULT STDMETHODCALLTYPE d2d_vertex_buffer_Unmap(ID2D1VertexBuffer *iface)
static const ID2D1BoundsAdjustmentTransformVtbl d2d_bounds_adjustment_transform_vtbl
static ULONG STDMETHODCALLTYPE d2d_bounds_adjustment_transform_Release(ID2D1BoundsAdjustmentTransform *iface)
static HRESULT STDMETHODCALLTYPE d2d_effect_context_GetMaximumSupportedFeatureLevel(ID2D1EffectContext *iface, const D3D_FEATURE_LEVEL *levels, UINT32 level_count, D3D_FEATURE_LEVEL *max_level)
static HRESULT STDMETHODCALLTYPE d2d_effect_properties_SetValue(ID2D1Properties *iface, UINT32 index, D2D1_PROPERTY_TYPE type, const BYTE *value, UINT32 value_size)
static BOOL STDMETHODCALLTYPE d2d_effect_context_IsShaderLoaded(ID2D1EffectContext *iface, REFGUID shader_id)
static HRESULT d2d_blend_transform_create(UINT32 input_count, const D2D1_BLEND_DESCRIPTION *blend_desc, ID2D1BlendTransform **transform)
static HRESULT STDMETHODCALLTYPE d2d_blend_transform_QueryInterface(ID2D1BlendTransform *iface, REFIID iid, void **out)
static HRESULT STDMETHODCALLTYPE d2d_draw_info_SetPixelShader(ID2D1DrawInfo *iface, REFGUID id, D2D1_PIXEL_OPTIONS options)
static void STDMETHODCALLTYPE d2d_blend_transform_SetDescription(ID2D1BlendTransform *iface, const D2D1_BLEND_DESCRIPTION *description)
static void STDMETHODCALLTYPE d2d_effect_context_GetDpi(ID2D1EffectContext *iface, float *dpi_x, float *dpi_y)
static UINT32 STDMETHODCALLTYPE d2d_bounds_adjustment_transform_GetInputCount(ID2D1BoundsAdjustmentTransform *iface)
static ULONG STDMETHODCALLTYPE d2d_effect_impl_AddRef(ID2D1EffectImpl *iface)
static const WCHAR composite_description[]
static HRESULT STDMETHODCALLTYPE d2d_transform_graph_ConnectToEffectInput(ID2D1TransformGraph *iface, UINT32 input_index, ID2D1TransformNode *object, UINT32 node_index)
static void STDMETHODCALLTYPE d2d_transform_graph_Clear(ID2D1TransformGraph *iface)
static HRESULT d2d_effect_render_info_create(struct d2d_render_info **obj)
static const WCHAR crop_description[]
static ULONG STDMETHODCALLTYPE d2d_border_transform_AddRef(ID2D1BorderTransform *iface)
static void STDMETHODCALLTYPE d2d_draw_info_SetCached(ID2D1DrawInfo *iface, BOOL is_cached)
static HRESULT STDMETHODCALLTYPE d2d_effect_SetValueByName(ID2D1Effect *iface, const WCHAR *name, D2D1_PROPERTY_TYPE type, const BYTE *value, UINT32 value_size)
static ULONG STDMETHODCALLTYPE d2d_offset_transform_Release(ID2D1OffsetTransform *iface)
static ULONG STDMETHODCALLTYPE d2d_draw_info_Release(ID2D1DrawInfo *iface)
static HRESULT d2d_transform_graph_create(UINT32 input_count, struct d2d_transform_graph **graph)
static void STDMETHODCALLTYPE d2d_bounds_adjustment_transform_SetOutputBounds(ID2D1BoundsAdjustmentTransform *iface, const D2D1_RECT_L *bounds)
static const ID2D1DrawInfoVtbl d2d_draw_info_vtbl
static HRESULT d2d_border_transform_create(D2D1_EXTEND_MODE mode_x, D2D1_EXTEND_MODE mode_y, ID2D1BorderTransform **transform)
static ULONG STDMETHODCALLTYPE d2d_blend_transform_Release(ID2D1BlendTransform *iface)
static void d2d_transform_node_disconnect(struct d2d_transform_node *node)
INT WINAPI StringFromGUID2(REFGUID guid, LPOLESTR str, INT cmax)
HRESULT WINAPI CLSIDFromString(LPCOLESTR str, LPCLSID clsid)
_ACRTIMP float __cdecl wcstof(const wchar_t *, wchar_t **)
_ACRTIMP __msvcrt_ulong __cdecl wcstoul(const wchar_t *, wchar_t **, int)
_ACRTIMP size_t __cdecl wcslen(const wchar_t *)
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
static wchar_t * wcsdup(const wchar_t *str)
GLint GLint GLsizei GLsizei GLsizei depth
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLuint GLenum GLenum transform
GLenum GLint GLint * precision
GLenum GLenum GLenum input
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define memcpy(s1, s2, n)
INTERNETFEATURELIST feature
static const struct @662 sizes[]
#define IsEqualGUID(rguid1, rguid2)
static __inline const char * wine_dbgstr_guid(const GUID *id)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
wchar_t const *const size_t const buffer_size
ID2D1EffectContext ID2D1EffectContext_iface
struct d2d_device_context * device_context
struct d2d_effect_property * properties
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
ID2D1Image ID2D1Image_iface
ID2D1Effect ID2D1Effect_iface
struct d2d_effect_properties properties
struct d2d_effect_context * effect_context
struct d2d_transform_graph * graph
ID2D1DrawInfo ID2D1DrawInfo_iface
ID2D1VertexBuffer ID2D1VertexBuffer_iface
#define CONTAINING_RECORD(address, type, field)
static const WCHAR props[]
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
#define D2DERR_EFFECT_IS_NOT_REGISTERED
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
#define D2DERR_INVALID_PROPERTY
#define D2DERR_NO_SUBPROPERTIES