+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifdef EVAS_CSERVE2
+# include "evas_cs2_private.h"
+#endif
+
#include "evas_common.h"
#include "evas_engine.h"
evas_outbuf_free(Outbuf *ob)
{
if (!ob) return;
- if (ob->priv.buffer) evas_cache_image_drop(&ob->priv.buffer->cache_entry);
+ if (ob->priv.buffer)
+ {
+#ifdef EVAS_CSERVE2
+ if (evas_cserve2_use_get())
+ evas_cache2_image_close(&ob->priv.buffer->cache_entry);
+ else
+#endif
+ evas_cache_image_drop(&ob->priv.buffer->cache_entry);
+ }
+
free(ob);
}
if ((ob->w == w) && (ob->h == h)) return;
ob->w = w;
ob->h = h;
- if (ob->priv.buffer) evas_cache_image_drop(&ob->priv.buffer->cache_entry);
+ if (ob->priv.buffer)
+ {
+#ifdef EVAS_CSERVE2
+ if (evas_cserve2_use_get())
+ evas_cache2_image_close(&ob->priv.buffer->cache_entry);
+ else
+#endif
+ evas_cache_image_drop(&ob->priv.buffer->cache_entry);
+ }
ob->priv.buffer = NULL;
}
ob->priv.dest = dest;
ob->priv.destination_alpha = alpha;
- ob->priv.buffer =
- (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(),
- w, h, ob->priv.dest,
- 1, EVAS_COLORSPACE_ARGB8888);
+#ifdef EVAS_CSERVE2
+ if (evas_cserve2_use_get())
+ {
+ ob->priv.buffer =
+ (RGBA_Image *)evas_cache2_image_data(evas_common_image_cache2_get(),
+ w, h, ob->priv.dest,
+ 1, EVAS_COLORSPACE_ARGB8888);
+ }
+ else
+#endif
+ {
+ ob->priv.buffer =
+ (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(),
+ w, h, ob->priv.dest,
+ 1, EVAS_COLORSPACE_ARGB8888);
+ }
return ob;
}
RGBA_Image *im;
*cx = 0; *cy = 0; *cw = w; *ch = h;
- im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
+#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)
{
im->cache_entry.flags.alpha = ob->priv.destination_alpha;
- im = (RGBA_Image *)evas_cache_image_size_set(&im->cache_entry, w, h);
+#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;
}
void
-evas_outbuf_push_updated_region(Outbuf *ob, RGBA_Image *update, int x __UNUSED__, int y, int w, int h)
+evas_outbuf_push_updated_region(Outbuf *ob, RGBA_Image *update, int x, int y, int w, int h)
{
+ DATA32 *dst, *src, *dest;
+ int bytes = 0;
+
if (!ob->priv.dest) return;
+
+ bytes = ((w * sizeof(int)) * h);
+ dest = (DATA32 *)((DATA8 *)(ob->priv.dest) + (y * bytes) + (x * 4));
+ /* if (ob->func.new_update_region) */
+ /* { */
+ /* dest = ob->func.new_update_region(x, y, w, h, &bytes); */
+ /* } */
+
if (!ob->priv.buffer)
{
Gfx_Func_Copy func;
func = evas_common_draw_func_copy_get(w, 0);
if (func)
{
- DATA32 *dst, *src;
- int yy = 0, bytes = 0;
+ int yy = 0;
- bytes = ((w * sizeof(int)) * h);
for (yy = 0; yy < h; yy++)
{
src = update->image.data + (yy * update->cache_entry.w);
}
}
}
+ /* if (ob->func.free_update_region) */
+ /* ob->func.free_update_region(x, y, w, h, dest); */
}
void
evas_outbuf_free_region_for_update(Outbuf *ob, RGBA_Image *update)
{
if (!ob) return;
- if (update != ob->priv.buffer) evas_cache_image_drop(&update->cache_entry);
+ if (update != ob->priv.buffer)
+ {
+#ifdef EVAS_CSERVE2
+ if (evas_cserve2_use_get())
+ evas_cache2_image_close(&update->cache_entry);
+ else
+#endif
+ evas_cache_image_drop(&update->cache_entry);
+ }
}