RGBA_Image * evas_outbuf_new_region_for_update(Outbuf *ob, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch) { if (ob->priv.buffer) { *cx = x; *cy = y; *cw = w; *ch = h; return ob->priv.buffer; } else { RGBA_Image *im; *cx = 0; *cy = 0; *cw = w; *ch = h; im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get()); if (im) { im->cache_entry.flags.alpha = ob->priv.destination_alpha; im = (RGBA_Image *)evas_cache_image_size_set(&im->cache_entry, w, h); } return im; } return NULL; }
RGBA_Image * evas_fb_outbuf_fb_new_region_for_update(Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch) { if (buf->priv.back_buf) { *cx = x; *cy = y; *cw = w; *ch = h; return buf->priv.back_buf; } else { RGBA_Image *im; *cx = 0; *cy = 0; *cw = w; *ch = h; im = (RGBA_Image *) evas_cache_image_empty(evas_common_image_cache_get()); im->cache_entry.flags.alpha = 1; im = (RGBA_Image *) evas_cache_image_size_set(&im->cache_entry, w, h); return im; } return NULL; }
void evas_fb_outbuf_fb_set_have_backbuf(Outbuf *buf, int have_backbuf) { if (buf->priv.back_buf) { if (have_backbuf) return; evas_cache_image_drop(&buf->priv.back_buf->cache_entry); buf->priv.back_buf = NULL; } else { if (!have_backbuf) return; if (buf->priv.fb.fb) { if (buf->priv.fb.fb->fb_var.bits_per_pixel < 24) { buf->priv.back_buf = (RGBA_Image *) evas_cache_image_empty(evas_common_image_cache_get()); buf->priv.back_buf = (RGBA_Image *) evas_cache_image_size_set(&buf->priv.back_buf->cache_entry, buf->w, buf->h); } } } }
void * evas_buffer_outbuf_buf_new_region_for_update(Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch) { RGBA_Image *im; if (buf->priv.back_buf) { *cx = x; *cy = y; *cw = w; *ch = h; return buf->priv.back_buf; } else { *cx = 0; *cy = 0; *cw = w; *ch = h; #ifdef EVAS_CSERVE2 if (evas_cserve2_use_get()) im = (RGBA_Image *)evas_cache2_image_empty(evas_common_image_cache2_get()); else #endif im = (RGBA_Image *) evas_cache_image_empty(evas_common_image_cache_get()); if (im) { if (((buf->depth == OUTBUF_DEPTH_ARGB_32BPP_8888_8888)) || ((buf->depth == OUTBUF_DEPTH_BGRA_32BPP_8888_8888))) { im->cache_entry.flags.alpha = 1; } #ifdef EVAS_CSERVE2 if (evas_cserve2_use_get()) evas_cache2_image_size_set(&im->cache_entry, w, h); else #endif im = (RGBA_Image *) evas_cache_image_size_set(&im->cache_entry, w, h); } } return im; }