1cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
2cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell/*
3cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * Mesa 3-D graphics library
4cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * Version:  3.5
5cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell *
622144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
7cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell *
8cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * Permission is hereby granted, free of charge, to any person obtaining a
9cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * copy of this software and associated documentation files (the "Software"),
10cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * to deal in the Software without restriction, including without limitation
11cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * and/or sell copies of the Software, and to permit persons to whom the
13cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * Software is furnished to do so, subject to the following conditions:
14cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell *
15cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * The above copyright notice and this permission notice shall be included
16cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * in all copies or substantial portions of the Software.
17cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell *
18cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
21cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
22cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
23cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell */
25cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
26cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
27cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell#ifndef API_VALIDATE_H
28cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell#define API_VALIDATE_H
29cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
30cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
31fb83400f6b9e8203bc2a8a3facac9ee28d4c45f8Vinson Lee#include "glheader.h"
3214bb957b996dcc5392b8fa589bd3ffa5c55cb6b4Marek Olšák#include "mfeatures.h"
33fb83400f6b9e8203bc2a8a3facac9ee28d4c45f8Vinson Lee
34fb83400f6b9e8203bc2a8a3facac9ee28d4c45f8Vinson Leestruct gl_buffer_object;
35fb83400f6b9e8203bc2a8a3facac9ee28d4c45f8Vinson Leestruct gl_context;
3614bb957b996dcc5392b8fa589bd3ffa5c55cb6b4Marek Olšákstruct gl_transform_feedback_object;
37cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
38e5d29ebb5e5dd923c9c60972170d072120007aabBrian Paul
39e5d29ebb5e5dd923c9c60972170d072120007aabBrian Paulextern GLuint
40f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_mesa_max_buffer_index(struct gl_context *ctx, GLuint count, GLenum type,
41e5d29ebb5e5dd923c9c60972170d072120007aabBrian Paul                       const void *indices,
42e5d29ebb5e5dd923c9c60972170d072120007aabBrian Paul                       struct gl_buffer_object *elementBuf);
43e5d29ebb5e5dd923c9c60972170d072120007aabBrian Paul
440e6646db3248057b7750031d825535cd7a0e5aecBrian Paul
450e6646db3248057b7750031d825535cd7a0e5aecBrian Paulextern GLboolean
467ca4f07b5b77ccac0a9b60dc5ac9082906b5947eEric Anholt_mesa_valid_prim_mode(struct gl_context *ctx, GLenum mode, const char *name);
470e6646db3248057b7750031d825535cd7a0e5aecBrian Paul
480e6646db3248057b7750031d825535cd7a0e5aecBrian Paul
49cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellextern GLboolean
50f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_mesa_validate_DrawArrays(struct gl_context *ctx,
51cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell			  GLenum mode, GLint start, GLsizei count);
52cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
53cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellextern GLboolean
54f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_mesa_validate_DrawElements(struct gl_context *ctx,
5522144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes			    GLenum mode, GLsizei count, GLenum type,
5692d7ed8a20d4a018ce5324e6537ae7b478b9e5bfEric Anholt			    const GLvoid *indices, GLint basevertex);
57cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
58cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwellextern GLboolean
59fcebb157f0eb6c2f374dee609a01b0b14856e7fcMarek Olšák_mesa_validate_MultiDrawElements(struct gl_context *ctx,
60fcebb157f0eb6c2f374dee609a01b0b14856e7fcMarek Olšák                                 GLenum mode, const GLsizei *count,
61fcebb157f0eb6c2f374dee609a01b0b14856e7fcMarek Olšák                                 GLenum type, const GLvoid * const *indices,
62fcebb157f0eb6c2f374dee609a01b0b14856e7fcMarek Olšák                                 GLuint primcount, const GLint *basevertex);
63fcebb157f0eb6c2f374dee609a01b0b14856e7fcMarek Olšák
64fcebb157f0eb6c2f374dee609a01b0b14856e7fcMarek Olšákextern GLboolean
65f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_mesa_validate_DrawRangeElements(struct gl_context *ctx, GLenum mode,
6622144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes				 GLuint start, GLuint end,
6722144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes				 GLsizei count, GLenum type,
6892d7ed8a20d4a018ce5324e6537ae7b478b9e5bfEric Anholt				 const GLvoid *indices, GLint basevertex);
69cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
70cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell
71cf3193ad1cd75b847c5d626def701a4bb012d080Brian Paulextern GLboolean
72f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_mesa_validate_DrawArraysInstanced(struct gl_context *ctx, GLenum mode, GLint first,
73cf3193ad1cd75b847c5d626def701a4bb012d080Brian Paul                                   GLsizei count, GLsizei primcount);
74cf3193ad1cd75b847c5d626def701a4bb012d080Brian Paul
75cf3193ad1cd75b847c5d626def701a4bb012d080Brian Paulextern GLboolean
76f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_mesa_validate_DrawElementsInstanced(struct gl_context *ctx,
77cf3193ad1cd75b847c5d626def701a4bb012d080Brian Paul                                     GLenum mode, GLsizei count, GLenum type,
7809201cc7a0c4c50871bb8aa5d00ac70aa4e9e670Pierre-Eric Pelloux-Prayer                                     const GLvoid *indices, GLsizei primcount,
7909201cc7a0c4c50871bb8aa5d00ac70aa4e9e670Pierre-Eric Pelloux-Prayer                                     GLint basevertex);
80cf3193ad1cd75b847c5d626def701a4bb012d080Brian Paul
8114bb957b996dcc5392b8fa589bd3ffa5c55cb6b4Marek Olšák#if FEATURE_EXT_transform_feedback
8214bb957b996dcc5392b8fa589bd3ffa5c55cb6b4Marek Olšák
8314bb957b996dcc5392b8fa589bd3ffa5c55cb6b4Marek Olšákextern GLboolean
8414bb957b996dcc5392b8fa589bd3ffa5c55cb6b4Marek Olšák_mesa_validate_DrawTransformFeedback(struct gl_context *ctx,
8514bb957b996dcc5392b8fa589bd3ffa5c55cb6b4Marek Olšák                                     GLenum mode,
86db7404defd47aa22082b52a6a31a08fb39fab626Marek Olšák                                     struct gl_transform_feedback_object *obj,
87db7404defd47aa22082b52a6a31a08fb39fab626Marek Olšák                                     GLuint stream,
88db7404defd47aa22082b52a6a31a08fb39fab626Marek Olšák                                     GLsizei numInstances);
8914bb957b996dcc5392b8fa589bd3ffa5c55cb6b4Marek Olšák
9014bb957b996dcc5392b8fa589bd3ffa5c55cb6b4Marek Olšák#endif
91cf3193ad1cd75b847c5d626def701a4bb012d080Brian Paul
92cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell#endif
93