diff options
author | Christopher Michael <devilhorns@comcast.net> | 2020-05-07 11:28:05 -0400 |
---|---|---|
committer | Christopher Michael <devilhorns@comcast.net> | 2020-05-15 10:45:56 -0400 |
commit | f3c4692221892da6e500deb66ccd6087e8857691 (patch) | |
tree | a5a00a96a07194a1bcea11d231bff85fad34c57f | |
parent | 5f654404d01509e684c1a1998ed8bd25dd67dae9 (diff) | |
download | efl-f3c4692221892da6e500deb66ccd6087e8857691.tar.gz |
ecore-drm2: Add API function to return default depth
Rather than hard-coding depth & bpp in the evas drm engines, we can
use this function to return the default depth & bpp.
@feature
-rw-r--r-- | src/lib/ecore_drm2/Ecore_Drm2.h | 10 | ||||
-rw-r--r-- | src/lib/ecore_drm2/ecore_drm2_device.c | 20 |
2 files changed, 30 insertions, 0 deletions
diff --git a/src/lib/ecore_drm2/Ecore_Drm2.h b/src/lib/ecore_drm2/Ecore_Drm2.h index 4d10e0d3a6..6e2dd1fafc 100644 --- a/src/lib/ecore_drm2/Ecore_Drm2.h +++ b/src/lib/ecore_drm2/Ecore_Drm2.h @@ -412,6 +412,16 @@ EAPI Eina_Bool ecore_drm2_device_vt_set(Ecore_Drm2_Device *device, int vt); EAPI Eina_Bool ecore_drm2_device_prefer_shadow(Ecore_Drm2_Device *device); /** + * Get the default depth & bpp from a given device + * + * @param device + * + * @ingroup Ecore_Drm2_Device_Group + * @since 1.25 + */ +EAPI void ecore_drm2_device_preferred_depth_get(Ecore_Drm2_Device *device, int *depth, int *bpp); + +/** * @defgroup Ecore_Drm2_Output_Group Drm output functions * * Functions that deal with setup of outputs diff --git a/src/lib/ecore_drm2/ecore_drm2_device.c b/src/lib/ecore_drm2/ecore_drm2_device.c index 7602114453..77498d806e 100644 --- a/src/lib/ecore_drm2/ecore_drm2_device.c +++ b/src/lib/ecore_drm2/ecore_drm2_device.c @@ -1,5 +1,9 @@ #include "ecore_drm2_private.h" +#ifndef DRM_CAP_DUMB_PREFERRED_DEPTH +# define DRM_CAP_DUMB_PREFERRED_DEPTH 0x3 +#endif + #ifndef DRM_CAP_DUMB_PREFER_SHADOW # define DRM_CAP_DUMB_PREFER_SHADOW 0x4 #endif @@ -883,6 +887,22 @@ ecore_drm2_device_prefer_shadow(Ecore_Drm2_Device *device) return EINA_FALSE; } +EAPI void +ecore_drm2_device_preferred_depth_get(Ecore_Drm2_Device *device, int *depth, int *bpp) +{ + uint64_t caps; + int ret; + + EINA_SAFETY_ON_NULL_RETURN(device); + + ret = sym_drmGetCap(device->fd, DRM_CAP_DUMB_PREFERRED_DEPTH, &caps); + if (ret == 0) + { + if (depth) *depth = caps; + if (bpp) *bpp = caps; + } +} + EAPI int ecore_drm2_device_fd_get(Ecore_Drm2_Device *device) { |