summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdel Gadllah <adel.gadllah@gmail.com>2014-05-13 21:08:59 +0200
committerAdel Gadllah <adel.gadllah@gmail.com>2014-06-30 20:25:52 +0200
commitfe183554ca9afb7e4b750ac3390584d8cad0844d (patch)
tree7a069977138b3a7fb882df81e9b5282d54563b63
parent52a646abc54d377c791d687cc449a99d9ca2e0a8 (diff)
kms_winsys: Add cogl_kms_renderer_get_gbm api
Applications might want to get the underlying gbm device so add a getter for it. https://bugzilla.gnome.org/show_bug.cgi?id=730536
-rw-r--r--cogl/cogl-kms-renderer.h1
-rw-r--r--cogl/winsys/cogl-winsys-egl-kms.c14
2 files changed, 15 insertions, 0 deletions
diff --git a/cogl/cogl-kms-renderer.h b/cogl/cogl-kms-renderer.h
index c2606f8c..2a619383 100644
--- a/cogl/cogl-kms-renderer.h
+++ b/cogl/cogl-kms-renderer.h
@@ -68,5 +68,6 @@ cogl_kms_renderer_set_kms_fd (CoglRenderer *renderer,
int
cogl_kms_renderer_get_kms_fd (CoglRenderer *renderer);
+struct gbm_device *cogl_kms_renderer_get_gbm (CoglRenderer *renderer);
COGL_END_DECLS
#endif /* __COGL_KMS_RENDERER_H__ */
diff --git a/cogl/winsys/cogl-winsys-egl-kms.c b/cogl/winsys/cogl-winsys-egl-kms.c
index a475c55a..a40518d9 100644
--- a/cogl/winsys/cogl-winsys-egl-kms.c
+++ b/cogl/winsys/cogl-winsys-egl-kms.c
@@ -1117,6 +1117,20 @@ cogl_kms_renderer_set_kms_fd (CoglRenderer *renderer,
renderer->kms_fd = fd;
}
+struct gbm_device *
+cogl_kms_renderer_get_gbm (CoglRenderer *renderer)
+{
+ _COGL_RETURN_VAL_IF_FAIL (cogl_is_renderer (renderer), NULL);
+ if (renderer->connected)
+ {
+ CoglRendererEGL *egl_renderer = renderer->winsys;
+ CoglRendererKMS *kms_renderer = egl_renderer->platform;
+ return kms_renderer->gbm;
+ }
+ else
+ return NULL;
+}
+
int
cogl_kms_renderer_get_kms_fd (CoglRenderer *renderer)
{