Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4358 Serge 1
/*
2
 * Copyright (C) 2009-2010 Francisco Jerez.
3
 * All Rights Reserved.
4
 *
5
 * Permission is hereby granted, free of charge, to any person obtaining
6
 * a copy of this software and associated documentation files (the
7
 * "Software"), to deal in the Software without restriction, including
8
 * without limitation the rights to use, copy, modify, merge, publish,
9
 * distribute, sublicense, and/or sell copies of the Software, and to
10
 * permit persons to whom the Software is furnished to do so, subject to
11
 * the following conditions:
12
 *
13
 * The above copyright notice and this permission notice (including the
14
 * next paragraph) shall be included in all copies or substantial
15
 * portions of the Software.
16
 *
17
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
20
 * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
21
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
 *
25
 */
26
 
27
#ifndef __NOUVEAU_ARRAY_H__
28
#define __NOUVEAU_ARRAY_H__
29
 
30
struct nouveau_array;
31
 
32
typedef unsigned (*extract_u_t)(struct nouveau_array *, int, int);
33
typedef float (*extract_f_t)(struct nouveau_array *, int, int);
34
 
35
struct nouveau_array {
36
	int attr;
37
	int stride, fields, type;
38
 
39
	struct nouveau_bo *bo;
40
	unsigned offset;
41
	const void *buf;
42
 
43
	extract_u_t extract_u;
44
	extract_f_t extract_f;
45
};
46
 
47
void
48
nouveau_init_array(struct nouveau_array *a, int attr, int stride,
49
		   int fields, int type, struct gl_buffer_object *obj,
50
		   const void *ptr, GLboolean map, struct gl_context *ctx);
51
 
52
void
53
nouveau_deinit_array(struct nouveau_array *a);
54
 
55
void
56
nouveau_cleanup_array(struct nouveau_array *a);
57
 
58
#endif