compositor: Remove wlsc_drm
This commit is contained in:
committed by
Kristian Høgsberg
parent
84290d02ae
commit
2af7f10674
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user