backend-drm: Move plane-type-specific checks to switch statement

This makes it a bit more clear and easy to follow, rather than diving
through if nesting.

Signed-off-by: Daniel Stone <daniels@collabora.com>
This commit is contained in:
Daniel Stone 2021-12-07 17:43:55 +00:00
parent 0ecd6c3d33
commit b3d7df5c3e
1 changed files with 18 additions and 9 deletions

View File

@ -682,15 +682,24 @@ drm_output_prepare_plane_view(struct drm_output_state *state,
possible_plane_mask &= ~(1 << plane->plane_idx);
if (plane->type == WDRM_PLANE_TYPE_CURSOR &&
(plane != output->cursor_plane || !shmbuf)) {
continue;
}
if (plane->type == WDRM_PLANE_TYPE_PRIMARY &&
(plane != output->scanout_plane ||
mode != DRM_OUTPUT_PROPOSE_STATE_PLANES_ONLY)) {
continue;
switch (plane->type) {
case WDRM_PLANE_TYPE_CURSOR:
assert(shmbuf);
assert(plane == output->cursor_plane);
break;
case WDRM_PLANE_TYPE_PRIMARY:
assert(fb);
if (plane != output->scanout_plane)
continue;
if (mode != DRM_OUTPUT_PROPOSE_STATE_PLANES_ONLY)
continue;
break;
case WDRM_PLANE_TYPE_OVERLAY:
assert(fb);
assert(mode != DRM_OUTPUT_PROPOSE_STATE_RENDERER_ONLY);
break;
default:
assert(false && "unknown plane type");
}
if (!drm_plane_is_available(plane, output))