diff --git a/wayland-system-compositor.c b/wayland-system-compositor.c index 1b16b5e8..fe3bf324 100644 --- a/wayland-system-compositor.c +++ b/wayland-system-compositor.c @@ -62,8 +62,8 @@ struct wl_visual { struct wlsc_output { struct wl_object base; struct wl_list link; - struct egl_compositor *ec; - struct egl_surface *background; + struct wlsc_compositor *ec; + struct wlsc_surface *background; EGLSurface surface; int32_t x, y, width, height, stride; @@ -76,16 +76,16 @@ struct wlsc_output { struct wlsc_input_device { struct wl_object base; int32_t x, y; - struct egl_compositor *ec; - struct egl_surface *pointer_surface; + struct wlsc_compositor *ec; + struct wlsc_surface *pointer_surface; struct wl_list link; int grab; - struct egl_surface *grab_surface; - struct egl_surface *focus_surface; + struct wlsc_surface *grab_surface; + struct wlsc_surface *focus_surface; }; -struct egl_compositor { +struct wlsc_compositor { struct wl_compositor base; struct wl_visual argb_visual, premultiplied_argb_visual, rgb_visual; @@ -119,9 +119,9 @@ struct egl_compositor { uint32_t current_frame; }; -struct egl_surface { +struct wlsc_surface { struct wl_surface base; - struct egl_compositor *compositor; + struct wlsc_compositor *compositor; struct wl_visual *visual; GLuint texture; struct wl_map map; @@ -141,7 +141,7 @@ static const GOptionEntry option_entries[] = { struct screenshooter { struct wl_object base; - struct egl_compositor *ec; + struct wlsc_compositor *ec; }; struct screenshooter_interface { @@ -151,7 +151,7 @@ struct screenshooter_interface { static void screenshooter_shoot(struct wl_client *client, struct screenshooter *shooter) { - struct egl_compositor *ec = shooter->ec; + struct wlsc_compositor *ec = shooter->ec; struct wlsc_output *output; char buffer[256]; GdkPixbuf *pixbuf, *normal; @@ -203,7 +203,7 @@ struct screenshooter_interface screenshooter_implementation = { }; static struct screenshooter * -screenshooter_create(struct egl_compositor *ec) +screenshooter_create(struct wlsc_compositor *ec) { struct screenshooter *shooter; @@ -218,12 +218,12 @@ screenshooter_create(struct egl_compositor *ec) return shooter; }; -static struct egl_surface * -egl_surface_create_from_cairo_surface(struct egl_compositor *ec, +static struct wlsc_surface * +wlsc_surface_create_from_cairo_surface(struct wlsc_compositor *ec, cairo_surface_t *surface, int x, int y, int width, int height) { - struct egl_surface *es; + struct wlsc_surface *es; int stride; void *data; @@ -255,7 +255,7 @@ egl_surface_create_from_cairo_surface(struct egl_compositor *ec, } static void -egl_surface_destroy(struct egl_surface *es, struct egl_compositor *ec) +wlsc_surface_destroy(struct wlsc_surface *es, struct wlsc_compositor *ec) { glDeleteTextures(1, &es->texture); if (es->surface != EGL_NO_SURFACE) @@ -279,10 +279,10 @@ pointer_path(cairo_t *cr, int x, int y) cairo_close_path(cr); } -static struct egl_surface * -pointer_create(struct egl_compositor *ec, int x, int y, int width, int height) +static struct wlsc_surface * +pointer_create(struct wlsc_compositor *ec, int x, int y, int width, int height) { - struct egl_surface *es; + struct wlsc_surface *es; const int hotspot_x = 16, hotspot_y = 16; cairo_surface_t *surface; cairo_t *cr; @@ -304,7 +304,7 @@ pointer_create(struct egl_compositor *ec, int x, int y, int width, int height) cairo_fill(cr); cairo_destroy(cr); - es = egl_surface_create_from_cairo_surface(ec, + es = wlsc_surface_create_from_cairo_surface(ec, surface, x - hotspot_x, y - hotspot_y, @@ -315,10 +315,10 @@ pointer_create(struct egl_compositor *ec, int x, int y, int width, int height) return es; } -static struct egl_surface * +static struct wlsc_surface * background_create(struct wlsc_output *output, const char *filename) { - struct egl_surface *background; + struct wlsc_surface *background; GdkPixbuf *pixbuf; GError *error = NULL; void *data; @@ -369,9 +369,9 @@ background_create(struct wlsc_output *output, const char *filename) } static void -draw_surface(struct egl_surface *es) +draw_surface(struct wlsc_surface *es) { - struct egl_compositor *ec = es->compositor; + struct wlsc_compositor *ec = es->compositor; GLint vertices[12]; GLint tex_coords[12] = { 0, 0, 0, 1, 1, 0, 1, 1 }; GLuint indices[4] = { 0, 1, 2, 3 }; @@ -414,8 +414,8 @@ draw_surface(struct egl_surface *es) static void repaint_output(struct wlsc_output *output) { - struct egl_compositor *ec = output->ec; - struct egl_surface *es; + struct wlsc_compositor *ec = output->ec; + struct wlsc_surface *es; struct wlsc_input_device *eid; if (!eglMakeCurrent(ec->display, output->surface, output->surface, ec->context)) { @@ -436,12 +436,12 @@ repaint_output(struct wlsc_output *output) glClear(GL_COLOR_BUFFER_BIT); es = container_of(ec->surface_list.next, - struct egl_surface, link); + struct wlsc_surface, link); while (&es->link != &ec->surface_list) { draw_surface(es); es = container_of(es->link.next, - struct egl_surface, link); + struct wlsc_surface, link); } eid = container_of(ec->input_device_list.next, @@ -459,7 +459,7 @@ repaint_output(struct wlsc_output *output) static void repaint(void *data) { - struct egl_compositor *ec = data; + struct wlsc_compositor *ec = data; struct wlsc_output *output; struct timespec ts; uint32_t msecs; @@ -489,7 +489,7 @@ repaint(void *data) } static void -schedule_repaint(struct egl_compositor *ec) +schedule_repaint(struct wlsc_compositor *ec) { struct wl_event_loop *loop; @@ -504,11 +504,11 @@ static void surface_destroy(struct wl_client *client, struct wl_surface *surface) { - struct egl_surface *es = (struct egl_surface *) surface; - struct egl_compositor *ec = es->compositor; + struct wlsc_surface *es = (struct wlsc_surface *) surface; + struct wlsc_compositor *ec = es->compositor; wl_list_remove(&es->link); - egl_surface_destroy(es, ec); + wlsc_surface_destroy(es, ec); schedule_repaint(ec); } @@ -519,8 +519,8 @@ surface_attach(struct wl_client *client, uint32_t width, uint32_t height, uint32_t stride, struct wl_object *visual) { - struct egl_surface *es = (struct egl_surface *) surface; - struct egl_compositor *ec = es->compositor; + struct wlsc_surface *es = (struct wlsc_surface *) surface; + struct wlsc_compositor *ec = es->compositor; if (es->surface != EGL_NO_SURFACE) eglDestroySurface(ec->display, es->surface); @@ -551,7 +551,7 @@ surface_map(struct wl_client *client, struct wl_surface *surface, int32_t x, int32_t y, int32_t width, int32_t height) { - struct egl_surface *es = (struct egl_surface *) surface; + struct wlsc_surface *es = (struct wlsc_surface *) surface; es->map.x = x; es->map.y = y; @@ -566,8 +566,8 @@ surface_copy(struct wl_client *client, uint32_t name, uint32_t stride, int32_t x, int32_t y, int32_t width, int32_t height) { - struct egl_surface *es = (struct egl_surface *) surface; - struct egl_compositor *ec = es->compositor; + struct wlsc_surface *es = (struct wlsc_surface *) surface; + struct wlsc_compositor *ec = es->compositor; EGLSurface src; /* FIXME: glCopyPixels should work, but then we'll have to @@ -603,8 +603,8 @@ static void compositor_create_surface(struct wl_client *client, struct wl_compositor *compositor, uint32_t id) { - struct egl_compositor *ec = (struct egl_compositor *) compositor; - struct egl_surface *es; + struct wlsc_compositor *ec = (struct wlsc_compositor *) compositor; + struct wlsc_surface *es; es = malloc(sizeof *es); if (es == NULL) @@ -623,7 +623,7 @@ static void compositor_commit(struct wl_client *client, struct wl_compositor *compositor, uint32_t key) { - struct egl_compositor *ec = (struct egl_compositor *) compositor; + struct wlsc_compositor *ec = (struct wlsc_compositor *) compositor; schedule_repaint(ec); wl_client_send_acknowledge(client, compositor, key, ec->current_frame); @@ -634,17 +634,17 @@ const static struct wl_compositor_interface compositor_interface = { compositor_commit }; -static struct egl_surface * +static struct wlsc_surface * pick_surface(struct wlsc_input_device *device, int32_t *sx, int32_t *sy) { - struct egl_compositor *ec = device->ec; - struct egl_surface *es; + struct wlsc_compositor *ec = device->ec; + struct wlsc_surface *es; if (device->grab > 0) return device->grab_surface; es = container_of(ec->surface_list.prev, - struct egl_surface, link); + struct wlsc_surface, link); while (&es->link != &ec->surface_list) { if (es->map.x <= device->x && device->x < es->map.x + es->map.width && @@ -653,7 +653,7 @@ pick_surface(struct wlsc_input_device *device, int32_t *sx, int32_t *sy) return es; es = container_of(es->link.prev, - struct egl_surface, link); + struct wlsc_surface, link); /* Transform to surface coordinates. */ *sx = (device->x - es->map.x) * es->width / es->map.width; @@ -666,8 +666,8 @@ pick_surface(struct wlsc_input_device *device, int32_t *sx, int32_t *sy) void notify_motion(struct wlsc_input_device *device, int x, int y) { - struct egl_surface *es; - struct egl_compositor *ec = device->ec; + struct wlsc_surface *es; + struct wlsc_compositor *ec = device->ec; struct wlsc_output *output; const int hotspot_x = 16, hotspot_y = 16; int32_t sx, sy; @@ -703,8 +703,8 @@ void notify_button(struct wlsc_input_device *device, int32_t button, int32_t state) { - struct egl_surface *es; - struct egl_compositor *ec = device->ec; + struct wlsc_surface *es; + struct wlsc_compositor *ec = device->ec; int32_t sx, sy; if (!ec->vt_active) @@ -738,7 +738,7 @@ void notify_key(struct wlsc_input_device *device, uint32_t key, uint32_t state) { - struct egl_compositor *ec = device->ec; + struct wlsc_compositor *ec = device->ec; if (!ec->vt_active) return; @@ -754,7 +754,7 @@ evdev_input_device_create(struct wlsc_input_device *device, struct wl_display *display, const char *path); static struct wlsc_input_device * -create_input_device(struct egl_compositor *ec) +create_input_device(struct wlsc_compositor *ec) { struct wlsc_input_device *device; @@ -795,13 +795,13 @@ post_output_geometry(struct wl_client *client, struct wl_object *global) } static int -init_egl(struct egl_compositor *ec, struct udev_device *device) +init_egl(struct wlsc_compositor *ec, struct udev_device *device) { static const EGLint config_attribs[] = { - EGL_DEPTH_SIZE, 0, - EGL_STENCIL_SIZE, 0, - EGL_CONFIG_CAVEAT, EGL_NONE, - EGL_RED_SIZE, 8, + EGL_DEPTH_SIZE, 0, + EGL_STENCIL_SIZE, 0, + EGL_CONFIG_CAVEAT, EGL_NONE, + EGL_RED_SIZE, 8, EGL_NONE }; @@ -830,7 +830,7 @@ init_egl(struct egl_compositor *ec, struct udev_device *device) } static int -create_output(struct egl_compositor *ec, struct udev_device *device) +create_output(struct wlsc_compositor *ec, struct udev_device *device) { const static EGLint surface_attribs[] = { EGL_RENDER_BUFFER, EGL_BACK_BUFFER, @@ -960,7 +960,7 @@ static const struct wl_interface visual_interface = { }; static void -add_visuals(struct egl_compositor *ec) +add_visuals(struct wlsc_compositor *ec) { ec->argb_visual.base.interface = &visual_interface; ec->argb_visual.base.implementation = NULL; @@ -982,7 +982,7 @@ add_visuals(struct egl_compositor *ec) static void on_enter_vt(int signal_number, void *data) { - struct egl_compositor *ec = data; + struct wlsc_compositor *ec = data; struct wlsc_output *output; int ret, fd; @@ -1005,7 +1005,7 @@ static void on_enter_vt(int signal_number, void *data) static void on_leave_vt(int signal_number, void *data) { - struct egl_compositor *ec = data; + struct wlsc_compositor *ec = data; ioctl (ec->tty_fd, VT_RELDISP, 1); ec->vt_active = FALSE; @@ -1014,7 +1014,7 @@ static void on_leave_vt(int signal_number, void *data) static void on_tty_input(int fd, uint32_t mask, void *data) { - struct egl_compositor *ec = data; + struct wlsc_compositor *ec = data; /* Ignore input to tty. We get keyboard events from evdev */ @@ -1023,7 +1023,7 @@ on_tty_input(int fd, uint32_t mask, void *data) static void on_term_signal(int signal_number, void *data) { - struct egl_compositor *ec = data; + struct wlsc_compositor *ec = data; if (tcsetattr(ec->tty_fd, TCSANOW, &ec->terminal_attributes) < 0) fprintf(stderr, "could not restore terminal to canonical mode\n"); @@ -1031,7 +1031,7 @@ static void on_term_signal(int signal_number, void *data) exit(0); } -static int setup_tty(struct egl_compositor *ec, struct wl_event_loop *loop) +static int setup_tty(struct wlsc_compositor *ec, struct wl_event_loop *loop) { struct termios raw_attributes; struct vt_mode mode = { 0 }; @@ -1081,7 +1081,7 @@ static int setup_tty(struct egl_compositor *ec, struct wl_event_loop *loop) } static int -init_libudev(struct egl_compositor *ec) +init_libudev(struct wlsc_compositor *ec) { struct udev_enumerate *e; struct udev_list_entry *entry; @@ -1130,10 +1130,10 @@ init_libudev(struct egl_compositor *ec) return 0; } -static struct egl_compositor * -egl_compositor_create(struct wl_display *display) +static struct wlsc_compositor * +wlsc_compositor_create(struct wl_display *display) { - struct egl_compositor *ec; + struct wlsc_compositor *ec; struct screenshooter *shooter; struct wl_event_loop *loop; @@ -1178,7 +1178,7 @@ static const char socket_name[] = "\0wayland"; int main(int argc, char *argv[]) { struct wl_display *display; - struct egl_compositor *ec; + struct wlsc_compositor *ec; GError *error = NULL; GOptionContext *context; @@ -1191,7 +1191,7 @@ int main(int argc, char *argv[]) display = wl_display_create(); - ec = egl_compositor_create(display); + ec = wlsc_compositor_create(display); if (ec == NULL) { fprintf(stderr, "failed to create compositor\n"); exit(EXIT_FAILURE);