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