graphene_rect_t is not well-suited for this purpose, since you end up with floating-point precision problems at the upper bound (x + width, y + height).