.. | .. |
---|
83 | 83 | } |
---|
84 | 84 | |
---|
85 | 85 | /** |
---|
| 86 | + * v4l2_rect_same_position() - return true if r1 has the same position as r2 |
---|
| 87 | + * @r1: rectangle. |
---|
| 88 | + * @r2: rectangle. |
---|
| 89 | + * |
---|
| 90 | + * Return true if both rectangles have the same position |
---|
| 91 | + */ |
---|
| 92 | +static inline bool v4l2_rect_same_position(const struct v4l2_rect *r1, |
---|
| 93 | + const struct v4l2_rect *r2) |
---|
| 94 | +{ |
---|
| 95 | + return r1->top == r2->top && r1->left == r2->left; |
---|
| 96 | +} |
---|
| 97 | + |
---|
| 98 | +/** |
---|
| 99 | + * v4l2_rect_equal() - return true if r1 equals r2 |
---|
| 100 | + * @r1: rectangle. |
---|
| 101 | + * @r2: rectangle. |
---|
| 102 | + * |
---|
| 103 | + * Return true if both rectangles have the same size and position. |
---|
| 104 | + */ |
---|
| 105 | +static inline bool v4l2_rect_equal(const struct v4l2_rect *r1, |
---|
| 106 | + const struct v4l2_rect *r2) |
---|
| 107 | +{ |
---|
| 108 | + return v4l2_rect_same_size(r1, r2) && v4l2_rect_same_position(r1, r2); |
---|
| 109 | +} |
---|
| 110 | + |
---|
| 111 | +/** |
---|
86 | 112 | * v4l2_rect_intersect() - calculate the intersection of two rects. |
---|
87 | 113 | * @r: intersection of @r1 and @r2. |
---|
88 | 114 | * @r1: rectangle. |
---|
.. | .. |
---|
158 | 184 | return true; |
---|
159 | 185 | } |
---|
160 | 186 | |
---|
| 187 | +/** |
---|
| 188 | + * v4l2_rect_enclosed() - is r1 enclosed in r2? |
---|
| 189 | + * @r1: rectangle. |
---|
| 190 | + * @r2: rectangle. |
---|
| 191 | + * |
---|
| 192 | + * Returns true if @r1 is enclosed in @r2. |
---|
| 193 | + */ |
---|
| 194 | +static inline bool v4l2_rect_enclosed(struct v4l2_rect *r1, |
---|
| 195 | + struct v4l2_rect *r2) |
---|
| 196 | +{ |
---|
| 197 | + if (r1->left < r2->left || r1->top < r2->top) |
---|
| 198 | + return false; |
---|
| 199 | + if (r1->left + r1->width > r2->left + r2->width) |
---|
| 200 | + return false; |
---|
| 201 | + if (r1->top + r1->height > r2->top + r2->height) |
---|
| 202 | + return false; |
---|
| 203 | + |
---|
| 204 | + return true; |
---|
| 205 | +} |
---|
| 206 | + |
---|
161 | 207 | #endif |
---|