1 2/* 3 * Mesa 3-D graphics library 4 * 5 * Copyright (C) 1999-2001 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 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 21 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 22 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 23 * OTHER DEALINGS IN THE SOFTWARE. 24 */ 25 26 27#ifndef API_VALIDATE_H 28#define API_VALIDATE_H 29 30#include "mtypes.h" 31 32#ifdef __cplusplus 33extern "C" { 34#endif 35 36struct gl_buffer_object; 37struct gl_context; 38struct gl_transform_feedback_object; 39 40 41extern GLenum 42_mesa_valid_prim_mode(struct gl_context *ctx, GLenum mode); 43 44extern void 45_mesa_update_valid_to_render_state(struct gl_context *ctx); 46 47/** 48 * Is 'mode' a valid value for glBegin(), glDrawArrays(), glDrawElements(), 49 * etc? The set of legal values depends on whether geometry shaders/programs 50 * are supported. 51 * Note: This may be called during display list compilation. 52 */ 53static inline bool 54_mesa_is_valid_prim_mode(const struct gl_context *ctx, GLenum mode) 55{ 56 /* All primitive types are less than 32, which allows us to use a mask. */ 57 return mode < 32 && (1u << mode) & ctx->SupportedPrimMask; 58} 59 60#ifdef __cplusplus 61} 62#endif 63 64#endif 65