diff options
author | Jasper St. Pierre <jstpierre@mecheye.net> | 2014-02-28 09:48:10 -0500 |
---|---|---|
committer | Jasper St. Pierre <jstpierre@mecheye.net> | 2014-03-05 10:20:50 -0500 |
commit | c5b3492c151b98e06292d2f366f6e5549a9aa39e (patch) | |
tree | 06990f1fea38e1aac4f3c5c10980b9f7f3808d40 | |
parent | 9a28a8f745498a63437bf035336ee7e9d1ac2bdb (diff) | |
download | clutter-c5b3492c151b98e06292d2f366f6e5549a9aa39e.tar.gz |
kms fd
-rw-r--r-- | clutter/egl/clutter-backend-eglnative.c | 31 | ||||
-rw-r--r-- | clutter/egl/clutter-egl.h | 2 |
2 files changed, 33 insertions, 0 deletions
diff --git a/clutter/egl/clutter-backend-eglnative.c b/clutter/egl/clutter-backend-eglnative.c index a99d37491..b2794b5aa 100644 --- a/clutter/egl/clutter-backend-eglnative.c +++ b/clutter/egl/clutter-backend-eglnative.c @@ -57,6 +57,8 @@ G_DEFINE_TYPE (ClutterBackendEglNative, clutter_backend_egl_native, CLUTTER_TYPE_BACKEND); +static int _kms_fd = -1; + static void clutter_backend_egl_native_dispose (GObject *gobject) { @@ -71,6 +73,18 @@ clutter_backend_egl_native_dispose (GObject *gobject) G_OBJECT_CLASS (clutter_backend_egl_native_parent_class)->dispose (gobject); } +static CoglRenderer * +clutter_backend_egl_native_get_renderer (ClutterBackend *backend, + GError **error) +{ + CoglRenderer *renderer; + + renderer = cogl_renderer_new (); + cogl_renderer_set_winsys_id (renderer, COGL_WINSYS_ID_EGL_KMS); + cogl_kms_renderer_set_kms_fd (renderer, _kms_fd); + return renderer; +} + static void clutter_backend_egl_native_class_init (ClutterBackendEglNativeClass *klass) { @@ -80,6 +94,8 @@ clutter_backend_egl_native_class_init (ClutterBackendEglNativeClass *klass) gobject_class->dispose = clutter_backend_egl_native_dispose; backend_class->stage_window_type = CLUTTER_TYPE_STAGE_COGL; + + backend_class->get_renderer = clutter_backend_egl_native_get_renderer; } static void @@ -157,3 +173,18 @@ clutter_egl_get_egl_display (void) return 0; #endif } + +/** + * clutter_egl_native_set_kms_fd: + * @fd: The fd to talk to the kms driver with + * + * Sets the fd that Cogl should use to talk to the + * kms driver. + * + * Since: 1.18 + */ +void +clutter_egl_native_set_kms_fd (int fd) +{ + _kms_fd = fd; +} diff --git a/clutter/egl/clutter-egl.h b/clutter/egl/clutter-egl.h index c15cd1556..58d10bd51 100644 --- a/clutter/egl/clutter-egl.h +++ b/clutter/egl/clutter-egl.h @@ -87,6 +87,8 @@ EGLDisplay clutter_egl_display (void); */ EGLDisplay clutter_egl_get_egl_display (void); +void clutter_egl_native_set_kms_fd (int fd); + G_END_DECLS #endif /* __CLUTTER_EGL_H__ */ |