diff options
Diffstat (limited to '')
-rw-r--r-- | libraries/evas/src/lib/canvas/evas_render.c | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/libraries/evas/src/lib/canvas/evas_render.c b/libraries/evas/src/lib/canvas/evas_render.c index 0abee97..cdedaec 100644 --- a/libraries/evas/src/lib/canvas/evas_render.c +++ b/libraries/evas/src/lib/canvas/evas_render.c | |||
@@ -1139,7 +1139,7 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface, | |||
1139 | } | 1139 | } |
1140 | } | 1140 | } |
1141 | } | 1141 | } |
1142 | if (surface == e->engine.data.output) | 1142 | // if (surface == e->engine.data.output) |
1143 | e->engine.func->context_clip_clip(e->engine.data.output, | 1143 | e->engine.func->context_clip_clip(e->engine.data.output, |
1144 | e->engine.data.context, | 1144 | e->engine.data.context, |
1145 | ecx, ecy, ecw, ech); | 1145 | ecx, ecy, ecw, ech); |
@@ -1360,6 +1360,8 @@ evas_render_updates_internal(Evas *e, | |||
1360 | 1360 | ||
1361 | RD("[--- RENDER EVAS (size: %ix%i)\n", e->viewport.w, e->viewport.h); | 1361 | RD("[--- RENDER EVAS (size: %ix%i)\n", e->viewport.w, e->viewport.h); |
1362 | 1362 | ||
1363 | evas_event_callback_call(e, EVAS_CALLBACK_RENDER_PRE, NULL); | ||
1364 | |||
1363 | /* Check if the modified object mean recalculating every thing */ | 1365 | /* Check if the modified object mean recalculating every thing */ |
1364 | if (!e->invalidate) | 1366 | if (!e->invalidate) |
1365 | _evas_render_check_pending_objects(&e->pending_objects, e); | 1367 | _evas_render_check_pending_objects(&e->pending_objects, e); |
@@ -1399,6 +1401,7 @@ evas_render_updates_internal(Evas *e, | |||
1399 | _evas_render_prev_cur_clip_cache_add(e, obj); | 1401 | _evas_render_prev_cur_clip_cache_add(e, obj); |
1400 | } | 1402 | } |
1401 | eina_array_clean(&e->restack_objects); | 1403 | eina_array_clean(&e->restack_objects); |
1404 | |||
1402 | /* phase 3. add exposes */ | 1405 | /* phase 3. add exposes */ |
1403 | EINA_LIST_FREE(e->damages, r) | 1406 | EINA_LIST_FREE(e->damages, r) |
1404 | { | 1407 | { |
@@ -1406,7 +1409,20 @@ evas_render_updates_internal(Evas *e, | |||
1406 | r->x, r->y, r->w, r->h); | 1409 | r->x, r->y, r->w, r->h); |
1407 | eina_rectangle_free(r); | 1410 | eina_rectangle_free(r); |
1408 | } | 1411 | } |
1409 | /* phase 4. output & viewport changes */ | 1412 | |
1413 | /* phase 4. framespace, output & viewport changes */ | ||
1414 | if (e->framespace.changed) | ||
1415 | { | ||
1416 | int fx, fy, fw, fh; | ||
1417 | |||
1418 | fx = e->viewport.x - e->framespace.x; | ||
1419 | fy = e->viewport.y - e->framespace.y; | ||
1420 | fw = e->viewport.w + e->framespace.w; | ||
1421 | fh = e->viewport.h + e->framespace.h; | ||
1422 | e->engine.func->output_redraws_rect_add(e->engine.data.output, | ||
1423 | fx, fy, fw, fh); | ||
1424 | } | ||
1425 | |||
1410 | if (e->viewport.changed) | 1426 | if (e->viewport.changed) |
1411 | { | 1427 | { |
1412 | e->engine.func->output_redraws_rect_add(e->engine.data.output, | 1428 | e->engine.func->output_redraws_rect_add(e->engine.data.output, |
@@ -1431,6 +1447,7 @@ evas_render_updates_internal(Evas *e, | |||
1431 | 0, 0, | 1447 | 0, 0, |
1432 | e->output.w, e->output.h); | 1448 | e->output.w, e->output.h); |
1433 | } | 1449 | } |
1450 | |||
1434 | /* phase 5. add obscures */ | 1451 | /* phase 5. add obscures */ |
1435 | EINA_LIST_FOREACH(e->obscures, ll, r) | 1452 | EINA_LIST_FOREACH(e->obscures, ll, r) |
1436 | { | 1453 | { |
@@ -1562,13 +1579,6 @@ evas_render_updates_internal(Evas *e, | |||
1562 | else | 1579 | else |
1563 | e->engine.func->context_mask_unset(e->engine.data.output, | 1580 | e->engine.func->context_mask_unset(e->engine.data.output, |
1564 | e->engine.data.context); | 1581 | e->engine.data.context); |
1565 | if (obj->cur.clipper) | ||
1566 | e->engine.func->context_clip_set(e->engine.data.output, | ||
1567 | e->engine.data.context, | ||
1568 | x, y, w, h); | ||
1569 | else | ||
1570 | e->engine.func->context_clip_unset(e->engine.data.output, | ||
1571 | e->engine.data.context); | ||
1572 | #if 1 /* FIXME: this can slow things down... figure out optimum... coverage */ | 1582 | #if 1 /* FIXME: this can slow things down... figure out optimum... coverage */ |
1573 | for (j = offset; j < e->temporary_objects.count; ++j) | 1583 | for (j = offset; j < e->temporary_objects.count; ++j) |
1574 | { | 1584 | { |
@@ -1671,6 +1681,7 @@ evas_render_updates_internal(Evas *e, | |||
1671 | e->changed = 0; | 1681 | e->changed = 0; |
1672 | e->viewport.changed = 0; | 1682 | e->viewport.changed = 0; |
1673 | e->output.changed = 0; | 1683 | e->output.changed = 0; |
1684 | e->framespace.changed = 0; | ||
1674 | e->invalidate = 0; | 1685 | e->invalidate = 0; |
1675 | 1686 | ||
1676 | /* If their are some object to restack or some object to delete, | 1687 | /* If their are some object to restack or some object to delete, |
@@ -1686,6 +1697,8 @@ evas_render_updates_internal(Evas *e, | |||
1686 | } | 1697 | } |
1687 | 1698 | ||
1688 | evas_module_clean(); | 1699 | evas_module_clean(); |
1700 | |||
1701 | evas_event_callback_call(e, EVAS_CALLBACK_RENDER_POST, NULL); | ||
1689 | 1702 | ||
1690 | RD("---]\n"); | 1703 | RD("---]\n"); |
1691 | 1704 | ||