Ewk_Paint_Context* ewk_paint_context_from_image_new(Evas_Object* image) { EINA_SAFETY_ON_NULL_RETURN_VAL(image, 0); Evas_Coord width, height; uint8_t* pixels = static_cast<uint8_t*>(evas_object_image_data_get(image, true)); evas_object_image_size_get(image, &width, &height); Ewk_Paint_Context* context = ewk_paint_context_from_image_data_new(pixels, width, height, EVAS_COLORSPACE_ARGB8888); if (context) { context->pixels = pixels; context->image = image; } return context; }
static bool _ewk_view_tiled_render_cb(void* data, Ewk_Tile* tile, const Eina_Rectangle* area) { Ewk_View_Private_Data* priv = static_cast<Ewk_View_Private_Data*>(data); Eina_Rectangle rect = {area->x + tile->x, area->y + tile->y, area->w, area->h}; uint8_t* pixels = static_cast<uint8_t*>(evas_object_image_data_get(tile->image, true)); Ewk_Paint_Context* context = ewk_paint_context_from_image_data_new(pixels, tile->width, tile->height, tile->cspace); ewk_paint_context_translate(context, -tile->x, -tile->y); bool result = ewk_view_paint_contents(priv, context, &rect); ewk_paint_context_free(context); evas_object_image_data_set(tile->image, pixels); return result; }