aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/ecore_drm
diff options
context:
space:
mode:
authorChris Michael <cpmichael@osg.samsung.com>2016-02-04 08:53:16 -0500
committerChris Michael <cpmichael@osg.samsung.com>2016-02-04 08:53:16 -0500
commitbabd202d05094df18c448b66efb96fcd8f0d0e10 (patch)
tree96a747eee34a926aa2fe09d4a9d8fee46f3a7df3 /src/lib/ecore_drm
parentEvas: Use proper language for harfbuzz shaping (diff)
downloadefl-babd202d05094df18c448b66efb96fcd8f0d0e10.tar.gz
ecore-drm: Add opaque structure for Ecore_Drm_Plane
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Diffstat (limited to 'src/lib/ecore_drm')
-rw-r--r--src/lib/ecore_drm/Ecore_Drm.h18
-rw-r--r--src/lib/ecore_drm/ecore_drm_private.h14
2 files changed, 32 insertions, 0 deletions
diff --git a/src/lib/ecore_drm/Ecore_Drm.h b/src/lib/ecore_drm/Ecore_Drm.h
index 5c50f1022d..66ac7fe94b 100644
--- a/src/lib/ecore_drm/Ecore_Drm.h
+++ b/src/lib/ecore_drm/Ecore_Drm.h
@@ -34,6 +34,13 @@
extern "C" {
# endif
+# define ECORE_DRM_PLANE_ROTATION_NORMAL 1
+# define ECORE_DRM_PLANE_ROTATION_90 2
+# define ECORE_DRM_PLANE_ROTATION_180 4
+# define ECORE_DRM_PLANE_ROTATION_270 8
+# define ECORE_DRM_PLANE_ROTATION_REFLECT_X 16
+# define ECORE_DRM_PLANE_ROTATION_REFLECT_Y 32
+
typedef enum _Ecore_Drm_Evdev_Capabilities
{
EVDEV_KEYBOARD = (1 << 0),
@@ -153,6 +160,13 @@ struct _Ecore_Drm_Event_Output
Eina_Bool plug : 1;
};
+typedef enum _Ecore_Drm_Plane_Type
+{
+ ECORE_DRM_PLANE_TYPE_OVERLAY,
+ ECORE_DRM_PLANE_TYPE_PRIMARY,
+ ECORE_DRM_PLANE_TYPE_CURSOR
+} Ecore_Drm_Plane_Type;
+
/* opaque structure to represent a drm device */
typedef struct _Ecore_Drm_Device Ecore_Drm_Device;
@@ -183,6 +197,10 @@ typedef struct _Ecore_Drm_Sprite Ecore_Drm_Sprite;
/* structure to inform drm activation state */
typedef struct _Ecore_Drm_Event_Activate Ecore_Drm_Event_Activate;
+/* opaque structure to represent a drm hardware plane */
+/** @since 1.18 */
+typedef struct _Ecore_Drm_Plane Ecore_Drm_Plane;
+
/* structure to inform drm output plug events */
/** @since 1.14 */
typedef struct _Ecore_Drm_Event_Output Ecore_Drm_Event_Output;
diff --git a/src/lib/ecore_drm/ecore_drm_private.h b/src/lib/ecore_drm/ecore_drm_private.h
index 1f51d3b7df..de78d6d307 100644
--- a/src/lib/ecore_drm/ecore_drm_private.h
+++ b/src/lib/ecore_drm/ecore_drm_private.h
@@ -106,10 +106,20 @@ typedef struct _Ecore_Drm_Backlight
Ecore_Drm_Backlight_Type type;
} Ecore_Drm_Backlight;
+struct _Ecore_Drm_Plane
+{
+ int id;
+ unsigned int rotation;
+ unsigned int rotation_map[6];
+ unsigned int supported_rotations;
+ Ecore_Drm_Plane_Type type;
+};
+
struct _Ecore_Drm_Output
{
Ecore_Drm_Device *dev;
unsigned int crtc_id;
+ unsigned int crtc_index;
unsigned int conn_id;
unsigned int conn_type;
drmModeCrtcPtr crtc;
@@ -125,6 +135,10 @@ struct _Ecore_Drm_Output
Ecore_Drm_Output_Mode *current_mode;
Eina_List *modes;
+ unsigned int primary_plane_id;
+ unsigned int rotation_prop_id;
+ Eina_List *planes;
+
unsigned char *edid_blob;
struct