• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
33 extern "C" {
34 #endif
35 
36 struct gl_buffer_object;
37 struct gl_context;
38 struct gl_transform_feedback_object;
39 
40 
41 extern GLenum
42 _mesa_valid_prim_mode(struct gl_context *ctx, GLenum mode);
43 
44 extern 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  */
53 static inline bool
_mesa_is_valid_prim_mode(const struct gl_context * ctx,GLenum mode)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