forked from enlightenment/efl
parent
beb924c23e
commit
c96c2d8d50
|
@ -53,6 +53,7 @@ evas_engine_directfb_image_load(void *data, char *file, char *key, int *error)
|
||||||
|
|
||||||
/* Image is not in cache or not already used -> create it */
|
/* Image is not in cache or not already used -> create it */
|
||||||
re->dfb->CreateImageProvider(re->dfb, file, &provider);
|
re->dfb->CreateImageProvider(re->dfb, file, &provider);
|
||||||
|
if (!provider) return NULL;
|
||||||
provider->GetSurfaceDescription(provider, &dsc);
|
provider->GetSurfaceDescription(provider, &dsc);
|
||||||
provider->GetImageDescription(provider, &img_desc);
|
provider->GetImageDescription(provider, &img_desc);
|
||||||
|
|
||||||
|
@ -60,6 +61,11 @@ evas_engine_directfb_image_load(void *data, char *file, char *key, int *error)
|
||||||
dsc.pixelformat = DSPF_ARGB;
|
dsc.pixelformat = DSPF_ARGB;
|
||||||
|
|
||||||
re->dfb->CreateSurface(re->dfb, &dsc, &image);
|
re->dfb->CreateSurface(re->dfb, &dsc, &image);
|
||||||
|
if (!image)
|
||||||
|
{
|
||||||
|
provider->Release(provider);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
provider->RenderTo(provider, image, NULL);
|
provider->RenderTo(provider, image, NULL);
|
||||||
provider->Release(provider);
|
provider->Release(provider);
|
||||||
|
|
||||||
|
@ -67,6 +73,7 @@ evas_engine_directfb_image_load(void *data, char *file, char *key, int *error)
|
||||||
im->image = evas_common_image_surface_new();
|
im->image = evas_common_image_surface_new();
|
||||||
if (!im->image)
|
if (!im->image)
|
||||||
{
|
{
|
||||||
|
image->Release(image);
|
||||||
_dfb_image_free(im);
|
_dfb_image_free(im);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue