mesa: add KHR_no_error support for glShaderStorageBlockBinding()
[mesa.git] / src / mesa / main / uniforms.h
1 /*
2 * Mesa 3-D graphics library
3 *
4 * Copyright (C) 2010 VMware, Inc. 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 "Software"),
8 * to deal in the Software without restriction, including without limitation
9 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10 * and/or sell copies of the Software, and to permit persons to whom the
11 * Software is furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included
14 * in all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 * OTHER DEALINGS IN THE SOFTWARE.
23 */
24
25
26 #ifndef UNIFORMS_H
27 #define UNIFORMS_H
28
29 #include "main/glheader.h"
30 #include "compiler/glsl_types.h"
31 #include "compiler/glsl/ir_uniform.h"
32 #include "program/prog_parameter.h"
33
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37
38
39 struct gl_program;
40 struct _glapi_table;
41
42 void GLAPIENTRY
43 _mesa_Uniform1f(GLint, GLfloat);
44 void GLAPIENTRY
45 _mesa_Uniform2f(GLint, GLfloat, GLfloat);
46 void GLAPIENTRY
47 _mesa_Uniform3f(GLint, GLfloat, GLfloat, GLfloat);
48 void GLAPIENTRY
49 _mesa_Uniform4f(GLint, GLfloat, GLfloat, GLfloat, GLfloat);
50 void GLAPIENTRY
51 _mesa_Uniform1i(GLint, GLint);
52 void GLAPIENTRY
53 _mesa_Uniform2i(GLint, GLint, GLint);
54 void GLAPIENTRY
55 _mesa_Uniform3i(GLint, GLint, GLint, GLint);
56 void GLAPIENTRY
57 _mesa_Uniform4i(GLint, GLint, GLint, GLint, GLint);
58 void GLAPIENTRY
59 _mesa_Uniform1fv(GLint, GLsizei, const GLfloat *);
60 void GLAPIENTRY
61 _mesa_Uniform2fv(GLint, GLsizei, const GLfloat *);
62 void GLAPIENTRY
63 _mesa_Uniform3fv(GLint, GLsizei, const GLfloat *);
64 void GLAPIENTRY
65 _mesa_Uniform4fv(GLint, GLsizei, const GLfloat *);
66 void GLAPIENTRY
67 _mesa_Uniform1iv(GLint, GLsizei, const GLint *);
68 void GLAPIENTRY
69 _mesa_Uniform2iv(GLint, GLsizei, const GLint *);
70 void GLAPIENTRY
71 _mesa_Uniform3iv(GLint, GLsizei, const GLint *);
72 void GLAPIENTRY
73 _mesa_Uniform4iv(GLint, GLsizei, const GLint *);
74 void GLAPIENTRY
75 _mesa_Uniform1ui(GLint location, GLuint v0);
76 void GLAPIENTRY
77 _mesa_Uniform2ui(GLint location, GLuint v0, GLuint v1);
78 void GLAPIENTRY
79 _mesa_Uniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2);
80 void GLAPIENTRY
81 _mesa_Uniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
82 void GLAPIENTRY
83 _mesa_Uniform1uiv(GLint location, GLsizei count, const GLuint *value);
84 void GLAPIENTRY
85 _mesa_Uniform2uiv(GLint location, GLsizei count, const GLuint *value);
86 void GLAPIENTRY
87 _mesa_Uniform3uiv(GLint location, GLsizei count, const GLuint *value);
88 void GLAPIENTRY
89 _mesa_Uniform4uiv(GLint location, GLsizei count, const GLuint *value);
90 void GLAPIENTRY
91 _mesa_UniformMatrix2fv(GLint, GLsizei, GLboolean, const GLfloat *);
92 void GLAPIENTRY
93 _mesa_UniformMatrix3fv(GLint, GLsizei, GLboolean, const GLfloat *);
94 void GLAPIENTRY
95 _mesa_UniformMatrix4fv(GLint, GLsizei, GLboolean, const GLfloat *);
96 void GLAPIENTRY
97 _mesa_UniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose,
98 const GLfloat *value);
99 void GLAPIENTRY
100 _mesa_UniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose,
101 const GLfloat *value);
102 void GLAPIENTRY
103 _mesa_UniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose,
104 const GLfloat *value);
105 void GLAPIENTRY
106 _mesa_UniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose,
107 const GLfloat *value);
108 void GLAPIENTRY
109 _mesa_UniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose,
110 const GLfloat *value);
111 void GLAPIENTRY
112 _mesa_UniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose,
113 const GLfloat *value);
114
115 void GLAPIENTRY
116 _mesa_UniformHandleui64ARB(GLint location, GLuint64 value);
117 void GLAPIENTRY
118 _mesa_UniformHandleui64vARB(GLint location, GLsizei count,
119 const GLuint64 *value);
120 void GLAPIENTRY
121 _mesa_ProgramUniformHandleui64ARB(GLuint program, GLint location,
122 GLuint64 value);
123 void GLAPIENTRY
124 _mesa_ProgramUniformHandleui64vARB(GLuint program, GLint location,
125 GLsizei count, const GLuint64 *values);
126
127 void GLAPIENTRY
128 _mesa_ProgramUniform1f(GLuint program, GLint, GLfloat);
129 void GLAPIENTRY
130 _mesa_ProgramUniform2f(GLuint program, GLint, GLfloat, GLfloat);
131 void GLAPIENTRY
132 _mesa_ProgramUniform3f(GLuint program, GLint, GLfloat, GLfloat, GLfloat);
133 void GLAPIENTRY
134 _mesa_ProgramUniform4f(GLuint program, GLint, GLfloat, GLfloat, GLfloat, GLfloat);
135 void GLAPIENTRY
136 _mesa_ProgramUniform1i(GLuint program, GLint, GLint);
137 void GLAPIENTRY
138 _mesa_ProgramUniform2i(GLuint program, GLint, GLint, GLint);
139 void GLAPIENTRY
140 _mesa_ProgramUniform3i(GLuint program, GLint, GLint, GLint, GLint);
141 void GLAPIENTRY
142 _mesa_ProgramUniform4i(GLuint program, GLint, GLint, GLint, GLint, GLint);
143 void GLAPIENTRY
144 _mesa_ProgramUniform1fv(GLuint program, GLint, GLsizei, const GLfloat *);
145 void GLAPIENTRY
146 _mesa_ProgramUniform2fv(GLuint program, GLint, GLsizei, const GLfloat *);
147 void GLAPIENTRY
148 _mesa_ProgramUniform3fv(GLuint program, GLint, GLsizei, const GLfloat *);
149 void GLAPIENTRY
150 _mesa_ProgramUniform4fv(GLuint program, GLint, GLsizei, const GLfloat *);
151 void GLAPIENTRY
152 _mesa_ProgramUniform1iv(GLuint program, GLint, GLsizei, const GLint *);
153 void GLAPIENTRY
154 _mesa_ProgramUniform2iv(GLuint program, GLint, GLsizei, const GLint *);
155 void GLAPIENTRY
156 _mesa_ProgramUniform3iv(GLuint program, GLint, GLsizei, const GLint *);
157 void GLAPIENTRY
158 _mesa_ProgramUniform4iv(GLuint program, GLint, GLsizei, const GLint *);
159 void GLAPIENTRY
160 _mesa_ProgramUniform1ui(GLuint program, GLint location, GLuint v0);
161 void GLAPIENTRY
162 _mesa_ProgramUniform2ui(GLuint program, GLint location, GLuint v0, GLuint v1);
163 void GLAPIENTRY
164 _mesa_ProgramUniform3ui(GLuint program, GLint location, GLuint v0, GLuint v1,
165 GLuint v2);
166 void GLAPIENTRY
167 _mesa_ProgramUniform4ui(GLuint program, GLint location, GLuint v0, GLuint v1,
168 GLuint v2, GLuint v3);
169 void GLAPIENTRY
170 _mesa_ProgramUniform1uiv(GLuint program, GLint location, GLsizei count,
171 const GLuint *value);
172 void GLAPIENTRY
173 _mesa_ProgramUniform2uiv(GLuint program, GLint location, GLsizei count,
174 const GLuint *value);
175 void GLAPIENTRY
176 _mesa_ProgramUniform3uiv(GLuint program, GLint location, GLsizei count,
177 const GLuint *value);
178 void GLAPIENTRY
179 _mesa_ProgramUniform4uiv(GLuint program, GLint location, GLsizei count,
180 const GLuint *value);
181 void GLAPIENTRY
182 _mesa_ProgramUniformMatrix2fv(GLuint program, GLint, GLsizei, GLboolean,
183 const GLfloat *);
184 void GLAPIENTRY
185 _mesa_ProgramUniformMatrix3fv(GLuint program, GLint, GLsizei, GLboolean,
186 const GLfloat *);
187 void GLAPIENTRY
188 _mesa_ProgramUniformMatrix4fv(GLuint program, GLint, GLsizei, GLboolean,
189 const GLfloat *);
190 void GLAPIENTRY
191 _mesa_ProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count,
192 GLboolean transpose, const GLfloat *value);
193 void GLAPIENTRY
194 _mesa_ProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count,
195 GLboolean transpose, const GLfloat *value);
196 void GLAPIENTRY
197 _mesa_ProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count,
198 GLboolean transpose, const GLfloat *value);
199 void GLAPIENTRY
200 _mesa_ProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count,
201 GLboolean transpose, const GLfloat *value);
202 void GLAPIENTRY
203 _mesa_ProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count,
204 GLboolean transpose, const GLfloat *value);
205 void GLAPIENTRY
206 _mesa_ProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count,
207 GLboolean transpose, const GLfloat *value);
208
209 void GLAPIENTRY
210 _mesa_GetnUniformfvARB(GLuint, GLint, GLsizei, GLfloat *);
211 void GLAPIENTRY
212 _mesa_GetUniformfv(GLuint, GLint, GLfloat *);
213 void GLAPIENTRY
214 _mesa_GetnUniformivARB(GLuint, GLint, GLsizei, GLint *);
215 void GLAPIENTRY
216 _mesa_GetUniformuiv(GLuint, GLint, GLuint *);
217 void GLAPIENTRY
218 _mesa_GetnUniformuivARB(GLuint, GLint, GLsizei, GLuint *);
219 void GLAPIENTRY
220 _mesa_GetUniformuiv(GLuint program, GLint location, GLuint *params);
221 void GLAPIENTRY
222 _mesa_GetnUniformdvARB(GLuint, GLint, GLsizei, GLdouble *);
223 void GLAPIENTRY
224 _mesa_GetUniformdv(GLuint, GLint, GLdouble *);
225 GLint GLAPIENTRY
226 _mesa_GetUniformLocation(GLuint, const GLcharARB *);
227 GLuint GLAPIENTRY
228 _mesa_GetUniformBlockIndex(GLuint program,
229 const GLchar *uniformBlockName);
230 void GLAPIENTRY
231 _mesa_GetUniformIndices(GLuint program,
232 GLsizei uniformCount,
233 const GLchar * const *uniformNames,
234 GLuint *uniformIndices);
235
236 void GLAPIENTRY
237 _mesa_UniformBlockBinding_no_error(GLuint program, GLuint uniformBlockIndex,
238 GLuint uniformBlockBinding);
239
240 void GLAPIENTRY
241 _mesa_UniformBlockBinding(GLuint program,
242 GLuint uniformBlockIndex,
243 GLuint uniformBlockBinding);
244
245 void GLAPIENTRY
246 _mesa_ShaderStorageBlockBinding_no_error(GLuint program,
247 GLuint shaderStorageBlockIndex,
248 GLuint shaderStorageBlockBinding);
249
250 void GLAPIENTRY
251 _mesa_ShaderStorageBlockBinding(GLuint program,
252 GLuint shaderStorageBlockIndex,
253 GLuint shaderStorageBlockBinding);
254 void GLAPIENTRY
255 _mesa_GetActiveAtomicCounterBufferiv(GLuint program, GLuint bufferIndex,
256 GLenum pname, GLint *params);
257 void GLAPIENTRY
258 _mesa_GetActiveUniformBlockiv(GLuint program,
259 GLuint uniformBlockIndex,
260 GLenum pname,
261 GLint *params);
262 void GLAPIENTRY
263 _mesa_GetActiveUniformBlockName(GLuint program,
264 GLuint uniformBlockIndex,
265 GLsizei bufSize,
266 GLsizei *length,
267 GLchar *uniformBlockName);
268 void GLAPIENTRY
269 _mesa_GetActiveUniformName(GLuint program, GLuint uniformIndex,
270 GLsizei bufSize, GLsizei *length,
271 GLchar *uniformName);
272 void GLAPIENTRY
273 _mesa_GetActiveUniform(GLuint, GLuint, GLsizei, GLsizei *,
274 GLint *, GLenum *, GLcharARB *);
275 void GLAPIENTRY
276 _mesa_GetActiveUniformsiv(GLuint program,
277 GLsizei uniformCount,
278 const GLuint *uniformIndices,
279 GLenum pname,
280 GLint *params);
281 void GLAPIENTRY
282 _mesa_GetUniformiv(GLuint, GLint, GLint *);
283
284 void GLAPIENTRY
285 _mesa_Uniform1d(GLint, GLdouble);
286 void GLAPIENTRY
287 _mesa_Uniform2d(GLint, GLdouble, GLdouble);
288 void GLAPIENTRY
289 _mesa_Uniform3d(GLint, GLdouble, GLdouble, GLdouble);
290 void GLAPIENTRY
291 _mesa_Uniform4d(GLint, GLdouble, GLdouble, GLdouble, GLdouble);
292
293 void GLAPIENTRY
294 _mesa_Uniform1dv(GLint, GLsizei, const GLdouble *);
295 void GLAPIENTRY
296 _mesa_Uniform2dv(GLint, GLsizei, const GLdouble *);
297 void GLAPIENTRY
298 _mesa_Uniform3dv(GLint, GLsizei, const GLdouble *);
299 void GLAPIENTRY
300 _mesa_Uniform4dv(GLint, GLsizei, const GLdouble *);
301
302 void GLAPIENTRY
303 _mesa_GetUniformi64vARB(GLuint, GLint, GLint64 *);
304 void GLAPIENTRY
305 _mesa_GetUniformui64vARB(GLuint, GLint, GLuint64 *);
306
307 void GLAPIENTRY
308 _mesa_GetnUniformi64vARB(GLuint, GLint, GLsizei, GLint64 *);
309 void GLAPIENTRY
310 _mesa_GetnUniformui64vARB(GLuint, GLint, GLsizei, GLuint64 *);
311
312 void GLAPIENTRY
313 _mesa_UniformMatrix2dv(GLint, GLsizei, GLboolean, const GLdouble *);
314 void GLAPIENTRY
315 _mesa_UniformMatrix3dv(GLint, GLsizei, GLboolean, const GLdouble *);
316 void GLAPIENTRY
317 _mesa_UniformMatrix4dv(GLint, GLsizei, GLboolean, const GLdouble *);
318 void GLAPIENTRY
319 _mesa_UniformMatrix2x3dv(GLint location, GLsizei count, GLboolean transpose,
320 const GLdouble *value);
321 void GLAPIENTRY
322 _mesa_UniformMatrix3x2dv(GLint location, GLsizei count, GLboolean transpose,
323 const GLdouble *value);
324 void GLAPIENTRY
325 _mesa_UniformMatrix2x4dv(GLint location, GLsizei count, GLboolean transpose,
326 const GLdouble *value);
327 void GLAPIENTRY
328 _mesa_UniformMatrix4x2dv(GLint location, GLsizei count, GLboolean transpose,
329 const GLdouble *value);
330 void GLAPIENTRY
331 _mesa_UniformMatrix3x4dv(GLint location, GLsizei count, GLboolean transpose,
332 const GLdouble *value);
333 void GLAPIENTRY
334 _mesa_UniformMatrix4x3dv(GLint location, GLsizei count, GLboolean transpose,
335 const GLdouble *value);
336
337 void GLAPIENTRY
338 _mesa_ProgramUniform1d(GLuint program, GLint, GLdouble);
339 void GLAPIENTRY
340 _mesa_ProgramUniform2d(GLuint program, GLint, GLdouble, GLdouble);
341 void GLAPIENTRY
342 _mesa_ProgramUniform3d(GLuint program, GLint, GLdouble, GLdouble, GLdouble);
343 void GLAPIENTRY
344 _mesa_ProgramUniform4d(GLuint program, GLint, GLdouble, GLdouble, GLdouble, GLdouble);
345
346 void GLAPIENTRY
347 _mesa_ProgramUniform1dv(GLuint program, GLint, GLsizei, const GLdouble *);
348 void GLAPIENTRY
349 _mesa_ProgramUniform2dv(GLuint program, GLint, GLsizei, const GLdouble *);
350 void GLAPIENTRY
351 _mesa_ProgramUniform3dv(GLuint program, GLint, GLsizei, const GLdouble *);
352 void GLAPIENTRY
353 _mesa_ProgramUniform4dv(GLuint program, GLint, GLsizei, const GLdouble *);
354
355 void GLAPIENTRY
356 _mesa_ProgramUniformMatrix2dv(GLuint program, GLint, GLsizei, GLboolean,
357 const GLdouble *);
358 void GLAPIENTRY
359 _mesa_ProgramUniformMatrix3dv(GLuint program, GLint, GLsizei, GLboolean,
360 const GLdouble *);
361 void GLAPIENTRY
362 _mesa_ProgramUniformMatrix4dv(GLuint program, GLint, GLsizei, GLboolean,
363 const GLdouble *);
364 void GLAPIENTRY
365 _mesa_ProgramUniformMatrix2x3dv(GLuint program, GLint location, GLsizei count,
366 GLboolean transpose, const GLdouble *value);
367 void GLAPIENTRY
368 _mesa_ProgramUniformMatrix3x2dv(GLuint program, GLint location, GLsizei count,
369 GLboolean transpose, const GLdouble *value);
370 void GLAPIENTRY
371 _mesa_ProgramUniformMatrix2x4dv(GLuint program, GLint location, GLsizei count,
372 GLboolean transpose, const GLdouble *value);
373 void GLAPIENTRY
374 _mesa_ProgramUniformMatrix4x2dv(GLuint program, GLint location, GLsizei count,
375 GLboolean transpose, const GLdouble *value);
376 void GLAPIENTRY
377 _mesa_ProgramUniformMatrix3x4dv(GLuint program, GLint location, GLsizei count,
378 GLboolean transpose, const GLdouble *value);
379 void GLAPIENTRY
380 _mesa_ProgramUniformMatrix4x3dv(GLuint program, GLint location, GLsizei count,
381 GLboolean transpose, const GLdouble *value);
382
383 void GLAPIENTRY
384 _mesa_Uniform1i64ARB(GLint, GLint64);
385 void GLAPIENTRY
386 _mesa_Uniform2i64ARB(GLint, GLint64, GLint64);
387 void GLAPIENTRY
388 _mesa_Uniform3i64ARB(GLint, GLint64, GLint64, GLint64);
389 void GLAPIENTRY
390 _mesa_Uniform4i64ARB(GLint, GLint64, GLint64, GLint64, GLint64);
391
392 void GLAPIENTRY
393 _mesa_Uniform1i64vARB(GLint, GLsizei, const GLint64 *);
394 void GLAPIENTRY
395 _mesa_Uniform2i64vARB(GLint, GLsizei, const GLint64 *);
396 void GLAPIENTRY
397 _mesa_Uniform3i64vARB(GLint, GLsizei, const GLint64 *);
398 void GLAPIENTRY
399 _mesa_Uniform4i64vARB(GLint, GLsizei, const GLint64 *);
400
401 void GLAPIENTRY
402 _mesa_Uniform1ui64ARB(GLint, GLuint64);
403 void GLAPIENTRY
404 _mesa_Uniform2ui64ARB(GLint, GLuint64, GLuint64);
405 void GLAPIENTRY
406 _mesa_Uniform3ui64ARB(GLint, GLuint64, GLuint64, GLuint64);
407 void GLAPIENTRY
408 _mesa_Uniform4ui64ARB(GLint, GLuint64, GLuint64, GLuint64, GLuint64);
409
410 void GLAPIENTRY
411 _mesa_Uniform1ui64vARB(GLint, GLsizei, const GLuint64 *);
412 void GLAPIENTRY
413 _mesa_Uniform2ui64vARB(GLint, GLsizei, const GLuint64 *);
414 void GLAPIENTRY
415 _mesa_Uniform3ui64vARB(GLint, GLsizei, const GLuint64 *);
416 void GLAPIENTRY
417 _mesa_Uniform4ui64vARB(GLint, GLsizei, const GLuint64 *);
418
419 void GLAPIENTRY
420 _mesa_ProgramUniform1i64ARB(GLuint, GLint, GLint64);
421 void GLAPIENTRY
422 _mesa_ProgramUniform2i64ARB(GLuint, GLint, GLint64, GLint64);
423 void GLAPIENTRY
424 _mesa_ProgramUniform3i64ARB(GLuint, GLint, GLint64, GLint64, GLint64);
425 void GLAPIENTRY
426 _mesa_ProgramUniform4i64ARB(GLuint, GLint, GLint64, GLint64, GLint64, GLint64);
427
428 void GLAPIENTRY
429 _mesa_ProgramUniform1i64vARB(GLuint, GLint, GLsizei, const GLint64 *);
430 void GLAPIENTRY
431 _mesa_ProgramUniform2i64vARB(GLuint, GLint, GLsizei, const GLint64 *);
432 void GLAPIENTRY
433 _mesa_ProgramUniform3i64vARB(GLuint, GLint, GLsizei, const GLint64 *);
434 void GLAPIENTRY
435 _mesa_ProgramUniform4i64vARB(GLuint, GLint, GLsizei, const GLint64 *);
436
437 void GLAPIENTRY
438 _mesa_ProgramUniform1ui64ARB(GLuint, GLint, GLuint64);
439 void GLAPIENTRY
440 _mesa_ProgramUniform2ui64ARB(GLuint, GLint, GLuint64, GLuint64);
441 void GLAPIENTRY
442 _mesa_ProgramUniform3ui64ARB(GLuint, GLint, GLuint64, GLuint64, GLuint64);
443 void GLAPIENTRY
444 _mesa_ProgramUniform4ui64ARB(GLuint, GLint, GLuint64, GLuint64, GLuint64, GLuint64);
445
446 void GLAPIENTRY
447 _mesa_ProgramUniform1ui64vARB(GLuint, GLint, GLsizei, const GLuint64 *);
448 void GLAPIENTRY
449 _mesa_ProgramUniform2ui64vARB(GLuint, GLint, GLsizei, const GLuint64 *);
450 void GLAPIENTRY
451 _mesa_ProgramUniform3ui64vARB(GLuint, GLint, GLsizei, const GLuint64 *);
452 void GLAPIENTRY
453 _mesa_ProgramUniform4ui64vARB(GLuint, GLint, GLsizei, const GLuint64 *);
454
455 void
456 _mesa_uniform(GLint location, GLsizei count, const GLvoid *values,
457 struct gl_context *, struct gl_shader_program *,
458 enum glsl_base_type basicType, unsigned src_components);
459
460 void
461 _mesa_uniform_matrix(GLint location, GLsizei count,
462 GLboolean transpose, const void *values,
463 struct gl_context *, struct gl_shader_program *,
464 GLuint cols, GLuint rows, enum glsl_base_type basicType);
465
466 void
467 _mesa_uniform_handle(GLint location, GLsizei count, const GLvoid *values,
468 struct gl_context *, struct gl_shader_program *);
469
470 void
471 _mesa_get_uniform(struct gl_context *ctx, GLuint program, GLint location,
472 GLsizei bufSize, enum glsl_base_type returnType,
473 GLvoid *paramsOut);
474
475 extern void
476 _mesa_uniform_attach_driver_storage(struct gl_uniform_storage *,
477 unsigned element_stride,
478 unsigned vector_stride,
479 enum gl_uniform_driver_format format,
480 void *data);
481
482 extern void
483 _mesa_uniform_detach_all_driver_storage(struct gl_uniform_storage *uni);
484
485 extern void
486 _mesa_propagate_uniforms_to_driver_storage(struct gl_uniform_storage *uni,
487 unsigned array_index,
488 unsigned count);
489
490 extern void
491 _mesa_update_shader_textures_used(struct gl_shader_program *shProg,
492 struct gl_program *prog);
493
494 extern bool
495 _mesa_sampler_uniforms_are_valid(const struct gl_shader_program *shProg,
496 char *errMsg, size_t errMsgLength);
497 extern bool
498 _mesa_sampler_uniforms_pipeline_are_valid(struct gl_pipeline_object *);
499
500 extern void
501 _mesa_flush_vertices_for_uniforms(struct gl_context *ctx,
502 const struct gl_uniform_storage *uni);
503
504 struct gl_builtin_uniform_element {
505 const char *field;
506 int tokens[STATE_LENGTH];
507 int swizzle;
508 };
509
510 struct gl_builtin_uniform_desc {
511 const char *name;
512 const struct gl_builtin_uniform_element *elements;
513 unsigned int num_elements;
514 };
515
516 #ifdef __cplusplus
517 }
518 #endif
519
520
521 #endif /* UNIFORMS_H */