summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2013-09-24 18:18:53 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2013-10-28 11:09:26 +0900
commitc1ab8f112bebfa8b25648e4290b1a49003f098fa (patch)
tree3f7ffe566f91fb7433ef3644f9bed99733e025fd
parentf092e1cb6caf60b9abcc0ad10365e7b42da2293c (diff)
downloadefl-c1ab8f112bebfa8b25648e4290b1a49003f098fa.tar.gz
evas/cserve2: Add alpha flag to Image_data
-rw-r--r--src/bin/evas/evas_cserve2.h1
-rw-r--r--src/bin/evas/evas_cserve2_cache.c14
-rw-r--r--src/bin/evas/evas_cserve2_slave.c1
-rw-r--r--src/lib/evas/cserve2/evas_cs2.h2
4 files changed, 7 insertions, 11 deletions
diff --git a/src/bin/evas/evas_cserve2.h b/src/bin/evas/evas_cserve2.h
index 2a3a40eb67..158eefda3d 100644
--- a/src/bin/evas/evas_cserve2.h
+++ b/src/bin/evas/evas_cserve2.h
@@ -146,6 +146,7 @@ struct _Slave_Msg_Image_Load {
struct _Slave_Msg_Image_Loaded {
int w, h;
+ Eina_Bool alpha : 1;
Eina_Bool alpha_sparse : 1;
};
diff --git a/src/bin/evas/evas_cserve2_cache.c b/src/bin/evas/evas_cserve2_cache.c
index e86643df54..d0589dd4b8 100644
--- a/src/bin/evas/evas_cserve2_cache.c
+++ b/src/bin/evas/evas_cserve2_cache.c
@@ -508,6 +508,7 @@ _image_loaded_msg_create(Image_Entry *ientry, Image_Data *idata, int *size)
msg->alpha_sparse = idata->alpha_sparse;
msg->image.w = idata->w;
msg->image.h = idata->h;
+ msg->alpha = idata->alpha;
if (idata->shm_id)
{
@@ -806,18 +807,8 @@ _scaling_do(Shm_Handle *scale_shm, Image_Data *idata, Image_Entry *original)
{
char *scale_map, *orig_map;
void *src_data, *dst_data;
- File_Data *fd;
Image_Data *orig_idata;
-#warning FIXME Remove this call, add alpha flag to Image_Data
- fd = _file_data_find(idata->file_id);
- if (!fd)
- {
- ERR("Could not find file data %u for image %u",
- idata->file_id, idata->id);
- return -1;
- }
-
orig_idata = _image_data_find(original->base.id);
if (!orig_idata)
{
@@ -858,7 +849,7 @@ _scaling_do(Shm_Handle *scale_shm, Image_Data *idata, Image_Entry *original)
idata->opts.scale_load.src_w, idata->opts.scale_load.src_h,
0, 0,
idata->opts.scale_load.dst_w, idata->opts.scale_load.dst_h,
- fd->alpha, idata->opts.scale_load.smooth);
+ idata->alpha, idata->opts.scale_load.smooth);
cserve2_shm_unmap(original->shm);
cserve2_shm_unmap(scale_shm);
@@ -906,6 +897,7 @@ _load_request_response(Image_Entry *ientry,
_entry_load_finish(ASENTRY(ientry));
ASENTRY(ientry)->request = NULL;
+ idata->alpha = resp->alpha;
idata->alpha_sparse = resp->alpha_sparse;
if (!idata->doload)
DBG("Entry %d loaded by speculative preload.", idata->id);
diff --git a/src/bin/evas/evas_cserve2_slave.c b/src/bin/evas/evas_cserve2_slave.c
index 963a1dba76..43fc3a5b19 100644
--- a/src/bin/evas/evas_cserve2_slave.c
+++ b/src/bin/evas/evas_cserve2_slave.c
@@ -456,6 +456,7 @@ image_load(const char *file, const char *key, const char *shmfile,
result->w = property.w;
result->h = property.h;
+ result->alpha = property.alpha;
if (property.alpha && property.premul)
{
diff --git a/src/lib/evas/cserve2/evas_cs2.h b/src/lib/evas/cserve2/evas_cs2.h
index 5378790999..7dcd441e99 100644
--- a/src/lib/evas/cserve2/evas_cs2.h
+++ b/src/lib/evas/cserve2/evas_cs2.h
@@ -93,6 +93,7 @@ struct _Msg_Loaded {
struct {
unsigned int w, h; // Real dimensions of this image. May differ from Msg_Opened::image::{w,h} after scaling.
} image;
+ Eina_Bool alpha : 1;
Eina_Bool alpha_sparse : 1;
};
@@ -358,6 +359,7 @@ struct _Image_Data {
string_t shm_id;
Evas_Image_Load_Opts opts;
uint32_t w, h;
+ Eina_Bool alpha : 1;
Eina_Bool alpha_sparse : 1;
Eina_Bool unused : 1;
Eina_Bool doload : 1;