- // s->set_destination_rectangle(0, 0, c->output_size.w, c->output_size.h);
- // s->set_source_rectangle(0, 100, c->output_size.w, c->output_size.h - 200);
- if (layer_id != 1000) {
- // s->set_source_rectangle(0, 0, c->output_size.w, c->output_size.h - 200);
- s->set_configuration(c->output_size.w, c->output_size.h - 200);
- s->set_destination_rectangle(0, 100, c->output_size.w,
- c->output_size.h - 200);
- } else {
- // s->set_source_rectangle(0, 0, c->output_size.w, c->output_size.h);
- s->set_configuration(c->output_size.w, c->output_size.h);
- s->set_destination_rectangle(0, 0, c->output_size.w,
- c->output_size.h);
+
+ int x = rect.x;
+ int y = rect.y;
+ int w = rect.w;
+ int h = rect.h;
+
+ // less-than-0 values refer to MAX + 1 - $VALUE
+ // e.g. MAX is either screen width or height
+ if (w < 0) {
+ w = c->output_size.w + 1 + w;