if (b->gbm == NULL)
return NULL;
- if (ev->surface->buffer_ref.buffer == NULL) {
+ if (!weston_view_has_valid_buffer(ev)) {
drm_debug(b, "\t\t\t\t[cursor] not assigning view %p to cursor plane "
"(no buffer available)\n", ev);
return NULL;
force_renderer = true;
}
- if (!ev->surface->buffer_ref.buffer) {
+ if (!weston_view_has_valid_buffer(ev)) {
drm_debug(b, "\t\t\t\t[view] not assigning view %p to plane "
"(no buffer available)\n", ev);
force_renderer = true;
* to the buffer anyway, there is no side effects.
*/
if (b->use_pixman ||
- (ev->surface->buffer_ref.buffer &&
+ (weston_view_has_valid_buffer(ev) &&
(!wl_shm_buffer_get(ev->surface->buffer_ref.buffer->resource) ||
(ev->surface->width <= b->cursor_width &&
ev->surface->height <= b->cursor_height))))
return ret;
}
+/** Check if the view has a valid buffer available
+ *
+ * @param ev The view to check if it has a valid buffer.
+ *
+ * Returns true if the view has a valid buffer or false otherwise.
+ */
+WL_EXPORT bool
+weston_view_has_valid_buffer(struct weston_view *ev)
+{
+ return ev->surface->buffer_ref.buffer != NULL;
+}
+
/* Check if a surface has a view assigned to it
*
* The indicator is set manually when mapping
bool
weston_view_is_opaque(struct weston_view *ev, pixman_region32_t *region);
+bool
+weston_view_has_valid_buffer(struct weston_view *ev);
+
void
weston_view_move_to_plane(struct weston_view *view,
struct weston_plane *plane);