aboutsummaryrefslogtreecommitdiffstats
path: root/pointer.c
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@redhat.com>2008-12-02 15:16:11 -0500
committerKristian Høgsberg <krh@redhat.com>2008-12-02 15:16:11 -0500
commit3620295d17f43b61070916e1e44a67f4df855dac (patch)
tree84984e4a50991ae71126bcb68cb17432b120396e /pointer.c
parentPut Wayland under the MIT license. (diff)
downloadwayland-3620295d17f43b61070916e1e44a67f4df855dac.tar
wayland-3620295d17f43b61070916e1e44a67f4df855dac.tar.gz
wayland-3620295d17f43b61070916e1e44a67f4df855dac.tar.bz2
wayland-3620295d17f43b61070916e1e44a67f4df855dac.tar.lz
wayland-3620295d17f43b61070916e1e44a67f4df855dac.tar.xz
wayland-3620295d17f43b61070916e1e44a67f4df855dac.tar.zst
wayland-3620295d17f43b61070916e1e44a67f4df855dac.zip
Drop unused clients, pointer and window.
Diffstat (limited to 'pointer.c')
-rw-r--r--pointer.c120
1 files changed, 0 insertions, 120 deletions
diff --git a/pointer.c b/pointer.c
deleted file mode 100644
index 4da4053..0000000
--- a/pointer.c
+++ /dev/null
@@ -1,120 +0,0 @@
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <math.h>
-#include <cairo.h>
-#include <glib.h>
-
-#include "wayland-client.h"
-#include "wayland-glib.h"
-
-#include "cairo-util.h"
-
-static const char gem_device[] = "/dev/dri/card0";
-static const char socket_name[] = "\0wayland";
-
-static void
-pointer_path(cairo_t *cr, int x, int y)
-{
- const int end = 4, tx = 2, ty = 7, dx = 3, dy = 5;
- const int width = 16, height = 16;
-
- cairo_move_to(cr, x, y);
- cairo_line_to(cr, x + tx, y + ty);
- cairo_line_to(cr, x + dx, y + dy);
- cairo_line_to(cr, x + width - end, y + height);
- cairo_line_to(cr, x + width, y + height - end);
- cairo_line_to(cr, x + dy, y + dx);
- cairo_line_to(cr, x + ty, y + tx);
- cairo_close_path(cr);
-}
-
-static void *
-draw_pointer(int width, int height)
-{
- const int hotspot_x = 16, hotspot_y = 16;
- cairo_surface_t *surface;
- cairo_t *cr;
-
- surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24,
- width, height);
-
- cr = cairo_create(surface);
- pointer_path(cr, hotspot_x + 3, hotspot_y + 2);
- cairo_set_line_width (cr, 2);
- cairo_set_source_rgb(cr, 0, 0, 0);
- cairo_stroke_preserve(cr);
- cairo_fill(cr);
- blur_surface(surface, INT_MAX);
-
- pointer_path(cr, hotspot_x, hotspot_y);
- cairo_stroke_preserve(cr);
- cairo_set_source_rgb(cr, 1, 1, 1);
- cairo_fill(cr);
- cairo_destroy(cr);
-
- return surface;
-}
-
-struct pointer {
- int width, height;
- struct wl_surface *surface;
-};
-
-static void
-event_handler(struct wl_display *display,
- uint32_t opcode,
- uint32_t arg1, uint32_t arg2, void *data)
-{
- struct pointer *pointer = data;
-
- if (opcode == 0)
- wl_surface_map(pointer->surface, arg1, arg2, pointer->width, pointer->height);
-}
-
-int main(int argc, char *argv[])
-{
- struct wl_display *display;
- struct pointer pointer;
- int fd;
- cairo_surface_t *s;
- GMainLoop *loop;
- GSource *source;
- struct buffer *buffer;
-
- fd = open(gem_device, O_RDWR);
- if (fd < 0) {
- fprintf(stderr, "drm open failed: %m\n");
- return -1;
- }
-
- display = wl_display_create(socket_name);
- if (display == NULL) {
- fprintf(stderr, "failed to create display: %m\n");
- return -1;
- }
-
- loop = g_main_loop_new(NULL, FALSE);
- source = wayland_source_new(display);
- g_source_attach(source, NULL);
-
- pointer.width = 48;
- pointer.height = 48;
- pointer.surface = wl_display_create_surface(display);
-
- s = draw_pointer(pointer.width, pointer.height);
- buffer = buffer_create_from_cairo_surface(fd, s);
-
- wl_surface_attach(pointer.surface, buffer->name,
- buffer->width, buffer->height, buffer->stride);
- wl_surface_map(pointer.surface, 512, 384, pointer.width, pointer.height);
-
- wl_display_set_event_handler(display, event_handler, &pointer);
-
- g_main_loop_run(loop);
-
- return 0;
-}