Fixed typo
[reactos.git] / dll / opengl / mesa / math / m_translate.h
1 /*
2 * Mesa 3-D graphics library
3 * Version: 6.5.1
4 *
5 * Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
6 *
7 * Permission is hereby granted, free of charge, to any person obtaining a
8 * copy of this software and associated documentation files (the "Software"),
9 * to deal in the Software without restriction, including without limitation
10 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
11 * and/or sell copies of the Software, and to permit persons to whom the
12 * Software is furnished to do so, subject to the following conditions:
13 *
14 * The above copyright notice and this permission notice shall be included
15 * in all copies or substantial portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
21 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 */
24
25
26 #ifndef _M_TRANSLATE_H_
27 #define _M_TRANSLATE_H_
28
29 #include "main/compiler.h"
30 #include "main/glheader.h"
31 #include "main/mtypes.h" /* hack for GLchan */
32 #include "swrast/s_chan.h"
33
34 /**
35 * Array translation.
36 * For example, convert array of GLushort[3] to GLfloat[4].
37 * The function name specifies the destination format/size.
38 * \param to the destination address
39 * \param ptr the source address
40 * \param stride the source stride (in bytes) between elements
41 * \param type the source datatype (GL_SHORT, GL_UNSIGNED_INT, etc)
42 * \param size number of values per element in source array (1,2,3 or 4)
43 * \param start first element in source array to convert
44 * \param n number of elements to convert
45 *
46 * Note: "element" means a tuple like GLfloat[3] or GLubyte[4].
47 */
48
49
50 extern void _math_trans_1f(GLfloat *to,
51 CONST void *ptr,
52 GLuint stride,
53 GLenum type,
54 GLuint start,
55 GLuint n );
56
57 extern void _math_trans_1ui(GLuint *to,
58 CONST void *ptr,
59 GLuint stride,
60 GLenum type,
61 GLuint start,
62 GLuint n );
63
64 extern void _math_trans_1ub(GLubyte *to,
65 CONST void *ptr,
66 GLuint stride,
67 GLenum type,
68 GLuint start,
69 GLuint n );
70
71 extern void _math_trans_4ub(GLubyte (*to)[4],
72 CONST void *ptr,
73 GLuint stride,
74 GLenum type,
75 GLuint size,
76 GLuint start,
77 GLuint n );
78
79 extern void _math_trans_4chan( GLchan (*to)[4],
80 CONST void *ptr,
81 GLuint stride,
82 GLenum type,
83 GLuint size,
84 GLuint start,
85 GLuint n );
86
87 extern void _math_trans_4us(GLushort (*to)[4],
88 CONST void *ptr,
89 GLuint stride,
90 GLenum type,
91 GLuint size,
92 GLuint start,
93 GLuint n );
94
95 /** Convert to floats w/out normalization (i.e. just cast) */
96 extern void _math_trans_4f(GLfloat (*to)[4],
97 CONST void *ptr,
98 GLuint stride,
99 GLenum type,
100 GLuint size,
101 GLuint start,
102 GLuint n );
103
104 /** Convert to normalized floats in [0,1] or [-1, 1] */
105 extern void _math_trans_4fn(GLfloat (*to)[4],
106 CONST void *ptr,
107 GLuint stride,
108 GLenum type,
109 GLuint size,
110 GLuint start,
111 GLuint n );
112
113 extern void _math_trans_3fn(GLfloat (*to)[3],
114 CONST void *ptr,
115 GLuint stride,
116 GLenum type,
117 GLuint start,
118 GLuint n );
119
120 extern void _math_init_translate( void );
121
122
123 #endif