static void STDMETHODCALLTYPE d2d_bitmap_brush_GetBitmap(ID2D1BitmapBrush *iface, ID2D1Bitmap **bitmap) { struct d2d_brush *brush = impl_from_ID2D1BitmapBrush(iface); TRACE("iface %p, bitmap %p.\n", iface, bitmap); if ((*bitmap = &brush->u.bitmap.bitmap->ID2D1Bitmap_iface)) ID2D1Bitmap_AddRef(*bitmap); }
static void STDMETHODCALLTYPE d2d_bitmap_brush_SetBitmap(ID2D1BitmapBrush *iface, ID2D1Bitmap *bitmap) { struct d2d_brush *brush = impl_from_ID2D1BitmapBrush(iface); TRACE("iface %p, bitmap %p.\n", iface, bitmap); if (bitmap) ID2D1Bitmap_AddRef(bitmap); if (brush->u.bitmap.bitmap) ID2D1Bitmap_Release(&brush->u.bitmap.bitmap->ID2D1Bitmap_iface); brush->u.bitmap.bitmap = unsafe_impl_from_ID2D1Bitmap(bitmap); }
static HRESULT STDMETHODCALLTYPE d2d_bitmap_QueryInterface(ID2D1Bitmap *iface, REFIID iid, void **out) { TRACE("iface %p, iid %s, out %p.\n", iface, debugstr_guid(iid), out); if (IsEqualGUID(iid, &IID_ID2D1Bitmap) || IsEqualGUID(iid, &IID_ID2D1Resource) || IsEqualGUID(iid, &IID_IUnknown)) { ID2D1Bitmap_AddRef(iface); *out = iface; return S_OK; } WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(iid)); *out = NULL; return E_NOINTERFACE; }
void d2d_bitmap_brush_init(struct d2d_brush *brush, ID2D1Factory *factory, ID2D1Bitmap *bitmap, const D2D1_BITMAP_BRUSH_PROPERTIES *bitmap_brush_desc, const D2D1_BRUSH_PROPERTIES *brush_desc) { d2d_brush_init(brush, factory, D2D_BRUSH_TYPE_BITMAP, brush_desc, (ID2D1BrushVtbl *)&d2d_bitmap_brush_vtbl); if ((brush->u.bitmap.bitmap = unsafe_impl_from_ID2D1Bitmap(bitmap))) ID2D1Bitmap_AddRef(&brush->u.bitmap.bitmap->ID2D1Bitmap_iface); if (bitmap_brush_desc) { brush->u.bitmap.extend_mode_x = bitmap_brush_desc->extendModeX; brush->u.bitmap.extend_mode_y = bitmap_brush_desc->extendModeY; brush->u.bitmap.interpolation_mode = bitmap_brush_desc->interpolationMode; } else { brush->u.bitmap.extend_mode_x = D2D1_EXTEND_MODE_CLAMP; brush->u.bitmap.extend_mode_y = D2D1_EXTEND_MODE_CLAMP; brush->u.bitmap.interpolation_mode = D2D1_BITMAP_INTERPOLATION_MODE_LINEAR; } }