Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5563 serge 1
/*
2
 * Copyright 2009 VMware, Inc.
3
 * All Rights Reserved.
4
 *
5
 * Permission is hereby granted, free of charge, to any person obtaining a
6
 * copy of this software and associated documentation files (the "Software"),
7
 * to deal in the Software without restriction, including without limitation
8
 * on the rights to use, copy, modify, merge, publish, distribute, sub
9
 * license, and/or sell copies of the Software, and to permit persons to whom
10
 * the Software is furnished to do so, subject to the following conditions:
11
 *
12
 * The above copyright notice and this permission notice (including the next
13
 * paragraph) shall be included in all copies or substantial portions of the
14
 * Software.
15
 *
16
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
19
 * VMWARE AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
20
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
21
 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22
 * USE OR OTHER DEALINGS IN THE SOFTWARE.
23
 */
24
 
25
/*
26
 * This file holds structs decelerations and function prototypes for one of
27
 * the rbug extensions. Implementation of the functions is in the same folder
28
 * in the c file matching this file's name.
29
 *
30
 * The structs what is returned from the demarshal functions. The functions
31
 * starting rbug_send_* encodes a call to the write format and sends that to
32
 * the supplied connection, while functions starting with rbug_demarshal_*
33
 * demarshal data from the wire protocol.
34
 *
35
 * Structs and functions ending with _reply are replies to requests.
36
 */
37
 
38
#ifndef _RBUG_PROTO_TEXTURE_H_
39
#define _RBUG_PROTO_TEXTURE_H_
40
 
41
#include "rbug_proto.h"
42
#include "rbug_core.h"
43
 
44
struct rbug_proto_texture_list
45
{
46
	struct rbug_header header;
47
};
48
 
49
struct rbug_proto_texture_info
50
{
51
	struct rbug_header header;
52
	rbug_texture_t texture;
53
};
54
 
55
struct rbug_proto_texture_write
56
{
57
	struct rbug_header header;
58
	rbug_texture_t texture;
59
	uint32_t face;
60
	uint32_t level;
61
	uint32_t zslice;
62
	uint32_t x;
63
	uint32_t y;
64
	uint32_t w;
65
	uint32_t h;
66
	uint8_t *data;
67
	uint32_t data_len;
68
	uint32_t stride;
69
};
70
 
71
struct rbug_proto_texture_read
72
{
73
	struct rbug_header header;
74
	rbug_texture_t texture;
75
	uint32_t face;
76
	uint32_t level;
77
	uint32_t zslice;
78
	uint32_t x;
79
	uint32_t y;
80
	uint32_t w;
81
	uint32_t h;
82
};
83
 
84
struct rbug_proto_texture_list_reply
85
{
86
	struct rbug_header header;
87
	uint32_t serial;
88
	rbug_texture_t *textures;
89
	uint32_t textures_len;
90
};
91
 
92
struct rbug_proto_texture_info_reply
93
{
94
	struct rbug_header header;
95
	uint32_t serial;
96
	uint32_t target;
97
	uint32_t format;
98
	uint32_t *width;
99
	uint32_t width_len;
100
	uint32_t *height;
101
	uint32_t height_len;
102
	uint32_t *depth;
103
	uint32_t depth_len;
104
	uint32_t blockw;
105
	uint32_t blockh;
106
	uint32_t blocksize;
107
	uint32_t last_level;
108
	uint32_t nr_samples;
109
	uint32_t tex_usage;
110
};
111
 
112
struct rbug_proto_texture_read_reply
113
{
114
	struct rbug_header header;
115
	uint32_t serial;
116
	uint32_t format;
117
	uint32_t blockw;
118
	uint32_t blockh;
119
	uint32_t blocksize;
120
	uint8_t *data;
121
	uint32_t data_len;
122
	uint32_t stride;
123
};
124
 
125
int rbug_send_texture_list(struct rbug_connection *__con,
126
                           uint32_t *__serial);
127
 
128
int rbug_send_texture_info(struct rbug_connection *__con,
129
                           rbug_texture_t texture,
130
                           uint32_t *__serial);
131
 
132
int rbug_send_texture_write(struct rbug_connection *__con,
133
                            rbug_texture_t texture,
134
                            uint32_t face,
135
                            uint32_t level,
136
                            uint32_t zslice,
137
                            uint32_t x,
138
                            uint32_t y,
139
                            uint32_t w,
140
                            uint32_t h,
141
                            uint8_t *data,
142
                            uint32_t data_len,
143
                            uint32_t stride,
144
                            uint32_t *__serial);
145
 
146
int rbug_send_texture_read(struct rbug_connection *__con,
147
                           rbug_texture_t texture,
148
                           uint32_t face,
149
                           uint32_t level,
150
                           uint32_t zslice,
151
                           uint32_t x,
152
                           uint32_t y,
153
                           uint32_t w,
154
                           uint32_t h,
155
                           uint32_t *__serial);
156
 
157
int rbug_send_texture_list_reply(struct rbug_connection *__con,
158
                                 uint32_t serial,
159
                                 rbug_texture_t *textures,
160
                                 uint32_t textures_len,
161
                                 uint32_t *__serial);
162
 
163
int rbug_send_texture_info_reply(struct rbug_connection *__con,
164
                                 uint32_t serial,
165
                                 uint32_t target,
166
                                 uint32_t format,
167
                                 uint32_t *width,
168
                                 uint32_t width_len,
169
                                 uint32_t *height,
170
                                 uint32_t height_len,
171
                                 uint32_t *depth,
172
                                 uint32_t depth_len,
173
                                 uint32_t blockw,
174
                                 uint32_t blockh,
175
                                 uint32_t blocksize,
176
                                 uint32_t last_level,
177
                                 uint32_t nr_samples,
178
                                 uint32_t tex_usage,
179
                                 uint32_t *__serial);
180
 
181
int rbug_send_texture_read_reply(struct rbug_connection *__con,
182
                                 uint32_t serial,
183
                                 uint32_t format,
184
                                 uint32_t blockw,
185
                                 uint32_t blockh,
186
                                 uint32_t blocksize,
187
                                 uint8_t *data,
188
                                 uint32_t data_len,
189
                                 uint32_t stride,
190
                                 uint32_t *__serial);
191
 
192
struct rbug_proto_texture_list * rbug_demarshal_texture_list(struct rbug_proto_header *header);
193
 
194
struct rbug_proto_texture_info * rbug_demarshal_texture_info(struct rbug_proto_header *header);
195
 
196
struct rbug_proto_texture_write * rbug_demarshal_texture_write(struct rbug_proto_header *header);
197
 
198
struct rbug_proto_texture_read * rbug_demarshal_texture_read(struct rbug_proto_header *header);
199
 
200
struct rbug_proto_texture_list_reply * rbug_demarshal_texture_list_reply(struct rbug_proto_header *header);
201
 
202
struct rbug_proto_texture_info_reply * rbug_demarshal_texture_info_reply(struct rbug_proto_header *header);
203
 
204
struct rbug_proto_texture_read_reply * rbug_demarshal_texture_read_reply(struct rbug_proto_header *header);
205
 
206
#endif