471
471
* wl_shm_format - pixel formats
472
472
* @WL_SHM_FORMAT_ARGB8888: 32-bit ARGB format
473
473
* @WL_SHM_FORMAT_XRGB8888: 32-bit RGB format
474
* @WL_SHM_FORMAT_C8: (none)
475
* @WL_SHM_FORMAT_RGB332: (none)
476
* @WL_SHM_FORMAT_BGR233: (none)
477
* @WL_SHM_FORMAT_XRGB4444: (none)
478
* @WL_SHM_FORMAT_XBGR4444: (none)
479
* @WL_SHM_FORMAT_RGBX4444: (none)
480
* @WL_SHM_FORMAT_BGRX4444: (none)
481
* @WL_SHM_FORMAT_ARGB4444: (none)
482
* @WL_SHM_FORMAT_ABGR4444: (none)
483
* @WL_SHM_FORMAT_RGBA4444: (none)
484
* @WL_SHM_FORMAT_BGRA4444: (none)
485
* @WL_SHM_FORMAT_XRGB1555: (none)
486
* @WL_SHM_FORMAT_XBGR1555: (none)
487
* @WL_SHM_FORMAT_RGBX5551: (none)
488
* @WL_SHM_FORMAT_BGRX5551: (none)
489
* @WL_SHM_FORMAT_ARGB1555: (none)
490
* @WL_SHM_FORMAT_ABGR1555: (none)
491
* @WL_SHM_FORMAT_RGBA5551: (none)
492
* @WL_SHM_FORMAT_BGRA5551: (none)
493
* @WL_SHM_FORMAT_RGB565: (none)
494
* @WL_SHM_FORMAT_BGR565: (none)
495
* @WL_SHM_FORMAT_RGB888: (none)
496
* @WL_SHM_FORMAT_BGR888: (none)
497
* @WL_SHM_FORMAT_XBGR8888: (none)
498
* @WL_SHM_FORMAT_RGBX8888: (none)
499
* @WL_SHM_FORMAT_BGRX8888: (none)
500
* @WL_SHM_FORMAT_ABGR8888: (none)
501
* @WL_SHM_FORMAT_RGBA8888: (none)
502
* @WL_SHM_FORMAT_BGRA8888: (none)
503
* @WL_SHM_FORMAT_XRGB2101010: (none)
504
* @WL_SHM_FORMAT_XBGR2101010: (none)
505
* @WL_SHM_FORMAT_RGBX1010102: (none)
506
* @WL_SHM_FORMAT_BGRX1010102: (none)
507
* @WL_SHM_FORMAT_ARGB2101010: (none)
508
* @WL_SHM_FORMAT_ABGR2101010: (none)
509
* @WL_SHM_FORMAT_RGBA1010102: (none)
510
* @WL_SHM_FORMAT_BGRA1010102: (none)
511
* @WL_SHM_FORMAT_YUYV: (none)
512
* @WL_SHM_FORMAT_YVYU: (none)
513
* @WL_SHM_FORMAT_UYVY: (none)
514
* @WL_SHM_FORMAT_VYUY: (none)
515
* @WL_SHM_FORMAT_AYUV: (none)
516
* @WL_SHM_FORMAT_NV12: (none)
517
* @WL_SHM_FORMAT_NV21: (none)
518
* @WL_SHM_FORMAT_NV16: (none)
519
* @WL_SHM_FORMAT_NV61: (none)
520
* @WL_SHM_FORMAT_YUV410: (none)
521
* @WL_SHM_FORMAT_YVU410: (none)
522
* @WL_SHM_FORMAT_YUV411: (none)
523
* @WL_SHM_FORMAT_YVU411: (none)
524
* @WL_SHM_FORMAT_YUV420: (none)
525
* @WL_SHM_FORMAT_YVU420: (none)
526
* @WL_SHM_FORMAT_YUV422: (none)
527
* @WL_SHM_FORMAT_YVU422: (none)
528
* @WL_SHM_FORMAT_YUV444: (none)
529
* @WL_SHM_FORMAT_YVU444: (none)
475
531
* This describes the memory layout of an individual pixel.
533
* All renderers should support argb8888 and xrgb8888 but any other formats
534
* are optional and may not be supported by the particular renderer in use.
477
536
enum wl_shm_format {
478
537
WL_SHM_FORMAT_ARGB8888 = 0,
479
538
WL_SHM_FORMAT_XRGB8888 = 1,
539
WL_SHM_FORMAT_C8 = 0x20203843,
540
WL_SHM_FORMAT_RGB332 = 0x38424752,
541
WL_SHM_FORMAT_BGR233 = 0x38524742,
542
WL_SHM_FORMAT_XRGB4444 = 0x32315258,
543
WL_SHM_FORMAT_XBGR4444 = 0x32314258,
544
WL_SHM_FORMAT_RGBX4444 = 0x32315852,
545
WL_SHM_FORMAT_BGRX4444 = 0x32315842,
546
WL_SHM_FORMAT_ARGB4444 = 0x32315241,
547
WL_SHM_FORMAT_ABGR4444 = 0x32314241,
548
WL_SHM_FORMAT_RGBA4444 = 0x32314152,
549
WL_SHM_FORMAT_BGRA4444 = 0x32314142,
550
WL_SHM_FORMAT_XRGB1555 = 0x35315258,
551
WL_SHM_FORMAT_XBGR1555 = 0x35314258,
552
WL_SHM_FORMAT_RGBX5551 = 0x35315852,
553
WL_SHM_FORMAT_BGRX5551 = 0x35315842,
554
WL_SHM_FORMAT_ARGB1555 = 0x35315241,
555
WL_SHM_FORMAT_ABGR1555 = 0x35314241,
556
WL_SHM_FORMAT_RGBA5551 = 0x35314152,
557
WL_SHM_FORMAT_BGRA5551 = 0x35314142,
558
WL_SHM_FORMAT_RGB565 = 0x36314752,
559
WL_SHM_FORMAT_BGR565 = 0x36314742,
560
WL_SHM_FORMAT_RGB888 = 0x34324752,
561
WL_SHM_FORMAT_BGR888 = 0x34324742,
562
WL_SHM_FORMAT_XBGR8888 = 0x34324258,
563
WL_SHM_FORMAT_RGBX8888 = 0x34325852,
564
WL_SHM_FORMAT_BGRX8888 = 0x34325842,
565
WL_SHM_FORMAT_ABGR8888 = 0x34324241,
566
WL_SHM_FORMAT_RGBA8888 = 0x34324152,
567
WL_SHM_FORMAT_BGRA8888 = 0x34324142,
568
WL_SHM_FORMAT_XRGB2101010 = 0x30335258,
569
WL_SHM_FORMAT_XBGR2101010 = 0x30334258,
570
WL_SHM_FORMAT_RGBX1010102 = 0x30335852,
571
WL_SHM_FORMAT_BGRX1010102 = 0x30335842,
572
WL_SHM_FORMAT_ARGB2101010 = 0x30335241,
573
WL_SHM_FORMAT_ABGR2101010 = 0x30334241,
574
WL_SHM_FORMAT_RGBA1010102 = 0x30334152,
575
WL_SHM_FORMAT_BGRA1010102 = 0x30334142,
576
WL_SHM_FORMAT_YUYV = 0x56595559,
577
WL_SHM_FORMAT_YVYU = 0x55595659,
578
WL_SHM_FORMAT_UYVY = 0x59565955,
579
WL_SHM_FORMAT_VYUY = 0x59555956,
580
WL_SHM_FORMAT_AYUV = 0x56555941,
581
WL_SHM_FORMAT_NV12 = 0x3231564e,
582
WL_SHM_FORMAT_NV21 = 0x3132564e,
583
WL_SHM_FORMAT_NV16 = 0x3631564e,
584
WL_SHM_FORMAT_NV61 = 0x3136564e,
585
WL_SHM_FORMAT_YUV410 = 0x39565559,
586
WL_SHM_FORMAT_YVU410 = 0x39555659,
587
WL_SHM_FORMAT_YUV411 = 0x31315559,
588
WL_SHM_FORMAT_YVU411 = 0x31315659,
589
WL_SHM_FORMAT_YUV420 = 0x32315559,
590
WL_SHM_FORMAT_YVU420 = 0x32315659,
591
WL_SHM_FORMAT_YUV422 = 0x36315559,
592
WL_SHM_FORMAT_YVU422 = 0x36315659,
593
WL_SHM_FORMAT_YUV444 = 0x34325559,
594
WL_SHM_FORMAT_YVU444 = 0x34325659,
481
596
#endif /* WL_SHM_FORMAT_ENUM */
1678
1828
static inline void
1679
wl_pointer_set_cursor(struct wl_pointer *wl_pointer, uint32_t serial, struct wl_surface *surface, wl_fixed_t hotspot_x, wl_fixed_t hotspot_y)
1829
wl_pointer_set_cursor(struct wl_pointer *wl_pointer, uint32_t serial, struct wl_surface *surface, int32_t hotspot_x, int32_t hotspot_y)
1681
1831
wl_proxy_marshal((struct wl_proxy *) wl_pointer,
1682
1832
WL_POINTER_SET_CURSOR, serial, surface, hotspot_x, hotspot_y);
1836
wl_pointer_release(struct wl_pointer *wl_pointer)
1838
wl_proxy_marshal((struct wl_proxy *) wl_pointer,
1839
WL_POINTER_RELEASE);
1841
wl_proxy_destroy((struct wl_proxy *) wl_pointer);
1685
1844
#ifndef WL_KEYBOARD_KEYMAP_FORMAT_ENUM
1686
1845
#define WL_KEYBOARD_KEYMAP_FORMAT_ENUM
1688
1847
* wl_keyboard_keymap_format - keyboard mapping format
1848
* @WL_KEYBOARD_KEYMAP_FORMAT_NO_KEYMAP: no keymap; client must
1849
* understand how to interpret the raw keycode
1689
1850
* @WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1: libxkbcommon compatible
1691
1852
* This specifies the format of the keymap provided to the client with
1692
1853
* the wl_keyboard.keymap event.
1694
1855
enum wl_keyboard_keymap_format {
1856
WL_KEYBOARD_KEYMAP_FORMAT_NO_KEYMAP = 0,
1695
1857
WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1 = 1,
1697
1859
#endif /* WL_KEYBOARD_KEYMAP_FORMAT_ENUM */
2080
2282
int32_t height,
2081
2283
int32_t refresh);
2285
* done - sent all information about output
2287
* This event is sent after all other properties has been sent
2288
* after binding to the output object and after any other property
2289
* changes done after that. This allows changes to the output
2290
* properties to be seen as atomic, even if they happen via
2294
void (*done)(void *data,
2295
struct wl_output *wl_output);
2297
* scale - output scaling properties
2298
* @factor: scaling factor of output
2300
* This event contains scaling geometry information that is not
2301
* in the geometry event. It may be sent after binding the output
2302
* object or if the output scale changes later. If it is not sent,
2303
* the client should assume a scale of 1.
2305
* A scale larger than 1 means that the compositor will
2306
* automatically scale surface buffers by this amount when
2307
* rendering. This is used for very high resolution displays where
2308
* applications rendering at the native resolution would be too
2309
* small to be legible.
2311
* It is intended that scaling aware clients track the current
2312
* output of a surface, and if it is on a scaled output it should
2313
* use wl_surface.set_buffer_scale with the scale of the output.
2314
* That way the compositor can avoid scaling the surface, and the
2315
* client can supply a higher detail image.
2318
void (*scale)(void *data,
2319
struct wl_output *wl_output,
2084
2323
static inline int