+ if (right < left || bottom < top)
+ return true;
+
+ // optimisation - if the whole tile is covered by this rectangle,
+ // and the rectangle is a solid colour, we don't need to render
+ // what's behind us
+ if (is_solid_color() && top == 0 && left == 0 && bottom == h && right == w)
+ {
+ surface->set_wh(w,h);
+ surface->fill(color);