summaryrefslogtreecommitdiff
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
parent33ea5653477c97072c62c7d7d32b6263b89f8509 (diff)
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 5c50f10..66ac7fe 100644
--- a/src/lib/ecore_drm/Ecore_Drm.h
+++ b/src/lib/ecore_drm/Ecore_Drm.h
@@ -34,6 +34,13 @@
34extern "C" { 34extern "C" {
35# endif 35# endif
36 36
37# define ECORE_DRM_PLANE_ROTATION_NORMAL 1
38# define ECORE_DRM_PLANE_ROTATION_90 2
39# define ECORE_DRM_PLANE_ROTATION_180 4
40# define ECORE_DRM_PLANE_ROTATION_270 8
41# define ECORE_DRM_PLANE_ROTATION_REFLECT_X 16
42# define ECORE_DRM_PLANE_ROTATION_REFLECT_Y 32
43
37typedef enum _Ecore_Drm_Evdev_Capabilities 44typedef enum _Ecore_Drm_Evdev_Capabilities
38{ 45{
39 EVDEV_KEYBOARD = (1 << 0), 46 EVDEV_KEYBOARD = (1 << 0),
@@ -153,6 +160,13 @@ struct _Ecore_Drm_Event_Output
153 Eina_Bool plug : 1; 160 Eina_Bool plug : 1;
154}; 161};
155 162
163typedef enum _Ecore_Drm_Plane_Type
164{
165 ECORE_DRM_PLANE_TYPE_OVERLAY,
166 ECORE_DRM_PLANE_TYPE_PRIMARY,
167 ECORE_DRM_PLANE_TYPE_CURSOR
168} Ecore_Drm_Plane_Type;
169
156/* opaque structure to represent a drm device */ 170/* opaque structure to represent a drm device */
157typedef struct _Ecore_Drm_Device Ecore_Drm_Device; 171typedef struct _Ecore_Drm_Device Ecore_Drm_Device;
158 172
@@ -183,6 +197,10 @@ typedef struct _Ecore_Drm_Sprite Ecore_Drm_Sprite;
183/* structure to inform drm activation state */ 197/* structure to inform drm activation state */
184typedef struct _Ecore_Drm_Event_Activate Ecore_Drm_Event_Activate; 198typedef struct _Ecore_Drm_Event_Activate Ecore_Drm_Event_Activate;
185 199
200/* opaque structure to represent a drm hardware plane */
201/** @since 1.18 */
202typedef struct _Ecore_Drm_Plane Ecore_Drm_Plane;
203
186/* structure to inform drm output plug events */ 204/* structure to inform drm output plug events */
187/** @since 1.14 */ 205/** @since 1.14 */
188typedef struct _Ecore_Drm_Event_Output Ecore_Drm_Event_Output; 206typedef 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 1f51d3b..de78d6d 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
106 Ecore_Drm_Backlight_Type type; 106 Ecore_Drm_Backlight_Type type;
107} Ecore_Drm_Backlight; 107} Ecore_Drm_Backlight;
108 108
109struct _Ecore_Drm_Plane
110{
111 int id;
112 unsigned int rotation;
113 unsigned int rotation_map[6];
114 unsigned int supported_rotations;
115 Ecore_Drm_Plane_Type type;
116};
117
109struct _Ecore_Drm_Output 118struct _Ecore_Drm_Output
110{ 119{
111 Ecore_Drm_Device *dev; 120 Ecore_Drm_Device *dev;
112 unsigned int crtc_id; 121 unsigned int crtc_id;
122 unsigned int crtc_index;
113 unsigned int conn_id; 123 unsigned int conn_id;
114 unsigned int conn_type; 124 unsigned int conn_type;
115 drmModeCrtcPtr crtc; 125 drmModeCrtcPtr crtc;
@@ -125,6 +135,10 @@ struct _Ecore_Drm_Output
125 Ecore_Drm_Output_Mode *current_mode; 135 Ecore_Drm_Output_Mode *current_mode;
126 Eina_List *modes; 136 Eina_List *modes;
127 137
138 unsigned int primary_plane_id;
139 unsigned int rotation_prop_id;
140 Eina_List *planes;
141
128 unsigned char *edid_blob; 142 unsigned char *edid_blob;
129 143
130 struct 144 struct