swc

Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.nihaljere.xyz/swc
Log | Files | Refs | README | LICENSE

commit c4a42f202a5e3986c355ba888196872ce31bdf80
parent 170445e630a22a6a38e16f404948dae66660834d
Author: Michael Forney <mforney@mforney.org>
Date:   Fri, 17 Jan 2014 18:50:22 -0800

drm: Only create wl_drm global if not using dumb buffers

Diffstat:
Mlibswc/drm.c | 28++++++++++++++++------------
1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/libswc/drm.c b/libswc/drm.c @@ -352,28 +352,31 @@ bool swc_drm_initialize(const char * seat_name) goto error3; } - drm.global = wl_global_create(swc.display, &wl_drm_interface, 2, - NULL, &bind_drm); - - if (!drm.global) - { - ERROR("Could not create wl_drm global\n"); - goto error4; - } - drm.event_source = wl_event_loop_add_fd (swc.event_loop, swc.drm->fd, WL_EVENT_READABLE, &handle_data, NULL); if (!drm.event_source) { ERROR("Could not create DRM event source\n"); - goto error5; + goto error4; + } + + if (!wld_drm_is_dumb(swc.drm->context)) + { + drm.global = wl_global_create(swc.display, &wl_drm_interface, 2, + NULL, &bind_drm); + + if (!drm.global) + { + ERROR("Could not create wl_drm global\n"); + goto error5; + } } return true; error5: - wl_global_destroy(drm.global); + wl_event_source_remove(drm.event_source); error4: wld_destroy_renderer(swc.drm->renderer); error3: @@ -388,8 +391,9 @@ bool swc_drm_initialize(const char * seat_name) void swc_drm_finalize() { + if (drm.global) + wl_global_destroy(drm.global); wl_event_source_remove(drm.event_source); - wl_global_destroy(drm.global); wld_destroy_renderer(swc.drm->renderer); wld_destroy_context(swc.drm->context); free(drm.path);