From: Brian Paul Date: Fri, 27 Aug 2010 17:53:19 +0000 (-0600) Subject: glsl2: restructure header file for C++ and C inclusion X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b820bf979a1c308d8d6fe6ad89e8ae7c77226603;p=mesa.git glsl2: restructure header file for C++ and C inclusion As it was, the header could not be cleanly #included by a C source. --- diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h index b0b1bc31d05..3ccdab4ef27 100644 --- a/src/glsl/glsl_parser_extras.h +++ b/src/glsl/glsl_parser_extras.h @@ -25,6 +25,12 @@ #ifndef GLSL_PARSER_EXTRAS_H #define GLSL_PARSER_EXTRAS_H +/* + * Most of the definitions here only apply to C++ + */ +#ifdef __cplusplus + + #include #include "glsl_symbol_table.h" @@ -175,14 +181,6 @@ extern void _mesa_glsl_warning(const YYLTYPE *locp, _mesa_glsl_parse_state *state, const char *fmt, ...); -extern "C" { -extern int preprocess(void *ctx, const char **shader, char **info_log, - const struct gl_extensions *extensions); - -extern void _mesa_destroy_shader_compiler(); -extern void _mesa_destroy_shader_compiler_caches(); -} - extern void _mesa_glsl_lexer_ctor(struct _mesa_glsl_parse_state *state, const char *string); @@ -212,4 +210,26 @@ extern bool _mesa_glsl_process_extension(const char *name, YYLTYPE *name_locp, extern const char * _mesa_glsl_shader_target_name(enum _mesa_glsl_parser_targets target); + +#endif /* __cplusplus */ + + +/* + * These definitions apply to C and C++ + */ +#ifdef __cplusplus +extern "C" { +#endif + +extern int preprocess(void *ctx, const char **shader, char **info_log, + const struct gl_extensions *extensions); + +extern void _mesa_destroy_shader_compiler(); +extern void _mesa_destroy_shader_compiler_caches(); + +#ifdef __cplusplus +} +#endif + + #endif /* GLSL_PARSER_EXTRAS_H */