Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
1901 serge 1
/*
2
 * Mesa 3-D graphics library
3
 * Version:  6.5.1
4
 *
5
 * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved.
6
 * Copyright (c) 2008 VMware, Inc.
7
 *
8
 * Permission is hereby granted, free of charge, to any person obtaining a
9
 * copy of this software and associated documentation files (the "Software"),
10
 * to deal in the Software without restriction, including without limitation
11
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12
 * and/or sell copies of the Software, and to permit persons to whom the
13
 * Software is furnished to do so, subject to the following conditions:
14
 *
15
 * The above copyright notice and this permission notice shall be included
16
 * in all copies or substantial portions of the Software.
17
 *
18
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
21
 * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
22
 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
23
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
 */
25
 
26
 
27
/**
28
 * \file texstore.h
29
 * Texture image storage routines.
30
 *
31
 * \author Brian Paul
32
 */
33
 
34
 
35
#ifndef TEXSTORE_H
36
#define TEXSTORE_H
37
 
38
 
39
#include "mtypes.h"
40
#include "formats.h"
41
 
42
 
43
/**
44
 * This macro defines the (many) parameters to the texstore functions.
45
 * \param dims  either 1 or 2 or 3
46
 * \param baseInternalFormat  user-specified base internal format
47
 * \param dstFormat  destination Mesa texture format
48
 * \param dstAddr  destination image address
49
 * \param dstX/Y/Zoffset  destination x/y/z offset (ala TexSubImage), in texels
50
 * \param dstRowStride  destination image row stride, in bytes
51
 * \param dstImageOffsets  offset of each 2D slice within 3D texture, in texels
52
 * \param srcWidth/Height/Depth  source image size, in pixels
53
 * \param srcFormat  incoming image format
54
 * \param srcType  incoming image data type
55
 * \param srcAddr  source image address
56
 * \param srcPacking  source image packing parameters
57
 */
58
#define TEXSTORE_PARAMS \
59
	struct gl_context *ctx, GLuint dims, \
60
	GLenum baseInternalFormat, \
61
	gl_format dstFormat, \
62
	GLvoid *dstAddr, \
63
	GLint dstXoffset, GLint dstYoffset, GLint dstZoffset, \
64
	GLint dstRowStride, const GLuint *dstImageOffsets, \
65
	GLint srcWidth, GLint srcHeight, GLint srcDepth, \
66
	GLenum srcFormat, GLenum srcType, \
67
	const GLvoid *srcAddr, \
68
	const struct gl_pixelstore_attrib *srcPacking
69
 
70
 
71
extern GLboolean
72
_mesa_texstore(TEXSTORE_PARAMS);
73
 
74
 
75
extern GLchan *
76
_mesa_make_temp_chan_image(struct gl_context *ctx, GLuint dims,
77
                           GLenum logicalBaseFormat,
78
                           GLenum textureBaseFormat,
79
                           GLint srcWidth, GLint srcHeight, GLint srcDepth,
80
                           GLenum srcFormat, GLenum srcType,
81
                           const GLvoid *srcAddr,
82
                           const struct gl_pixelstore_attrib *srcPacking);
83
 
84
 
85
extern void
86
_mesa_store_teximage1d(struct gl_context *ctx, GLenum target, GLint level,
87
                       GLint internalFormat,
88
                       GLint width, GLint border,
89
                       GLenum format, GLenum type, const GLvoid *pixels,
90
                       const struct gl_pixelstore_attrib *packing,
91
                       struct gl_texture_object *texObj,
92
                       struct gl_texture_image *texImage);
93
 
94
 
95
extern void
96
_mesa_store_teximage2d(struct gl_context *ctx, GLenum target, GLint level,
97
                       GLint internalFormat,
98
                       GLint width, GLint height, GLint border,
99
                       GLenum format, GLenum type, const GLvoid *pixels,
100
                       const struct gl_pixelstore_attrib *packing,
101
                       struct gl_texture_object *texObj,
102
                       struct gl_texture_image *texImage);
103
 
104
 
105
extern void
106
_mesa_store_teximage3d(struct gl_context *ctx, GLenum target, GLint level,
107
                       GLint internalFormat,
108
                       GLint width, GLint height, GLint depth, GLint border,
109
                       GLenum format, GLenum type, const GLvoid *pixels,
110
                       const struct gl_pixelstore_attrib *packing,
111
                       struct gl_texture_object *texObj,
112
                       struct gl_texture_image *texImage);
113
 
114
 
