compositor: Remove wlsc_drm

dev
Benjamin Franzke 14 years ago committed by Kristian Høgsberg
parent 84290d02ae
commit 2af7f10674
  1. 21
      compositor/compositor-drm.c
  2. 9
      compositor/compositor.h

@ -37,6 +37,9 @@ struct drm_compositor {
struct udev *udev; struct udev *udev;
struct wl_event_source *drm_source; struct wl_event_source *drm_source;
struct {
int fd;
} drm;
struct tty *tty; struct tty *tty;
}; };
@ -67,7 +70,7 @@ drm_compositor_present(struct wlsc_compositor *ec)
output->rbo[output->current]); output->rbo[output->current]);
glFlush(); glFlush();
drmModePageFlip(c->base.drm.fd, output->crtc_id, drmModePageFlip(c->drm.fd, output->crtc_id,
output->fb_id[output->current ^ 1], output->fb_id[output->current ^ 1],
DRM_MODE_PAGE_FLIP_EVENT, output); DRM_MODE_PAGE_FLIP_EVENT, output);
} }
@ -116,8 +119,8 @@ init_egl(struct drm_compositor *ec, struct udev_device *device)
return -1; return -1;
} }
ec->base.drm.fd = fd; ec->drm.fd = fd;
ec->base.display = eglGetDRMDisplayMESA(ec->base.drm.fd); ec->base.display = eglGetDRMDisplayMESA(ec->drm.fd);
if (ec->base.display == NULL) { if (ec->base.display == NULL) {
fprintf(stderr, "failed to create display\n"); fprintf(stderr, "failed to create display\n");
return -1; return -1;
@ -191,7 +194,7 @@ create_output_for_connector(struct drm_compositor *ec,
else else
mode = &builtin_1024x768; mode = &builtin_1024x768;
encoder = drmModeGetEncoder(ec->base.drm.fd, connector->encoders[0]); encoder = drmModeGetEncoder(ec->drm.fd, connector->encoders[0]);
if (encoder == NULL) { if (encoder == NULL) {
fprintf(stderr, "No encoder for connector.\n"); fprintf(stderr, "No encoder for connector.\n");
return -1; return -1;
@ -229,7 +232,7 @@ create_output_for_connector(struct drm_compositor *ec,
eglExportDRMImageMESA(ec->base.display, output->image[i], eglExportDRMImageMESA(ec->base.display, output->image[i],
NULL, &handle, &stride); NULL, &handle, &stride);
ret = drmModeAddFB(ec->base.drm.fd, ret = drmModeAddFB(ec->drm.fd,
output->base.width, output->base.height, output->base.width, output->base.height,
32, 32, stride, handle, &output->fb_id[i]); 32, 32, stride, handle, &output->fb_id[i]);
if (ret) { if (ret) {
@ -243,7 +246,7 @@ create_output_for_connector(struct drm_compositor *ec,
GL_COLOR_ATTACHMENT0, GL_COLOR_ATTACHMENT0,
GL_RENDERBUFFER, GL_RENDERBUFFER,
output->rbo[output->current]); output->rbo[output->current]);
ret = drmModeSetCrtc(ec->base.drm.fd, output->crtc_id, ret = drmModeSetCrtc(ec->drm.fd, output->crtc_id,
output->fb_id[output->current ^ 1], 0, 0, output->fb_id[output->current ^ 1], 0, 0,
&output->connector_id, 1, &output->mode); &output->connector_id, 1, &output->mode);
if (ret) { if (ret) {
@ -263,14 +266,14 @@ create_outputs(struct drm_compositor *ec, int option_connector)
drmModeRes *resources; drmModeRes *resources;
int i; int i;
resources = drmModeGetResources(ec->base.drm.fd); resources = drmModeGetResources(ec->drm.fd);
if (!resources) { if (!resources) {
fprintf(stderr, "drmModeGetResources failed\n"); fprintf(stderr, "drmModeGetResources failed\n");
return -1; return -1;
} }
for (i = 0; i < resources->count_connectors; i++) { for (i = 0; i < resources->count_connectors; i++) {
connector = drmModeGetConnector(ec->base.drm.fd, resources->connectors[i]); connector = drmModeGetConnector(ec->drm.fd, resources->connectors[i]);
if (connector == NULL) if (connector == NULL)
continue; continue;
@ -368,7 +371,7 @@ drm_compositor_create(struct wl_display *display, int connector)
loop = wl_display_get_event_loop(ec->base.wl_display); loop = wl_display_get_event_loop(ec->base.wl_display);
ec->drm_source = ec->drm_source =
wl_event_loop_add_fd(loop, ec->base.drm.fd, wl_event_loop_add_fd(loop, ec->drm.fd,
WL_EVENT_READABLE, on_drm_input, ec); WL_EVENT_READABLE, on_drm_input, ec);
ec->tty = tty_create(&ec->base); ec->tty = tty_create(&ec->base);

@ -74,12 +74,6 @@ struct wlsc_input_device {
struct wl_selection *selection; struct wl_selection *selection;
}; };
struct wlsc_drm {
struct wl_object object;
int fd;
char *filename;
};
struct wlsc_shm { struct wlsc_shm {
struct wl_object object; struct wl_object object;
}; };
@ -87,7 +81,6 @@ struct wlsc_shm {
struct wlsc_compositor { struct wlsc_compositor {
struct wl_compositor compositor; struct wl_compositor compositor;
struct wlsc_drm drm;
struct wlsc_shm shm; struct wlsc_shm shm;
EGLDisplay display; EGLDisplay display;
EGLContext context; EGLContext context;
@ -224,8 +217,6 @@ wlsc_output_init(struct wlsc_output *output, struct wlsc_compositor *c,
void void
wlsc_input_device_init(struct wlsc_input_device *device, wlsc_input_device_init(struct wlsc_input_device *device,
struct wlsc_compositor *ec); struct wlsc_compositor *ec);
int
wlsc_drm_init(struct wlsc_compositor *ec, int fd, const char *filename);
int int
wlsc_shm_init(struct wlsc_compositor *ec); wlsc_shm_init(struct wlsc_compositor *ec);

Loading…
Cancel
Save