obj->cur.geometry.y + off_y,
obj->cur.geometry.w,
obj->cur.geometry.h);
+ RECTS_CLIP_TO_RECT(x, y, w, h,
+ obj->cur.cache.clip.x + off_x,
+ obj->cur.cache.clip.y + off_y,
+ obj->cur.cache.clip.w,
+ obj->cur.cache.clip.h);
e->engine.func->context_clip_set(e->engine.data.output,
ctx, x, y, w, h);
obj->func->render(obj, e->engine.data.output, ctx,
}
}
else
- obj->func->render(obj, e->engine.data.output, ctx,
- surface, off_x, off_y);
+ {
+ e->engine.func->context_clip_set(e->engine.data.output,
+ ctx,
+ obj->cur.cache.clip.x + off_x,
+ obj->cur.cache.clip.y + off_y,
+ obj->cur.cache.clip.w,
+ obj->cur.cache.clip.h);
+ obj->func->render(obj, e->engine.data.output, ctx,
+ surface, off_x, off_y);
+ }
e->engine.func->context_free(e->engine.data.output, ctx);
}
else