From 83a2afb3c4ed237381242c09a8ca106e33e57497 Mon Sep 17 00:00:00 2001 From: Junghoon Date: Fri, 21 Aug 2015 13:39:22 +0900 Subject: [PATCH] drm: change to create specified renderer only Change-Id: I39164cd2a2c0095cd497356989a2c4f3169c1536 --- src/lib/drm/drm-output.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/lib/drm/drm-output.c b/src/lib/drm/drm-output.c index 5d0609c..74a4e90 100644 --- a/src/lib/drm/drm-output.c +++ b/src/lib/drm/drm-output.c @@ -1324,14 +1324,24 @@ pepper_drm_output_create(pepper_drm_t *drm, const char *renderer) drm->renderer = strdup(renderer); /* create gl-renderer & pixman-renderer */ - drm->gbm_device = gbm_create_device(drm->drm_fd); - if (drm->gbm_device) - drm->gl_renderer = pepper_gl_renderer_create(drm->compositor, drm->gbm_device, "gbm"); - - drm->pixman_renderer = pepper_pixman_renderer_create(drm->compositor); - if (!drm->pixman_renderer) + if (strcmp(renderer, "gl") == 0) + { + drm->gbm_device = gbm_create_device(drm->drm_fd); + if (drm->gbm_device) + drm->gl_renderer = pepper_gl_renderer_create(drm->compositor, drm->gbm_device, "gbm"); + } + else if (strcmp(renderer, "pixman") == 0) + { + drm->pixman_renderer = pepper_pixman_renderer_create(drm->compositor); + if (!drm->pixman_renderer) + { + PEPPER_ERROR("Failed to create pixman-renderer\n"); + goto error; + } + } + else { - PEPPER_ERROR("Failed to create pixman-renderer\n"); + PEPPER_ERROR("Unknown renderer: %s\n", renderer); goto error; } -- 2.7.4