o->engine_data = obj->layer->evas->engine.func->image_new_from_copied_data
(obj->layer->evas->engine.data.output, w, h, NULL, o->cur.has_alpha,
o->cur.cspace);
- printf("size set %i %i -> %p\n", w, h, o->engine_data);
if (o->engine_data)
{
o->engine_data,
for_writing,
&data);
- if (obj->layer->evas->engine.func->image_stride_get)
- obj->layer->evas->engine.func->image_stride_get(obj->layer->evas->engine.data.output,
- o->engine_data, &o->cur.image.stride);
+ if (o->engine_data)
+ {
+ if (obj->layer->evas->engine.func->image_stride_get)
+ obj->layer->evas->engine.func->image_stride_get(obj->layer->evas->engine.data.output,
+ o->engine_data, &o->cur.image.stride);
+ }
o->pixels_checked_out++;
if (for_writing)
{
MAGIC_CHECK_END();
if (o->scale_hint == hint) return;
#ifdef EVAS_FRAME_QUEUING
- if (o->scale_hint != hint)
- {
- if (o->engine_data)
- evas_common_pipe_op_image_flush(o->engine_data);
- }
+ if (o->engine_data)
+ evas_common_pipe_op_image_flush(o->engine_data);
#endif
o->scale_hint = hint;
- if (obj->layer->evas->engine.func->image_scale_hint_set)
- obj->layer->evas->engine.func->image_scale_hint_set
- (obj->layer->evas->engine.data.output,
- o->engine_data, o->scale_hint);
- if (obj->layer->evas->engine.func->image_stride_get)
- obj->layer->evas->engine.func->image_stride_get(obj->layer->evas->engine.data.output,
- o->engine_data, &o->cur.image.stride);
+ if (o->engine_data)
+ {
+ if (obj->layer->evas->engine.func->image_scale_hint_set)
+ obj->layer->evas->engine.func->image_scale_hint_set
+ (obj->layer->evas->engine.data.output,
+ o->engine_data, o->scale_hint);
+ if (obj->layer->evas->engine.func->image_stride_get)
+ obj->layer->evas->engine.func->image_stride_get(obj->layer->evas->engine.data.output,
+ o->engine_data, &o->cur.image.stride);
+ }
}
/**
MAGIC_CHECK_END();
if (o->content_hint == hint) return;
#ifdef EVAS_FRAME_QUEUING
- if (o->content_hint != hint)
- {
- if (o->engine_data)
- evas_common_pipe_op_image_flush(o->engine_data);
- }
+ if (o->engine_data)
+ evas_common_pipe_op_image_flush(o->engine_data);
#endif
- printf("content hint!!!!\n");
o->content_hint = hint;
- if (obj->layer->evas->engine.func->image_content_hint_set)
- obj->layer->evas->engine.func->image_content_hint_set
- (obj->layer->evas->engine.data.output,
- o->engine_data, o->content_hint);
- if (obj->layer->evas->engine.func->image_stride_get)
- obj->layer->evas->engine.func->image_stride_get(obj->layer->evas->engine.data.output,
- o->engine_data, &o->cur.image.stride);
+ if (o->engine_data)
+ {
+ if (obj->layer->evas->engine.func->image_content_hint_set)
+ obj->layer->evas->engine.func->image_content_hint_set
+ (obj->layer->evas->engine.data.output,
+ o->engine_data, o->content_hint);
+ if (obj->layer->evas->engine.func->image_stride_get)
+ obj->layer->evas->engine.func->image_stride_get(obj->layer->evas->engine.data.output,
+ o->engine_data, &o->cur.image.stride);
+ }
}
/**
re = (Render_Engine *)data;
if (!image) return NULL;
im = image;
+ if (im->alpha == has_alpha) return image;
if (im->native.data)
{
im->alpha = has_alpha;
return image;
}
eng_window_use(re->win);
+ if ((im->tex) && (im->tex->pt->dyn.img))
+ {
+ im->alpha = has_alpha;
+ im->tex->alpha = im->alpha;
+ return image;
+ }
/* FIXME: can move to gl_common */
if (im->cs.space != EVAS_COLORSPACE_ARGB8888) return im;
if ((has_alpha) && (im->im->cache_entry.flags.alpha)) return image;
return gim->content_hint;
}
-static int
-eng_image_stride_get(void *data, void *image)
+static void
+eng_image_stride_get(void *data, void *image, int *stride)
{
Render_Engine *re = (Render_Engine *)data;
Evas_GL_Image *im = image;
- if ((im->tex) && (im->tex->pt->dyn.img)) return im->tex->pt->dyn.w;
- return im->w;
+ *stride = im->w;
+ if ((im->tex) && (im->tex->pt->dyn.img)) *stride = im->tex->pt->dyn.w;
}
static void