src/mesa: add GL_NV_half_float extension support (v2)
[mesa.git] / src / mesa / vbo / vbo_init_tmp.h
1 /**************************************************************************
2 *
3 * Copyright 2020 Advanced Micro Devices, Inc.
4 * All Rights Reserved.
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the
8 * "Software"), to deal in the Software without restriction, including
9 * without limitation the rights to use, copy, modify, merge, publish,
10 * distribute, sub license, and/or sell copies of the Software, and to
11 * permit persons to whom the Software is furnished to do so, subject to
12 * the following conditions:
13 *
14 * The above copyright notice and this permission notice (including the
15 * next paragraph) shall be included in all copies or substantial portions
16 * 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
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21 * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
22 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25 *
26 **************************************************************************/
27
28 vfmt->ArrayElement = NAME_AE(ArrayElement);
29
30 vfmt->Begin = NAME(Begin);
31 vfmt->End = NAME(End);
32 vfmt->PrimitiveRestartNV = NAME(PrimitiveRestartNV);
33
34 vfmt->CallList = NAME_CALLLIST(CallList);
35 vfmt->CallLists = NAME_CALLLIST(CallLists);
36
37 vfmt->EvalCoord1f = NAME(EvalCoord1f);
38 vfmt->EvalCoord1fv = NAME(EvalCoord1fv);
39 vfmt->EvalCoord2f = NAME(EvalCoord2f);
40 vfmt->EvalCoord2fv = NAME(EvalCoord2fv);
41 vfmt->EvalPoint1 = NAME(EvalPoint1);
42 vfmt->EvalPoint2 = NAME(EvalPoint2);
43
44 vfmt->Color3f = NAME(Color3f);
45 vfmt->Color3fv = NAME(Color3fv);
46 vfmt->Color4f = NAME(Color4f);
47 vfmt->Color4fv = NAME(Color4fv);
48 vfmt->FogCoordfEXT = NAME(FogCoordfEXT);
49 vfmt->FogCoordfvEXT = NAME(FogCoordfvEXT);
50 vfmt->MultiTexCoord1fARB = NAME(MultiTexCoord1f);
51 vfmt->MultiTexCoord1fvARB = NAME(MultiTexCoord1fv);
52 vfmt->MultiTexCoord2fARB = NAME(MultiTexCoord2f);
53 vfmt->MultiTexCoord2fvARB = NAME(MultiTexCoord2fv);
54 vfmt->MultiTexCoord3fARB = NAME(MultiTexCoord3f);
55 vfmt->MultiTexCoord3fvARB = NAME(MultiTexCoord3fv);
56 vfmt->MultiTexCoord4fARB = NAME(MultiTexCoord4f);
57 vfmt->MultiTexCoord4fvARB = NAME(MultiTexCoord4fv);
58 vfmt->Normal3f = NAME(Normal3f);
59 vfmt->Normal3fv = NAME(Normal3fv);
60 vfmt->SecondaryColor3fEXT = NAME(SecondaryColor3fEXT);
61 vfmt->SecondaryColor3fvEXT = NAME(SecondaryColor3fvEXT);
62 vfmt->TexCoord1f = NAME(TexCoord1f);
63 vfmt->TexCoord1fv = NAME(TexCoord1fv);
64 vfmt->TexCoord2f = NAME(TexCoord2f);
65 vfmt->TexCoord2fv = NAME(TexCoord2fv);
66 vfmt->TexCoord3f = NAME(TexCoord3f);
67 vfmt->TexCoord3fv = NAME(TexCoord3fv);
68 vfmt->TexCoord4f = NAME(TexCoord4f);
69 vfmt->TexCoord4fv = NAME(TexCoord4fv);
70 vfmt->Vertex2f = NAME(Vertex2f);
71 vfmt->Vertex2fv = NAME(Vertex2fv);
72 vfmt->Vertex3f = NAME(Vertex3f);
73 vfmt->Vertex3fv = NAME(Vertex3fv);
74 vfmt->Vertex4f = NAME(Vertex4f);
75 vfmt->Vertex4fv = NAME(Vertex4fv);
76
77 if (ctx->API == API_OPENGLES2) {
78 vfmt->VertexAttrib1fARB = NAME_ES(VertexAttrib1f);
79 vfmt->VertexAttrib1fvARB = NAME_ES(VertexAttrib1fv);
80 vfmt->VertexAttrib2fARB = NAME_ES(VertexAttrib2f);
81 vfmt->VertexAttrib2fvARB = NAME_ES(VertexAttrib2fv);
82 vfmt->VertexAttrib3fARB = NAME_ES(VertexAttrib3f);
83 vfmt->VertexAttrib3fvARB = NAME_ES(VertexAttrib3fv);
84 vfmt->VertexAttrib4fARB = NAME_ES(VertexAttrib4f);
85 vfmt->VertexAttrib4fvARB = NAME_ES(VertexAttrib4fv);
86 } else {
87 vfmt->VertexAttrib1fARB = NAME(VertexAttrib1fARB);
88 vfmt->VertexAttrib1fvARB = NAME(VertexAttrib1fvARB);
89 vfmt->VertexAttrib2fARB = NAME(VertexAttrib2fARB);
90 vfmt->VertexAttrib2fvARB = NAME(VertexAttrib2fvARB);
91 vfmt->VertexAttrib3fARB = NAME(VertexAttrib3fARB);
92 vfmt->VertexAttrib3fvARB = NAME(VertexAttrib3fvARB);
93 vfmt->VertexAttrib4fARB = NAME(VertexAttrib4fARB);
94 vfmt->VertexAttrib4fvARB = NAME(VertexAttrib4fvARB);
95 }
96
97 /* half float */
98 vfmt->Vertex2hNV = NAME(Vertex2hNV);
99 vfmt->Vertex2hvNV = NAME(Vertex2hvNV);
100 vfmt->Vertex3hNV = NAME(Vertex3hNV);
101 vfmt->Vertex3hvNV = NAME(Vertex3hvNV);
102 vfmt->Vertex4hNV = NAME(Vertex4hNV);
103 vfmt->Vertex4hvNV = NAME(Vertex4hvNV);
104 vfmt->Normal3hNV = NAME(Normal3hNV);
105 vfmt->Normal3hvNV = NAME(Normal3hvNV);
106 vfmt->Color3hNV = NAME(Color3hNV);
107 vfmt->Color3hvNV = NAME(Color3hvNV);
108 vfmt->Color4hNV = NAME(Color4hNV);
109 vfmt->Color4hvNV = NAME(Color4hvNV);
110 vfmt->TexCoord1hNV = NAME(TexCoord1hNV);
111 vfmt->TexCoord1hvNV = NAME(TexCoord1hvNV);
112 vfmt->TexCoord2hNV = NAME(TexCoord2hNV);
113 vfmt->TexCoord2hvNV = NAME(TexCoord2hvNV);
114 vfmt->TexCoord3hNV = NAME(TexCoord3hNV);
115 vfmt->TexCoord3hvNV = NAME(TexCoord3hvNV);
116 vfmt->TexCoord4hNV = NAME(TexCoord4hNV);
117 vfmt->TexCoord4hvNV = NAME(TexCoord4hvNV);
118 vfmt->MultiTexCoord1hNV = NAME(MultiTexCoord1hNV);
119 vfmt->MultiTexCoord1hvNV = NAME(MultiTexCoord1hvNV);
120 vfmt->MultiTexCoord2hNV = NAME(MultiTexCoord2hNV);
121 vfmt->MultiTexCoord2hvNV = NAME(MultiTexCoord2hvNV);
122 vfmt->MultiTexCoord3hNV = NAME(MultiTexCoord3hNV);
123 vfmt->MultiTexCoord3hvNV = NAME(MultiTexCoord3hvNV);
124 vfmt->MultiTexCoord4hNV = NAME(MultiTexCoord4hNV);
125 vfmt->MultiTexCoord4hvNV = NAME(MultiTexCoord4hvNV);
126 vfmt->FogCoordhNV = NAME(FogCoordhNV);
127 vfmt->FogCoordhvNV = NAME(FogCoordhvNV);
128 vfmt->SecondaryColor3hNV = NAME(SecondaryColor3hNV);
129 vfmt->SecondaryColor3hvNV = NAME(SecondaryColor3hvNV);
130
131 /* Note that VertexAttrib4fNV is used from dlist.c and api_arrayelt.c so
132 * they can have a single entrypoint for updating any of the legacy
133 * attribs.
134 */
135 vfmt->VertexAttrib1fNV = NAME(VertexAttrib1fNV);
136 vfmt->VertexAttrib1fvNV = NAME(VertexAttrib1fvNV);
137 vfmt->VertexAttrib2fNV = NAME(VertexAttrib2fNV);
138 vfmt->VertexAttrib2fvNV = NAME(VertexAttrib2fvNV);
139 vfmt->VertexAttrib3fNV = NAME(VertexAttrib3fNV);
140 vfmt->VertexAttrib3fvNV = NAME(VertexAttrib3fvNV);
141 vfmt->VertexAttrib4fNV = NAME(VertexAttrib4fNV);
142 vfmt->VertexAttrib4fvNV = NAME(VertexAttrib4fvNV);
143
144 /* integer-valued */
145 vfmt->VertexAttribI1i = NAME(VertexAttribI1i);
146 vfmt->VertexAttribI2i = NAME(VertexAttribI2i);
147 vfmt->VertexAttribI3i = NAME(VertexAttribI3i);
148 vfmt->VertexAttribI4i = NAME(VertexAttribI4i);
149 vfmt->VertexAttribI2iv = NAME(VertexAttribI2iv);
150 vfmt->VertexAttribI3iv = NAME(VertexAttribI3iv);
151 vfmt->VertexAttribI4iv = NAME(VertexAttribI4iv);
152
153 /* unsigned integer-valued */
154 vfmt->VertexAttribI1ui = NAME(VertexAttribI1ui);
155 vfmt->VertexAttribI2ui = NAME(VertexAttribI2ui);
156 vfmt->VertexAttribI3ui = NAME(VertexAttribI3ui);
157 vfmt->VertexAttribI4ui = NAME(VertexAttribI4ui);
158 vfmt->VertexAttribI2uiv = NAME(VertexAttribI2uiv);
159 vfmt->VertexAttribI3uiv = NAME(VertexAttribI3uiv);
160 vfmt->VertexAttribI4uiv = NAME(VertexAttribI4uiv);
161
162 vfmt->Materialfv = NAME(Materialfv);
163
164 vfmt->EdgeFlag = NAME(EdgeFlag);
165 vfmt->Indexf = NAME(Indexf);
166 vfmt->Indexfv = NAME(Indexfv);
167
168 /* ARB_vertex_type_2_10_10_10_rev */
169 vfmt->VertexP2ui = NAME(VertexP2ui);
170 vfmt->VertexP2uiv = NAME(VertexP2uiv);
171 vfmt->VertexP3ui = NAME(VertexP3ui);
172 vfmt->VertexP3uiv = NAME(VertexP3uiv);
173 vfmt->VertexP4ui = NAME(VertexP4ui);
174 vfmt->VertexP4uiv = NAME(VertexP4uiv);
175
176 vfmt->TexCoordP1ui = NAME(TexCoordP1ui);
177 vfmt->TexCoordP1uiv = NAME(TexCoordP1uiv);
178 vfmt->TexCoordP2ui = NAME(TexCoordP2ui);
179 vfmt->TexCoordP2uiv = NAME(TexCoordP2uiv);
180 vfmt->TexCoordP3ui = NAME(TexCoordP3ui);
181 vfmt->TexCoordP3uiv = NAME(TexCoordP3uiv);
182 vfmt->TexCoordP4ui = NAME(TexCoordP4ui);
183 vfmt->TexCoordP4uiv = NAME(TexCoordP4uiv);
184
185 vfmt->MultiTexCoordP1ui = NAME(MultiTexCoordP1ui);
186 vfmt->MultiTexCoordP1uiv = NAME(MultiTexCoordP1uiv);
187 vfmt->MultiTexCoordP2ui = NAME(MultiTexCoordP2ui);
188 vfmt->MultiTexCoordP2uiv = NAME(MultiTexCoordP2uiv);
189 vfmt->MultiTexCoordP3ui = NAME(MultiTexCoordP3ui);
190 vfmt->MultiTexCoordP3uiv = NAME(MultiTexCoordP3uiv);
191 vfmt->MultiTexCoordP4ui = NAME(MultiTexCoordP4ui);
192 vfmt->MultiTexCoordP4uiv = NAME(MultiTexCoordP4uiv);
193
194 vfmt->NormalP3ui = NAME(NormalP3ui);
195 vfmt->NormalP3uiv = NAME(NormalP3uiv);
196
197 vfmt->ColorP3ui = NAME(ColorP3ui);
198 vfmt->ColorP3uiv = NAME(ColorP3uiv);
199 vfmt->ColorP4ui = NAME(ColorP4ui);
200 vfmt->ColorP4uiv = NAME(ColorP4uiv);
201
202 vfmt->SecondaryColorP3ui = NAME(SecondaryColorP3ui);
203 vfmt->SecondaryColorP3uiv = NAME(SecondaryColorP3uiv);
204
205 vfmt->VertexAttribP1ui = NAME(VertexAttribP1ui);
206 vfmt->VertexAttribP1uiv = NAME(VertexAttribP1uiv);
207 vfmt->VertexAttribP2ui = NAME(VertexAttribP2ui);
208 vfmt->VertexAttribP2uiv = NAME(VertexAttribP2uiv);
209 vfmt->VertexAttribP3ui = NAME(VertexAttribP3ui);
210 vfmt->VertexAttribP3uiv = NAME(VertexAttribP3uiv);
211 vfmt->VertexAttribP4ui = NAME(VertexAttribP4ui);
212 vfmt->VertexAttribP4uiv = NAME(VertexAttribP4uiv);
213
214 vfmt->VertexAttribL1d = NAME(VertexAttribL1d);
215 vfmt->VertexAttribL2d = NAME(VertexAttribL2d);
216 vfmt->VertexAttribL3d = NAME(VertexAttribL3d);
217 vfmt->VertexAttribL4d = NAME(VertexAttribL4d);
218
219 vfmt->VertexAttribL1dv = NAME(VertexAttribL1dv);
220 vfmt->VertexAttribL2dv = NAME(VertexAttribL2dv);
221 vfmt->VertexAttribL3dv = NAME(VertexAttribL3dv);
222 vfmt->VertexAttribL4dv = NAME(VertexAttribL4dv);
223
224 vfmt->VertexAttribL1ui64ARB = NAME(VertexAttribL1ui64ARB);
225 vfmt->VertexAttribL1ui64vARB = NAME(VertexAttribL1ui64vARB);