glsl2: restructure header file for C++ and C inclusion

As it was, the header could not be cleanly #included by a C source.
This commit is contained in:
Brian Paul 2010-08-27 11:53:19 -06:00
parent 1be5d1c887
commit b820bf979a

View file

@ -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 <cstdlib>
#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 */