5
# Script for generating gdk/x11/gdkglglxext.h from SGI's OpenGL extension
8
# written by Naofumi Yasufuku <naofumi@users.sourceforge.net>
11
@input_headers = ("glxext.h", "glxext-extra.h");
14
open(IN, "common-header.h") || die "cannot open common-header.h";
20
* This is a generated file. Please modify "gen-gdkglglxext-h.pl".
23
#ifndef __GDK_GL_GLXEXT_H__
24
#define __GDK_GL_GLXEXT_H__
27
#include <X11/Xutil.h>
32
#include <gdk/gdkgldefs.h>
33
#include <gdk/gdkglquery.h>
34
#include <gdk/gdkglconfig.h>
38
#ifndef GLX_VERSION_1_3
39
typedef struct __GLXFBConfigRec *GLXFBConfig;
40
typedef XID GLXFBConfigID;
41
typedef XID GLXContextID;
42
typedef XID GLXWindow;
43
typedef XID GLXPbuffer;
46
#ifndef HAVE_GLXFBCONFIGSGIX
47
#if defined(GLX_SGIX_fbconfig) && defined(GDKGLEXT_NEED_GLXFBCONFIGSGIX_TYPEDEF)
48
typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
52
#ifndef HAVE_GLXFBCONFIGIDSGIX
53
#if defined(GLX_SGIX_fbconfig) && defined(GDKGLEXT_NEED_GLXFBCONFIGIDSGIX_TYPEDEF)
54
typedef XID GLXFBConfigIDSGIX;
58
#ifndef HAVE_GLXPBUFFERSGIX
59
#if defined(GLX_SGIX_pbuffer) && defined(GDKGLEXT_NEED_GLXPBUFFERSGIX_TYPEDEF)
60
typedef XID GLXPbufferSGIX;
64
/* for __GLXextFuncPtr typedef in glxext.h */
65
#ifndef HAVE___GLXEXTFUNCPTR
66
#if defined(GLX_ARB_get_proc_address) && defined(GDKGLEXT_NEED_GLXEXTFUNCPTR_TYPEDEF)
67
#undef GLX_ARB_get_proc_address
71
/* Suppress 'redefined' warnings (Solaris 8, etc.) */
73
#if !defined(GLX_ARB_multisample) && defined(GLX_SAMPLE_BUFFERS_ARB)
74
#define GLX_ARB_multisample 1
77
#if !defined(GLX_SGIS_multisample) && defined(GLX_SAMPLE_BUFFERS_SGIS)
78
#define GLX_SGIS_multisample 1
81
#if !defined(GLX_EXT_visual_rating) && defined(GLX_VISUAL_CAVEAT_EXT)
82
#define GLX_EXT_visual_rating 1
85
#if !defined(GLX_EXT_import_context) && defined(GLX_SHARE_CONTEXT_EXT)
86
#define GLX_EXT_import_context 1
89
/* Avoid old glxext.h bug. */
90
#if !defined(GLX_SGIX_video_source) && !defined(GDKGLEXT_NEED_GLXVIDEOSOURCESGIX_TYPEDEF)
91
#define GLX_SGIX_video_source 1
95
#undef GLX_GLXEXT_VERSION
96
#include <gdk/glext/glxext.h>
97
#include <gdk/glext/glxext-extra.h>
102
foreach $in (@input_headers) {
103
open(IN, $in) || die "cannot open $in";
106
if (/#ifndef\s+GLX_[a-zA-Z0-9]+_[a-z0-9_]+/) {
109
if (/#define\s+$line[1]/) {
111
if (/#ifdef\s+GLX_GLXEXT_PROTOTYPES/) {
113
$extension = $line[1];
115
# function prototypes
119
($func) = /(glX\w+)/;
120
push(@functions, $func);
150
#endif /* __GDK_GL_GLXEXT_H__ */
157
print " * $extension\n";
160
if ($extension eq "GLX_SGIX_video_source") {
161
print "#ifdef _VL_H\n\n";
162
} elsif ($extension eq "GLX_SGIX_dmbuffer") {
163
print "#ifdef _DM_BUFFER_H_\n\n";
167
foreach $func (@functions) {
168
print "/* $func */\n";
170
$type = $typedefs[$i++];
171
$type =~ s/PFN\w+/GdkGLProc_$func/;
174
print "GdkGLProc gdk_gl_get_$func (void);\n";
177
($args) = /\(.*\)\s+\((.*)\)/;
178
@args_list = split(/,\s+/, $args);
179
foreach (@args_list) {
180
($_) = /.*\s+\**(\w+)$/;
183
$args = join(", ", @args_list);
186
print "#define gdk_gl_$func(proc) \\\n";
187
print " ( ((GdkGLProc_$func) (proc)) () )\n";
189
print "#define gdk_gl_$func(proc, $args) \\\n";
190
print " ( ((GdkGLProc_$func) (proc)) ($args) )\n";
196
print "/* proc struct */\n\n";
198
print "typedef struct _GdkGL_$extension GdkGL_$extension;\n\n";
200
print "struct _GdkGL_$extension\n";
202
foreach $func (@functions) {
203
print " GdkGLProc_$func $func;\n";
207
if ($extension =~ /^GLX_VERSION_.*/) {
208
print "GdkGL_$extension *gdk_gl_get_$extension (void);\n\n";
210
print "GdkGL_$extension *gdk_gl_get_$extension (GdkGLConfig *glconfig);\n\n";
213
if ($extension eq "GLX_SGIX_video_source") {
214
print "#endif /* _VL_H */\n\n";
215
} elsif ($extension eq "GLX_SGIX_dmbuffer") {
216
print "#endif /* _DM_BUFFER_H_ */\n\n";