Home | History | Annotate | Download | only in cursor
      1 /*
      2  * Copyright  2012 Intel Corporation
      3  *
      4  * Permission is hereby granted, free of charge, to any person obtaining
      5  * a copy of this software and associated documentation files (the
      6  * "Software"), to deal in the Software without restriction, including
      7  * without limitation the rights to use, copy, modify, merge, publish,
      8  * distribute, sublicense, and/or sell copies of the Software, and to
      9  * permit persons to whom the Software is furnished to do so, subject to
     10  * the following conditions:
     11  *
     12  * The above copyright notice and this permission notice (including the
     13  * next paragraph) shall be included in all copies or substantial
     14  * portions of the Software.
     15  *
     16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     17  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     18  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     19  * NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
     20  * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
     21  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
     22  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
     23  * SOFTWARE.
     24  */
     25 
     26 #ifndef WAYLAND_CURSOR_H
     27 #define WAYLAND_CURSOR_H
     28 
     29 #include <stdint.h>
     30 
     31 #ifdef  __cplusplus
     32 extern "C" {
     33 #endif
     34 
     35 struct wl_cursor_theme;
     36 
     37 struct wl_cursor_image {
     38 	uint32_t width;		/* actual width */
     39 	uint32_t height;	/* actual height */
     40 	uint32_t hotspot_x;	/* hot spot x (must be inside image) */
     41 	uint32_t hotspot_y;	/* hot spot y (must be inside image) */
     42 	uint32_t delay;		/* animation delay to next frame (ms) */
     43 };
     44 
     45 struct wl_cursor {
     46 	unsigned int image_count;
     47 	struct wl_cursor_image **images;
     48 	char *name;
     49 };
     50 
     51 struct wl_shm;
     52 
     53 struct wl_cursor_theme *
     54 wl_cursor_theme_load(const char *name, int size, struct wl_shm *shm);
     55 
     56 void
     57 wl_cursor_theme_destroy(struct wl_cursor_theme *theme);
     58 
     59 struct wl_cursor *
     60 wl_cursor_theme_get_cursor(struct wl_cursor_theme *theme,
     61 			   const char *name);
     62 
     63 struct wl_buffer *
     64 wl_cursor_image_get_buffer(struct wl_cursor_image *image);
     65 
     66 int
     67 wl_cursor_frame(struct wl_cursor *cursor, uint32_t time);
     68 
     69 int
     70 wl_cursor_frame_and_duration(struct wl_cursor *cursor, uint32_t time,
     71 			     uint32_t *duration);
     72 
     73 #ifdef  __cplusplus
     74 }
     75 #endif
     76 
     77 #endif
     78