master
ブランチ master
ShaderPlayground / deps / xlibre / include / X11 / extensions / XRes.h
2.7 KB、136行 生 Blame 履歴
1/*
2 Copyright (c) 2002 XFree86 Inc
3*/
4
5#ifndef _XRES_H
6#define _XRES_H
7
8#include <X11/Xfuncproto.h>
9
10/* v1.0 */
11
12typedef struct {
13 XID resource_base;
14 XID resource_mask;
15} XResClient;
16
17typedef struct {
18 Atom resource_type;
19 unsigned int count;
20} XResType;
21
22/* v1.2 */
23
24typedef enum {
25 XRES_CLIENT_ID_XID,
26 XRES_CLIENT_ID_PID,
27 XRES_CLIENT_ID_NR
28} XResClientIdType;
29
30typedef enum {
31 XRES_CLIENT_ID_XID_MASK = 1 << XRES_CLIENT_ID_XID,
32 XRES_CLIENT_ID_PID_MASK = 1 << XRES_CLIENT_ID_PID
33} XResClientIdMask;
34
35typedef struct {
36 XID client;
37 unsigned int mask;
38} XResClientIdSpec;
39
40typedef struct {
41 XResClientIdSpec spec;
42 long length;
43 void *value;
44} XResClientIdValue;
45
46typedef struct {
47 XID resource;
48 Atom type;
49} XResResourceIdSpec;
50
51typedef struct {
52 XResResourceIdSpec spec;
53 long bytes;
54 long ref_count;
55 long use_count;
56} XResResourceSizeSpec;
57
58typedef struct {
59 XResResourceSizeSpec size;
60 long num_cross_references;
61 XResResourceSizeSpec *cross_references;
62} XResResourceSizeValue;
63
64_XFUNCPROTOBEGIN
65
66/* v1.0 */
67
68Bool XResQueryExtension(
69 Display *dpy,
70 int *event_base_return,
71 int *error_base_return
72);
73
74Status XResQueryVersion(
75 Display *dpy,
76 int *major_version_return,
77 int *minor_version_return
78);
79
80Status XResQueryClients(
81 Display *dpy,
82 int *num_clients,
83 XResClient **clients
84);
85
86Status XResQueryClientResources(
87 Display *dpy,
88 XID xid,
89 int *num_types,
90 XResType **types
91);
92
93Status XResQueryClientPixmapBytes(
94 Display *dpy,
95 XID xid,
96 unsigned long *bytes
97);
98
99/* v1.2 */
100
101/* Returns an array of uint32_t values, not an array of long */
102Status XResQueryClientIds(
103 Display *dpy,
104 long num_specs,
105 XResClientIdSpec *client_specs, /* in */
106 long *num_ids, /* out */
107 XResClientIdValue **client_ids /* out */
108);
109
110XResClientIdType XResGetClientIdType(XResClientIdValue *value);
111
112/* return -1 if no pid associated to the value */
113pid_t XResGetClientPid(XResClientIdValue *value);
114
115void XResClientIdsDestroy(
116 long num_ids,
117 XResClientIdValue *client_ids
118);
119
120Status XResQueryResourceBytes(
121 Display *dpy,
122 XID client,
123 long num_specs,
124 XResResourceIdSpec *resource_specs, /* in */
125 long *num_sizes, /* out */
126 XResResourceSizeValue **sizes /* out */
127);
128
129void XResResourceSizeValuesDestroy(
130 long num_sizes,
131 XResResourceSizeValue *sizes
132);
133
134_XFUNCPROTOEND
135
136#endif /* _XRES_H */