115
extern void
116
_mesa_store_texsubimage1d(struct gl_context *ctx, GLenum target, GLint level,
117
                          GLint xoffset, GLint width,
118
                          GLenum format, GLenum type, const GLvoid *pixels,
119
                          const struct gl_pixelstore_attrib *packing,
120
                          struct gl_texture_object *texObj,
121
                          struct gl_texture_image *texImage);
122
 
123
 
124
extern void
125
_mesa_store_texsubimage2d(struct gl_context *ctx, GLenum target, GLint level,
126
                          GLint xoffset, GLint yoffset,
127
                          GLint width, GLint height,
128
                          GLenum format, GLenum type, const GLvoid *pixels,
129
                          const struct gl_pixelstore_attrib *packing,
130
                          struct gl_texture_object *texObj,
131
                          struct gl_texture_image *texImage);
132
 
133
 
134
extern void
135
_mesa_store_texsubimage3d(struct gl_context *ctx, GLenum target, GLint level,
136
                          GLint xoffset, GLint yoffset, GLint zoffset,
137
                          GLint width, GLint height, GLint depth,
138
                          GLenum format, GLenum type, const GLvoid *pixels,
139
                          const struct gl_pixelstore_attrib *packing,
140
                          struct gl_texture_object *texObj,
141
                          struct gl_texture_image *texImage);
142
 
143
 
144
extern void
145
_mesa_store_compressed_teximage1d(struct gl_context *ctx, GLenum target, GLint level,
146
                                  GLint internalFormat,
147
                                  GLint width, GLint border,
148
                                  GLsizei imageSize, const GLvoid *data,
149
                                  struct gl_texture_object *texObj,
150
                                  struct gl_texture_image *texImage);
151
 
152
extern void
153
_mesa_store_compressed_teximage2d(struct gl_context *ctx, GLenum target, GLint level,
154
                                  GLint internalFormat,
155
                                  GLint width, GLint height, GLint border,
156
                                  GLsizei imageSize, const GLvoid *data,
157
                                  struct gl_texture_object *texObj,
158
                                  struct gl_texture_image *texImage);
159
 
160
extern void
161
_mesa_store_compressed_teximage3d(struct gl_context *ctx, GLenum target, GLint level,
162
                                  GLint internalFormat,
163
                                  GLint width, GLint height, GLint depth,
164
                                  GLint border,
165
                                  GLsizei imageSize, const GLvoid *data,
166
                                  struct gl_texture_object *texObj,
167
                                  struct gl_texture_image *texImage);
168
 
169
 
170
extern void
171
_mesa_store_compressed_texsubimage1d(struct gl_context *ctx, GLenum target,
172
                                     GLint level,
173
                                     GLint xoffset, GLsizei width,
174
                                     GLenum format,
175
                                     GLsizei imageSize, const GLvoid *data,
176
                                     struct gl_texture_object *texObj,
177
                                     struct gl_texture_image *texImage);
178
 
179
extern void
180
_mesa_store_compressed_texsubimage2d(struct gl_context *ctx, GLenum target,
181
                                     GLint level,
182
                                     GLint xoffset, GLint yoffset,
183
                                     GLsizei width, GLsizei height,
184
                                     GLenum format,
185
                                     GLsizei imageSize, const GLvoid *data,
186
                                     struct gl_texture_object *texObj,
187
                                     struct gl_texture_image *texImage);
188
 
189
extern void
190
_mesa_store_compressed_texsubimage3d(struct gl_context *ctx, GLenum target,
191
                                GLint level,
192
                                GLint xoffset, GLint yoffset, GLint zoffset,
193
                                GLsizei width, GLsizei height, GLsizei depth,
194
                                GLenum format,
195
                                GLsizei imageSize, const GLvoid *data,
196
                                struct gl_texture_object *texObj,
197
                                struct gl_texture_image *texImage);
198
 
199
 
200
extern const GLvoid *
201
_mesa_validate_pbo_teximage(struct gl_context *ctx, GLuint dimensions,
202
			    GLsizei width, GLsizei height, GLsizei depth,
203
			    GLenum format, GLenum type, const GLvoid *pixels,
204
			    const struct gl_pixelstore_attrib *unpack,
205
			    const char *funcName);
206
 
207
extern const GLvoid *
208
_mesa_validate_pbo_compressed_teximage(struct gl_context *ctx,
209
                                    GLsizei imageSize, const GLvoid *pixels,
210
                                    const struct gl_pixelstore_attrib *packing,
211
                                    const char *funcName);
212
 
213
extern void
214
_mesa_unmap_teximage_pbo(struct gl_context *ctx,
215
                         const struct gl_pixelstore_attrib *unpack);
216
 
217
 
218
#endif