Example #1
0
WD_HCACHEDIMAGE
wdCreateCachedImage(WD_HCANVAS hCanvas, WD_HIMAGE hImage)
{
    if(d2d_enabled()) {
        d2d_canvas_t* c = (d2d_canvas_t*) hCanvas;
        ID2D1Bitmap* b;
        HRESULT hr;

        hr = ID2D1RenderTarget_CreateBitmapFromWicBitmap(c->target,
                (IWICBitmapSource*) hImage, NULL, &b);
        if(FAILED(hr)) {
            WD_TRACE_HR("wdCreateCachedImage: "
                        "ID2D1RenderTarget::CreateBitmapFromWicBitmap() failed.");
            return NULL;
        }

        return (WD_HCACHEDIMAGE) b;
    } else {
        gdix_canvas_t* c = (gdix_canvas_t*) hCanvas;
        dummy_GpCachedBitmap* cb;
        int status;

        status = gdix_vtable->fn_CreateCachedBitmap((dummy_GpImage*) hImage,
                 c->graphics, &cb);
        if(status != 0) {
            WD_TRACE("wdCreateCachedImage: "
                     "GdipCreateCachedBitmap() failed. [%d]", status);
            return NULL;
        }

        return (WD_HCACHEDIMAGE) cb;
    }
}
Example #2
0
static HRESULT STDMETHODCALLTYPE d2d_dc_render_target_CreateBitmapFromWicBitmap(ID2D1DCRenderTarget *iface,
        IWICBitmapSource *bitmap_source, const D2D1_BITMAP_PROPERTIES *desc, ID2D1Bitmap **bitmap)
{
    struct d2d_dc_render_target *render_target = impl_from_ID2D1DCRenderTarget(iface);

    TRACE("iface %p, bitmap_source %p, desc %p, bitmap %p.\n",
            iface, bitmap_source, desc, bitmap);

    return ID2D1RenderTarget_CreateBitmapFromWicBitmap(render_target->dxgi_target, bitmap_source, desc, bitmap);
}