mirror of
https://gitlab.freedesktop.org/plymouth/plymouth.git
synced 2026-05-08 10:08:06 +02:00
drm: Implement ply_renderer_get_panel_properties
Implement the get_panel_properties plugin interface. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
parent
1723419e6c
commit
ed3aae9d8f
1 changed files with 33 additions and 1 deletions
|
|
@ -138,6 +138,11 @@ struct _ply_renderer_backend
|
|||
uint32_t is_active : 1;
|
||||
uint32_t requires_explicit_flushing : 1;
|
||||
uint32_t use_preferred_mode : 1;
|
||||
|
||||
int panel_width;
|
||||
int panel_height;
|
||||
ply_pixel_buffer_rotation_t panel_rotation;
|
||||
int panel_scale;
|
||||
};
|
||||
|
||||
ply_renderer_plugin_interface_t *ply_renderer_backend_get_interface (void);
|
||||
|
|
@ -542,6 +547,15 @@ ply_renderer_head_new (ply_renderer_backend_t *backend,
|
|||
ply_pixel_buffer_fill_with_color (head->pixel_buffer, NULL,
|
||||
0.0, 0.0, 0.0, 1.0);
|
||||
|
||||
if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS ||
|
||||
connector->connector_type == DRM_MODE_CONNECTOR_eDP ||
|
||||
connector->connector_type == DRM_MODE_CONNECTOR_DSI) {
|
||||
backend->panel_width = mode->hdisplay;
|
||||
backend->panel_height = mode->vdisplay;
|
||||
backend->panel_rotation = rotation;
|
||||
backend->panel_scale = ply_pixel_buffer_get_device_scale (head->pixel_buffer);
|
||||
}
|
||||
|
||||
return head;
|
||||
}
|
||||
|
||||
|
|
@ -1488,6 +1502,23 @@ close_input_source (ply_renderer_backend_t *backend,
|
|||
input_source->backend = NULL;
|
||||
}
|
||||
|
||||
static bool
|
||||
get_panel_properties (ply_renderer_backend_t *backend,
|
||||
int *width,
|
||||
int *height,
|
||||
ply_pixel_buffer_rotation_t *rotation,
|
||||
int *scale)
|
||||
{
|
||||
if (!backend->panel_width)
|
||||
return false;
|
||||
|
||||
*width = backend->panel_width;
|
||||
*height = backend->panel_height;
|
||||
*rotation = backend->panel_rotation;
|
||||
*scale = backend->panel_scale;
|
||||
return true;
|
||||
}
|
||||
|
||||
ply_renderer_plugin_interface_t *
|
||||
ply_renderer_backend_get_interface (void)
|
||||
{
|
||||
|
|
@ -1509,7 +1540,8 @@ ply_renderer_backend_get_interface (void)
|
|||
.open_input_source = open_input_source,
|
||||
.set_handler_for_input_source = set_handler_for_input_source,
|
||||
.close_input_source = close_input_source,
|
||||
.get_device_name = get_device_name
|
||||
.get_device_name = get_device_name,
|
||||
.get_panel_properties = get_panel_properties,
|
||||
};
|
||||
|
||||
return &plugin_interface;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue