aboutsummaryrefslogtreecommitdiffstats
path: root/code/macosx
diff options
context:
space:
mode:
Diffstat (limited to 'code/macosx')
-rwxr-xr-xcode/macosx/BuildRelease17
-rwxr-xr-xcode/macosx/CGMouseDeltaFix.h27
-rwxr-xr-xcode/macosx/CGMouseDeltaFix.m131
-rwxr-xr-xcode/macosx/CGPrivateAPI.h185
-rwxr-xr-xcode/macosx/GenerateQGL.pl146
-rwxr-xr-xcode/macosx/Performance.rtf114
-rwxr-xr-xcode/macosx/Q3Controller.h40
-rwxr-xr-xcode/macosx/Q3Controller.m435
-rwxr-xr-xcode/macosx/Quake3.icnsbin0 -> 35224 bytes
-rwxr-xr-xcode/macosx/Quake3.nib/classes.nib18
-rwxr-xr-xcode/macosx/Quake3.nib/info.nib19
-rwxr-xr-xcode/macosx/Quake3.nib/objects.nibbin0 -> 765 bytes
-rwxr-xr-xcode/macosx/Quake3.pbproj/apple.pbxuser563
-rwxr-xr-xcode/macosx/Quake3.pbproj/project.pbxproj11802
-rwxr-xr-xcode/macosx/RecordDemo.zsh9
-rwxr-xr-xcode/macosx/banner.jpgbin0 -> 55841 bytes
-rwxr-xr-xcode/macosx/botlib.log196
-rwxr-xr-xcode/macosx/macosx_display.h38
-rwxr-xr-xcode/macosx/macosx_display.m373
-rwxr-xr-xcode/macosx/macosx_glimp.h37
-rwxr-xr-xcode/macosx/macosx_glimp.m1114
-rwxr-xr-xcode/macosx/macosx_glsmp_mutex.m176
-rwxr-xr-xcode/macosx/macosx_glsmp_null.m46
-rwxr-xr-xcode/macosx/macosx_glsmp_ports.m425
-rwxr-xr-xcode/macosx/macosx_input.m916
-rwxr-xr-xcode/macosx/macosx_local.h129
-rwxr-xr-xcode/macosx/macosx_qgl.h5095
-rwxr-xr-xcode/macosx/macosx_sndcore.m325
-rwxr-xr-xcode/macosx/macosx_snddma.m205
-rwxr-xr-xcode/macosx/macosx_sys.m537
-rwxr-xr-xcode/macosx/macosx_timers.h56
-rwxr-xr-xcode/macosx/macosx_timers.m75
-rwxr-xr-xcode/macosx/timedemo.zsh26
33 files changed, 23275 insertions, 0 deletions
diff --git a/code/macosx/BuildRelease b/code/macosx/BuildRelease
new file mode 100755
index 0000000..fd49285
--- /dev/null
+++ b/code/macosx/BuildRelease
@@ -0,0 +1,17 @@
+#!/bin/zsh
+
+APPNAME="Quake3"
+PACKAGENAME= Quake3
+
+(cd $OMNI_SOURCE_ROOT; ./Build Quake3 install)
+
+rm -rf "/tmp/$APPNAME"
+mkdir "/tmp/$APPNAME"
+cp "Read Me.rtf" "/tmp/$APPNAME"
+
+cd /Users/Shared/$USER/InstalledProducts
+gnutar cf - FAKK2.app | (cd "/tmp/$APPNAME"; gnutar xf -)
+
+cd "/tmp/$APPNAME"
+sudo ~bungi/Unix/bin/files2image $PACKAGENAME ./*
+
diff --git a/code/macosx/CGMouseDeltaFix.h b/code/macosx/CGMouseDeltaFix.h
new file mode 100755
index 0000000..b613a98
--- /dev/null
+++ b/code/macosx/CGMouseDeltaFix.h
@@ -0,0 +1,27 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+#import <ApplicationServices/ApplicationServices.h>
+
+extern void CGFix_Initialize();
+
+extern void CGFix_GetLastMouseDelta(CGMouseDelta *dx, CGMouseDelta *dy);
+
diff --git a/code/macosx/CGMouseDeltaFix.m b/code/macosx/CGMouseDeltaFix.m
new file mode 100755
index 0000000..ee83eeb
--- /dev/null
+++ b/code/macosx/CGMouseDeltaFix.m
@@ -0,0 +1,131 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+#import "CGMouseDeltaFix.h"
+#import "CGPrivateAPI.h"
+
+#import <Foundation/Foundation.h>
+#import <mach-o/dyld.h>
+
+
+// We will try to automatically fall back to using the original CGGetLastMouseDelta when we are on a system new enough to have the fix. Any version of CoreGraphics past 1.93.0 will have the fixed version.
+
+
+static BOOL originalVersionShouldWork = YES;
+static CGMouseDelta CGFix_Mouse_DeltaX, CGFix_Mouse_DeltaY;
+
+static void CGFix_NotificationCallback(CGSNotificationType note, CGSNotificationData data, CGSByteCount dataLength, CGSNotificationArg arg);
+
+static CGSRegisterNotifyProcType registerNotifyProc = NULL;
+
+void CGFix_Initialize()
+{
+ NSAutoreleasePool *pool;
+ NSBundle *cgBundle;
+ NSString *version;
+ NSArray *components;
+
+ if (registerNotifyProc)
+ // We've already been called once and have registered our callbacks. If the original version works, this will be NULL, but we'll end up doing nothing (again, possibly).
+ return;
+
+ //NSLog(@"CGFix_Initialize\n");
+
+ pool = [[NSAutoreleasePool alloc] init];
+ cgBundle = [NSBundle bundleWithPath: @"/System/Library/Frameworks/ApplicationServices.framework/Frameworks/CoreGraphics.framework"];
+ if (!cgBundle) {
+ // If it's moved, it must be newer than what we know about and should work
+ //NSLog(@"No /System/Library/Frameworks/ApplicationServices.framework/Frameworks/CoreGraphics.framework\n");
+ goto done;
+ }
+
+ version = [[cgBundle infoDictionary] objectForKey: @"CFBundleShortVersionString"];
+ components = [version componentsSeparatedByString: @"."];
+ //NSLog(@"version = %@\n", version);
+ //NSLog(@"components = %@\n", components);
+
+
+ if ([components count] < 2)
+ // We don't understand this versioning scheme. Must have changed.
+ goto done;
+
+ if (![[components objectAtIndex: 0] isEqualToString: @"1"] || [[components objectAtIndex: 1] intValue] > 93)
+ // This version should be new enough to work
+ goto done;
+
+ // Look up the function pointer we need to register our callback.
+ if (!NSIsSymbolNameDefined("_CGSRegisterNotifyProc")) {
+ //NSLog(@"No _CGSRegisterNotifyProc\n");
+ goto done;
+ }
+
+ registerNotifyProc = NSAddressOfSymbol(NSLookupAndBindSymbol("_CGSRegisterNotifyProc"));
+ //NSLog(@"registerNotifyProc = 0x%08x", registerNotifyProc);
+
+ // Must not work if we got here
+ originalVersionShouldWork = NO;
+
+ // We want to catch all the events that could possible indicate mouse movement and sum them up
+ registerNotifyProc( CGFix_NotificationCallback, kCGSEventNotificationMouseMoved, NULL);
+ registerNotifyProc( CGFix_NotificationCallback, kCGSEventNotificationLeftMouseDragged, NULL);
+ registerNotifyProc( CGFix_NotificationCallback, kCGSEventNotificationRightMouseDragged, NULL);
+ registerNotifyProc( CGFix_NotificationCallback, kCGSEventNotificationNotificationOtherMouseDragged, NULL);
+
+done:
+ [pool release];
+}
+
+void CGFix_GetLastMouseDelta(CGMouseDelta *dx, CGMouseDelta *dy)
+{
+ if (originalVersionShouldWork) {
+ CGGetLastMouseDelta(dx, dy);
+ return;
+ }
+
+ *dx = CGFix_Mouse_DeltaX;
+ *dy = CGFix_Mouse_DeltaY;
+
+ CGFix_Mouse_DeltaX = CGFix_Mouse_DeltaY = 0;
+}
+
+static void CGFix_NotificationCallback(CGSNotificationType note, CGSNotificationData data, CGSByteCount dataLength, CGSNotificationArg arg)
+{
+ CGSEventRecordPtr event;
+
+ //fprintf(stderr, "CGFix_NotificationCallback(note=%d, date=0x%08x, dataLength=%d, arg=0x%08x)\n", note, data, dataLength, arg);
+
+#ifdef DEBUG
+ if ((note != kCGSEventNotificationMouseMoved &&
+ note != kCGSEventNotificationLeftMouseDragged &&
+ note != kCGSEventNotificationRightMouseDragged &&
+ note != kCGSEventNotificationNotificationOtherMouseDragged) ||
+ dataLength != sizeof (CGSEventRecord))
+ fprintf(stderr, "Unexpected arguments to callback function CGFix_NotificationCallback(note=%d, date=0x%08x, dataLength=%d, arg=0x%08x)\n", note, data, dataLength, arg);
+ abort();
+ }
+#endif
+
+ event = (CGSEventRecordPtr)data;
+
+ CGFix_Mouse_DeltaX += event->data.move.deltaX;
+ CGFix_Mouse_DeltaY += event->data.move.deltaY;
+ //fprintf(stderr, " dx += %d, dy += %d\n", event->data.move.deltaX, event->data.move.deltaY);
+}
diff --git a/code/macosx/CGPrivateAPI.h b/code/macosx/CGPrivateAPI.h
new file mode 100755
index 0000000..0eb8779
--- /dev/null
+++ b/code/macosx/CGPrivateAPI.h
@@ -0,0 +1,185 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+
+
+typedef unsigned long CGSNotificationType;
+typedef void * CGSNotificationData;
+typedef void * CGSNotificationArg;
+typedef void * CGSWindowID;
+typedef void * CGSConnectionID;
+
+typedef unsigned long long CGSUInt64;
+typedef long long CGSInt64;
+typedef unsigned long CGSUInt32;
+typedef long CGSInt32;
+typedef unsigned short CGSUInt16;
+typedef short CGSInt16;
+typedef unsigned char CGSUInt8;
+typedef char CGSInt8;
+typedef float CGSFloat32;
+
+typedef CGSUInt32 CGSByteCount;
+typedef CGSUInt16 CGSEventRecordVersion;
+typedef unsigned long CGSEventType;
+typedef CGSUInt64 CGSEventRecordTime; /* nanosecond timer */
+typedef unsigned long CGSEventFlag;
+typedef CGSUInt32 CGSError;
+
+
+typedef union {
+ struct { /* For mouse events */
+ CGSUInt8 subx; /* sub-pixel position for x */
+ CGSUInt8 suby; /* sub-pixel position for y */
+ CGSInt16 eventNum; /* unique identifier for this button */
+ CGSInt32 click; /* click state of this event */
+ CGSUInt8 pressure; /* pressure value: 0=none, 255=full */
+ CGSInt8 _reserved1;
+ CGSInt16 _reserved2;
+ CGSInt16 deltaX;
+ CGSInt16 deltaY;
+ CGSInt32 _padding[8];
+ } mouse;
+ struct { /* For pointer movement events */
+ CGSInt16 _obsolete_deltaX; /* Revert to subX, subY, eventNum */
+ CGSInt16 _obsolete_deltaY; /* for Gonzo 1H */
+ CGSInt32 click; /* click state of this event */
+ CGSUInt8 pressure; /* pressure value: 0=none, 255=full */
+ CGSInt8 _reserved1;
+ CGSInt16 _reserved2;
+ CGSInt16 deltaX;
+ CGSInt16 deltaY;
+ CGSInt32 _padding[8];
+ } move;
+ struct { /* For key-down and key-up events */
+ CGSInt16 reserved;
+ CGSInt16 repeat; /* for key-down: nonzero if really a repeat */
+ CGSUInt16 charSet; /* character set code */
+ CGSUInt16 charCode; /* character code in that set */
+ CGSUInt16 keyCode; /* device-dependent virtual key code */
+ CGSInt16 keyData; /* device-dependent info */
+ CGSInt16 specialKey; /* CPSSpecialKeyID if kCGSFlagsMaskSpecialKey is set */
+ CGSInt16 _pad;
+ CGSInt32 _padding[8];
+ } key;
+ struct { /* For mouse-entered and mouse-exited events */
+ CGSInt16 reserved;
+ CGSInt16 eventNum; /* unique identifier from mouse down event */
+ CGSInt32 trackingNum; /* unique identifier from settrackingrect */
+ CGSInt32 userData; /* unCGSInt32erpreted CGSInt32eger from settrackingrect */
+ CGSInt32 _padding[9];
+ } tracking;
+ struct { /* For process-related events */
+ CGSUInt16 notifyCode; /* CPSNotificationCodes in CPSProcesses.h */
+ CGSUInt16 flags; /* CPSEventFlags in CPSProcesses.h */
+ CGSUInt32 targetHiPSN; /* hiword of PSN */
+ CGSUInt32 targetLoPSN; /* loword of PSN */
+ CGSInt32 status; /* operation result */
+ CGSInt32 _padding[8];
+ } process;
+ struct { /* For scroll wheel events */
+ CGSInt16 deltaAxis1;
+ CGSInt16 deltaAxis2;
+ CGSInt16 deltaAxis3;
+ CGSInt16 reserved1;
+ CGSInt32 reserved2;
+ CGSInt32 _padding[9];
+ } scrollWheel;
+ struct {
+ CGSInt32 x; /* absolute x coordinate in tablet space at full tablet resolution */
+ CGSInt32 y; /* absolute y coordinate in tablet space at full tablet resolution */
+ CGSInt32 z; /* absolute z coordinate in tablet space at full tablet resolution */
+ CGSUInt16 buttons; /* one bit per button - bit 0 is first button - 1 = closed */
+ CGSUInt16 pressure; /* scaled pressure value; MAXPRESSURE=(2^16)-1, MINPRESSURE=0 */
+ struct {
+ CGSInt16 x; /* scaled tilt x value; range is -((2^15)-1) to (2^15)-1 (-32767 to 32767) */
+ CGSInt16 y; /* scaled tilt y value; range is -((2^15)-1) to (2^15)-1 (-32767 to 32767) */
+ } tilt;
+ CGSUInt16 rotation; /* Fixed-point representation of device rotation in a 10.6 format */
+ CGSInt16 tangentialPressure; /* tangential pressure on the device; range same as tilt */
+ CGSUInt16 deviceID; /* system-assigned unique device ID - matches to deviceID field in proximity event */
+ CGSInt16 vendor1; /* vendor-defined signed 16-bit integer */
+ CGSInt16 vendor2; /* vendor-defined signed 16-bit integer */
+ CGSInt16 vendor3; /* vendor-defined signed 16-bit integer */
+ CGSInt32 _padding[4];
+ } tablet;
+ struct {
+ CGSUInt16 vendorID; /* vendor-defined ID - typically will be USB vendor ID */
+ CGSUInt16 tabletID; /* vendor-defined tablet ID - typically will be USB product ID for the tablet */
+ CGSUInt16 pointerID; /* vendor-defined ID of the specific pointing device */
+ CGSUInt16 deviceID; /* system-assigned unique device ID - matches to deviceID field in tablet event */
+ CGSUInt16 systemTabletID; /* system-assigned unique tablet ID */
+ CGSUInt16 vendorPointerType; /* vendor-defined pointer type */
+ CGSUInt32 pointerSerialNumber; /* vendor-defined serial number of the specific pointing device */
+ CGSUInt64 uniqueID; /* vendor-defined unique ID for this pointer */
+ CGSUInt32 capabilityMask; /* mask representing the capabilities of the device */
+ CGSUInt8 pointerType; /* type of pointing device - enum to be defined */
+ CGSUInt8 enterProximity; /* non-zero = entering; zero = leaving */
+ CGSInt16 reserved1;
+ CGSInt32 _padding[4];
+ } proximity;
+ struct { /* For AppKit-defined, sys-defined, and app-defined events */
+ CGSInt16 reserved;
+ CGSInt16 subtype; /* event subtype for compound events */
+ union {
+ CGSFloat32 F[11]; /* for use in compound events */
+ CGSInt32 L[11]; /* for use in compound events */
+ CGSInt16 S[22]; /* for use in compound events */
+ CGSInt8 C[44]; /* for use in compound events */
+ } misc;
+ } compound;
+} CGSEventRecordData;
+
+
+struct _CGSEventRecord {
+ CGSEventRecordVersion major;
+ CGSEventRecordVersion minor;
+ CGSByteCount length; /* Length of complete event record */
+ CGSEventType type; /* An event type from above */
+ CGPoint location; /* Base coordinates (global), from upper-left */
+ CGPoint windowLocation; /* Coordinates relative to window */
+ CGSEventRecordTime time; /* nanoseconds since startup */
+ CGSEventFlag flags; /* key state flags */
+ CGSWindowID window; /* window number of assigned window */
+ CGSConnectionID connection; /* connection the event came from */
+ CGSEventRecordData data; /* type-dependent data: 40 bytes */
+};
+typedef struct _CGSEventRecord CGSEventRecord;
+typedef CGSEventRecord *CGSEventRecordPtr;
+
+
+typedef void (*CGSNotifyProcPtr)(CGSNotificationType type,
+ CGSNotificationData data,
+ CGSByteCount dataLength,
+ CGSNotificationArg arg);
+
+// Define a type for the 'CGSRegisterNotifyProc' call. Don't reference it explicitly since we don't want link errors if Apple removes this private function.
+typedef CGSError (*CGSRegisterNotifyProcType)(CGSNotifyProcPtr proc,
+ CGSNotificationType type,
+ CGSNotificationArg arg);
+
+
+#define kCGSEventNotificationMouseMoved (710 + 5)
+#define kCGSEventNotificationLeftMouseDragged (710 + 6)
+#define kCGSEventNotificationRightMouseDragged (710 + 7)
+#define kCGSEventNotificationNotificationOtherMouseDragged (710 + 27)
+
+
diff --git a/code/macosx/GenerateQGL.pl b/code/macosx/GenerateQGL.pl
new file mode 100755
index 0000000..27854df
--- /dev/null
+++ b/code/macosx/GenerateQGL.pl
@@ -0,0 +1,146 @@
+#!/usr/bin/perl
+
+open(INPUT_FILE, ">/tmp/input-$$.h") || die "$!";
+print INPUT_FILE "#import <OpenGL/gl.h>\n";
+close INPUT_FILE;
+open(CPP, "cpp /tmp/input-$$.h|") || die "$!";
+
+print "/**** This file is autogenerated. Run GenerateQGL.pl to update it ****/\n\n";
+
+print "#ifdef QGL_LOG_GL_CALLS\n";
+print "extern unsigned int QGLLogGLCalls;\n";
+print "extern FILE *QGLDebugFile(void);\n";
+print "#endif\n\n";
+
+print "extern void QGLCheckError(const char *message);\n";
+print "extern unsigned int QGLBeginStarted;\n\n";
+print "// This has to be done to avoid infinite recursion between our glGetError wrapper and QGLCheckError()\n";
+print "static inline GLenum _glGetError(void) {\n";
+print " return glGetError();\n";
+print "}\n\n";
+
+@functionNames = ();
+
+while (<CPP>) {
+ chop;
+ /^extern/ || next;
+ s/extern //;
+ print "// $_\n";
+
+ # This approach is necessary to deal with glGetString whos type isn't a single word
+ ($type, $rest) = m/(.+)\s+(gl.*)/;
+# print "type='$type'\n";
+# print "rest='$rest'\n";
+
+ ($name, $argString) = ($rest =~ m/(\w+).*\s*\((.*)\)/);
+ $isVoid = ($type =~ m/void/);
+ push(@functionNames, $name);
+
+# print "name=$name\n";
+# print "argString=$argString\n";
+# print "argCount=$#args\n";
+
+ # Parse the argument list into two arrays, one of types and one of argument names
+ if ($argString =~ m/^void$/) {
+ @args = ();
+ } else {
+ @args = split(",", $argString);
+ }
+ @argTypes = ();
+ @argNames = ();
+ for $arg (@args) {
+ ($argType, $argName) = ($arg =~ m/(.*[ \*])([_a-zA-Z0-9]+)/);
+ $argType =~ s/^ *//;
+ $argType =~ s/ *$//;
+
+ push(@argTypes, $argType);
+ push(@argNames, $argName);
+# print "argType='$argType'\n";
+# print "argName='$argName'\n";
+ }
+
+
+ print "static inline $type q$name($argString)\n";
+ print "{\n";
+
+ if (! $isVoid) {
+ print " $type returnValue;\n";
+ }
+
+ print "#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)\n";
+ print " if (QGLLogGLCalls)\n";
+ print " fprintf(QGLDebugFile(), \"$name(";
+
+ if ($#argTypes >= 0) {
+ for ($i = 0; $i <= $#argTypes; $i++) {
+ $argType = $argTypes[$i];
+ $argName = $argNames[$i];
+ $_ = $argType;
+ if (/^GLenum$/ || /^GLuint$/ || /^GLbitfield$/) {
+ print "$argName=%lu";
+ } elsif (/^GLsizei$/ || /^GLint$/) {
+ print "$argName=%ld";
+ } elsif (/^GLfloat$/ || /^GLdouble$/ || /^GLclampf$/ || /^GLclampd$/) {
+ print "$argName=%f";
+ } elsif (/^GLbyte$/) {
+ print "$argName=%d";
+ } elsif (/^GLubyte$/) {
+ print "$argName=%u";
+ } elsif (/^GLshort$/) {
+ print "$argName=%d";
+ } elsif (/^GLushort$/) {
+ print "$argName=%u";
+ } elsif (/^GLboolean$/) {
+ print "$argName=%u";
+ } elsif (/\*$/) {
+ # TJW -- Later we should look at the count specified in the function name, look at the basic type and print out an array. Or we could just special case them...
+ print "$argName=%p";
+ } else {
+ print STDERR "Unknown type '$argType'\n";
+ exit(1);
+ }
+
+ print ", " if ($i != $#argTypes);
+ }
+ } else {
+ print "void";
+ }
+
+ print ")\\n\"";
+ print ", " if $#argTypes >= 0;
+ print join(", ", @argNames);
+ print ");\n";
+ print "#endif\n";
+
+ if (! $isVoid) {
+ print " returnValue = ";
+ } else {
+ print " ";
+ }
+ print "$name(" . join(", ", @argNames) . ");\n";
+
+ print "#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)\n";
+ if ($name eq "glBegin") {
+ print " QGLBeginStarted++;\n";
+ }
+ if ($name eq "glEnd") {
+ print " QGLBeginStarted--;\n";
+ }
+ print " if (!QGLBeginStarted)\n";
+ print " QGLCheckError(\"$name\");\n";
+ print "#endif\n";
+
+ if (! $isVoid) {
+ print " return returnValue;\n";
+ }
+
+ print "}\n\n";
+}
+
+
+print "// Prevent calls to the 'normal' GL functions\n";
+for $name (@functionNames) {
+ print "#define $name CALL_THE_QGL_VERSION_OF_$name\n";
+}
+
+
diff --git a/code/macosx/Performance.rtf b/code/macosx/Performance.rtf
new file mode 100755
index 0000000..4ba0bfe
--- /dev/null
+++ b/code/macosx/Performance.rtf
@@ -0,0 +1,114 @@
+{\rtf1\mac\ansicpg10000{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
+{\colortbl;\red255\green255\blue255;\red255\green0\blue16;\red255\green0\blue16;}
+\paperw14240\paperh14700
+\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
+
+\f0\fs24 \cf0 \
+
+\b +set timedemo 1 +demo die.dm3 +set s_initsound 0 +set r_enablerender 0 +set vm_cgame 0 +set vm_game 0\
+4865 frames, 154.3 seconds: 31.5 fps\
+\
+\
++set timedemo 1 +demo die.dm3 +set s_initsound 0 +set r_enablerender 0 +set vm_cgame 2 +set vm_game 2\
+4865 frames, 199.8 seconds: 24.4 fps\
+\
+\
++set timedemo 1 +demo demo001.dm3 +set s_initsound 0 +set r_enablerender 0 +set vm_cgame 0 +set vm_game 0\
+1346 frames, 10.1 seconds: 133.0 fps\
+\
+\
++set timedemo 1 +demo demo001.dm3 +set s_initsound 0 +set r_enablerender 0 +set vm_cgame 2 +set vm_game 2\
+1346 frames, 12.8 seconds: 105.4 fps\
+\
+\
+\
+Starting point\
+
+\b0 4865 frames, 154.5 seconds: 31.5 fps\
+[seconds spent locally, % of parent, % of total, # of samples]\
+[133.623469 -- 60130560955, 100.00%, 100.00%, 4866] Root\
+ [126.853849 -- 57084231997, 94.93%, 94.93%, 4866] CL_Frame\
+ [125.895845 -- 56653130083, 99.24%, 94.22%, 4918] SCR_UpdateScreen\
+ [50.532841 -- 22739778533, 40.14%, 37.82%, 524036] RB_SurfaceMesh\
+ [46.583051 -- 20962372767, 92.18%, 34.86%, 524036] LerpMeshVertexes\
+ [8.465527 -- 3809487228, 18.17%, 6.34%, 455917] LerpMeshVertexes 1\
+
+\b \cf2 [37.967433 -- 17085344910, 81.50%, 28.41%, 68119] LerpMeshVertexes 2\
+
+\b0 \cf0 [0.32% spent locally]\
+ [7.82% spent locally]\
+ [59.86% spent locally]\
+ [0.76% spent locally]\
+[5.07% spent locally]\
+\
+
+\b Minor cleanup of local variables\
+
+\b0 [seconds spent locally, % of parent, % of total, # of samples]\
+[133.121489 -- 59904670191, 100.00%, 100.00%, 4866] Root\
+ [126.329343 -- 56848204176, 94.90%, 94.90%, 4866] CL_Frame\
+ [125.402239 -- 56431007399, 99.27%, 94.20%, 4918] SCR_UpdateScreen\
+ [50.013076 -- 22505884288, 39.88%, 37.57%, 524036] RB_SurfaceMesh\
+ [46.085775 -- 20738598809, 92.15%, 34.62%, 524036] LerpMeshVertexes\
+ [8.427565 -- 3792404277, 18.29%, 6.33%, 455917] LerpMeshVertexes 1\
+\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
+
+\b \cf3 [37.517092 -- 16882691281, 81.41%, 28.18%, 68119] LerpMeshVertexes 2\
+\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
+
+\b0 \cf0 [0.31% spent locally]\
+ [7.85% spent locally]\
+ [60.12% spent locally]\
+ [0.73% spent locally]\
+[5.10% spent locally]\
+\
+\
+
+\b Split out normalization of LERPed normals (i.e., all the sqrt calls)\
+
+\b0 [seconds spent locally, % of parent, % of total, # of samples]\
+[133.110463 -- 59899708244, 100.00%, 100.00%, 4866] Root\
+ [126.357393 -- 56860826689, 94.93%, 94.93%, 4866] CL_Frame\
+ [125.364641 -- 56414088645, 99.21%, 94.18%, 4918] SCR_UpdateScreen\
+ [49.854816 -- 22434667309, 39.77%, 37.45%, 524036] RB_SurfaceMesh\
+ [45.981802 -- 20691810706, 92.23%, 34.54%, 524036] LerpMeshVertexes\
+ [8.407983 -- 3783592133, 18.29%, 6.32%, 455917] LerpMeshVertexes 1\
+ [37.432159 -- 16844471717, 81.41%, 28.12%, 68119] LerpMeshVertexes 2\
+\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
+
+\b \cf3 [30.288000 -- 13629599780, 80.91%, 22.75%, 68119] VectorArrayNormalize\
+\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
+
+\b0 \cf0 [19.09% spent locally]\
+ [0.31% spent locally]\
+ [7.77% spent locally]\
+ [60.23% spent locally]\
+ [0.79% spent locally]\
+[5.07% spent locally]\
+\
+
+\b Rewrote VectorArrayNormalize to use PPC frsqrt instruction (with Newton-Rhapson refinement)\
+
+\b0 4865 frames, 128.7 seconds: 37.8 fps\
+[seconds spent locally, % of parent, % of total, # of samples]\
+[103.972710 -- 46787719721, 100.00%, 100.00%, 4866] Root\
+ [97.153160 -- 43718922078, 93.44%, 93.44%, 4866] CL_Frame\
+ [96.219348 -- 43298706398, 99.04%, 92.54%, 4918] SCR_UpdateScreen\
+ [20.873944 -- 9393274747, 21.69%, 20.08%, 524036] RB_SurfaceMesh\
+ [17.053245 -- 7673960266, 81.70%, 16.40%, 524036] LerpMeshVertexes\
+ [8.356579 -- 3760460537, 49.00%, 8.04%, 455917] LerpMeshVertexes 1\
+ [8.560159 -- 3852071404, 50.20%, 8.23%, 68119] LerpMeshVertexes 2\
+\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
+
+\b \cf3 [1.429376 -- 643219234, 16.70%, 1.37%, 68119] VectorArrayNormalize\
+\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
+
+\b0 \cf0 [83.30% spent locally]\
+ [0.80% spent locally]\
+ [18.30% spent locally]\
+ [78.31% spent locally]\
+ [0.96% spent locally]\
+[6.56% spent locally]\
+\
+\
+}
diff --git a/code/macosx/Q3Controller.h b/code/macosx/Q3Controller.h
new file mode 100755
index 0000000..426e437
--- /dev/null
+++ b/code/macosx/Q3Controller.h
@@ -0,0 +1,40 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+
+#import <AppKit/AppKit.h>
+
+@interface Q3Controller : NSObject
+{
+ IBOutlet NSPanel *bannerPanel;
+}
+
+#ifndef DEDICATED
+- (IBAction)paste:(id)sender;
+- (IBAction)requestTerminate:(id)sender;
+
+- (void) showBanner;
+#endif
+
+- (void)quakeMain;
+
+@end
+
diff --git a/code/macosx/Q3Controller.m b/code/macosx/Q3Controller.m
new file mode 100755
index 0000000..7839d59
--- /dev/null
+++ b/code/macosx/Q3Controller.m
@@ -0,0 +1,435 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+
+#import "Q3Controller.h"
+
+#import <Foundation/Foundation.h>
+#import <AppKit/AppKit.h>
+
+#include "client.h"
+#include "macosx_local.h"
+//#include "GameRanger SDK/gameranger.h"
+#ifdef OMNI_TIMER
+#import "macosx_timers.h"
+#endif
+
+#define MAX_ARGC 1024
+
+static qboolean Sys_IsProcessingTerminationRequest = qfalse;
+static void Sys_CreatePathToFile(NSString *path, NSDictionary *attributes);
+
+@interface Q3Controller (Private)
+- (void)quakeMain;
+@end
+
+@implementation Q3Controller
+
+#ifndef DEDICATED
+
+- (void)applicationDidFinishLaunching:(NSNotification *)notification;
+{
+ NS_DURING {
+ [self quakeMain];
+ } NS_HANDLER {
+ Sys_Error("%@", [localException reason]);
+ } NS_ENDHANDLER;
+ Sys_Quit();
+}
+
+- (void)applicationDidUnhide:(NSNotification *)notification;
+{
+ // Don't reactivate the game if we are asking whether to quit
+ if (Sys_IsProcessingTerminationRequest)
+ return;
+
+ if (!Sys_Unhide())
+ // Didn't work -- hide again so we should get another chance to unhide later
+ [NSApp hide: nil];
+}
+
+- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender;
+{
+ int choice;
+
+ if (!Sys_IsHidden) {
+ // We're terminating via -terminate:
+ return NSTerminateNow;
+ }
+
+ // Avoid reactivating GL when we unhide due to this panel
+ Sys_IsProcessingTerminationRequest = qtrue;
+ choice = NSRunAlertPanel(nil, @"Quit without saving?", @"Don't Quit", @"Quit", nil);
+ Sys_IsProcessingTerminationRequest = qfalse;
+
+ if (choice == NSAlertAlternateReturn)
+ return NSTerminateNow;
+
+ // Make sure we get re-hidden
+ [NSApp hide:nil];
+
+ return NSTerminateCancel;
+}
+
+// Actions
+
+- (IBAction)paste:(id)sender;
+{
+ int shiftWasDown, insertWasDown;
+ unsigned int currentTime;
+
+ currentTime = Sys_Milliseconds();
+ // Save the original keyboard state
+ shiftWasDown = keys[K_SHIFT].down;
+ insertWasDown = keys[K_INS].down;
+ // Fake a Shift-Insert keyboard event
+ keys[K_SHIFT].down = qtrue;
+ Sys_QueEvent(currentTime, SE_KEY, K_INS, qtrue, 0, NULL);
+ Sys_QueEvent(currentTime, SE_KEY, K_INS, qfalse, 0, NULL);
+ // Restore the original keyboard state
+ keys[K_SHIFT].down = shiftWasDown;
+ keys[K_INS].down = insertWasDown;
+}
+
+extern void CL_Quit_f(void);
+
+
+- (IBAction)requestTerminate:(id)sender;
+{
+ Com_Quit_f();
+ // UI_QuitMenu();
+}
+
+- (void)showBanner;
+{
+ static BOOL hasShownBanner = NO;
+
+ if (!hasShownBanner) {
+ cvar_t *showBanner;
+
+ hasShownBanner = YES;
+ showBanner = Cvar_Get("cl_showBanner", "1", 0);
+ if (showBanner->integer != 0) {
+ NSPanel *splashPanel;
+ NSImage *bannerImage;
+ NSRect bannerRect;
+ NSImageView *bannerImageView;
+
+ bannerImage = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForImageResource:@"banner.jpg"]];
+ bannerRect = NSMakeRect(0.0, 0.0, [bannerImage size].width, [bannerImage size].height);
+
+ splashPanel = [[NSPanel alloc] initWithContentRect:bannerRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO];
+
+ bannerImageView = [[NSImageView alloc] initWithFrame:bannerRect];
+ [bannerImageView setImage:bannerImage];
+ [splashPanel setContentView:bannerImageView];
+ [bannerImageView release];
+
+ [splashPanel center];
+ [splashPanel setHasShadow:YES];
+ [splashPanel orderFront: nil];
+ [NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:2.5]];
+ [splashPanel close];
+
+ [bannerImage release];
+ }
+ }
+}
+
+// Services
+
+- (void)connectToServer:(NSPasteboard *)pasteboard userData:(NSString *)data error:(NSString **)error;
+{
+ NSArray *pasteboardTypes;
+
+ pasteboardTypes = [pasteboard types];
+ if ([pasteboardTypes containsObject:NSStringPboardType]) {
+ NSString *requestedServer;
+
+ requestedServer = [pasteboard stringForType:NSStringPboardType];
+ if (requestedServer) {
+ Cbuf_AddText(va("connect %s\n", [requestedServer cString]));
+ return;
+ }
+ }
+ *error = @"Unable to connect to server: could not find string on pasteboard";
+}
+
+- (void)performCommand:(NSPasteboard *)pasteboard userData:(NSString *)data error:(NSString **)error;
+{
+ NSArray *pasteboardTypes;
+
+ pasteboardTypes = [pasteboard types];
+ if ([pasteboardTypes containsObject:NSStringPboardType]) {
+ NSString *requestedCommand;
+
+ requestedCommand = [pasteboard stringForType:NSStringPboardType];
+ if (requestedCommand) {
+ Cbuf_AddText(va("%s\n", [requestedCommand cString]));
+ return;
+ }
+ }
+ *error = @"Unable to perform command: could not find string on pasteboard";
+}
+
+#endif
+
+- (void)quakeMain;
+{
+ NSAutoreleasePool *pool;
+ int argc = 0;
+ const char *argv[MAX_ARGC];
+ NSProcessInfo *processInfo;
+ NSArray *arguments;
+ unsigned int argumentIndex, argumentCount;
+ NSFileManager *defaultManager;
+ unsigned int commandLineLength;
+ NSString *installationPathKey, *installationPath;
+ char *cmdline;
+ BOOL foundDirectory;
+ NSString *appName, *demoAppName, *selectButton;
+ int count = 0;
+ pool = [[NSAutoreleasePool alloc] init];
+
+ [NSApp setServicesProvider:self];
+
+ processInfo = [NSProcessInfo processInfo];
+ arguments = [processInfo arguments];
+ argumentCount = [arguments count];
+ for (argumentIndex = 0; argumentIndex < argumentCount; argumentIndex++) {
+ NSString *arg;
+
+ arg = [arguments objectAtIndex:argumentIndex];
+ // Don't pass the Process Serial Number command line arg that the Window Server/Finder invokes us with
+ if ([arg hasPrefix: @"-psn_"])
+ continue;
+
+ argv[argc++] = strdup([arg cString]);
+ }
+
+ // Figure out where the level data is stored.
+ installationPathKey = @"RetailInstallationPath";
+
+ installationPath = [[NSUserDefaults standardUserDefaults] objectForKey:installationPathKey];
+ if (!installationPath) {
+ // Default to the directory containing the executable (which is where most users will want to put it
+ installationPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+ }
+
+#if !defined(DEDICATED)
+ appName = [[[NSBundle mainBundle] infoDictionary] objectForKey: @"CFBundleName"];
+#else
+ // We are hard coding the app name here since the dedicated server is a tool, not a app bundle and does not have access to the Info.plist that the client app does. Suck.
+ appName = @"Quake3";
+#endif
+ demoAppName = appName;
+
+ while (YES) {
+ NSString *dataPath;
+ NSOpenPanel *openPanel;
+ int result;
+
+ foundDirectory = NO;
+ defaultManager = [NSFileManager defaultManager];
+ //NSLog(@"Candidate installation path = %@", installationPath);
+ dataPath = [installationPath stringByAppendingPathComponent: @"baseq3"];
+
+ if ([defaultManager fileExistsAtPath: dataPath]) {
+ // Check that the data directory contains at least one .pk3 file. We don't know what it will be named, so don't hard code a name (for example it might be named 'french.pk3' for a French release
+ NSArray *files;
+ unsigned int fileIndex;
+
+ files = [defaultManager directoryContentsAtPath: dataPath];
+ fileIndex = [files count];
+ while (fileIndex--) {
+ if ([[files objectAtIndex: fileIndex] hasSuffix: @"pk3"]) {
+ //NSLog(@"Found %@.", [files objectAtIndex: fileIndex]);
+ foundDirectory = YES;
+ break;
+ }
+ }
+ }
+
+ if (foundDirectory)
+ break;
+
+#ifdef DEDICATED
+ break;
+#warning TJW: We are hard coding the app name and default domain here since the dedicated server is a tool, not a app bundle and does not have access to the Info.plist that the client app does. Suck.
+ NSLog(@"Unable to determine installation directory. Please move the executable into the '%@' installation directory or add a '%@' key in the 'Q3DedicatedServer' defaults domain.", appName, installationPathKey, [[NSBundle mainBundle] bundleIdentifier]);
+ Sys_Quit();
+ exit(1);
+#else
+ selectButton = @"Select Retail Installation...";
+
+ result = NSRunAlertPanel(demoAppName, @"You need to select the installation directory for %@ (not any directory inside of it -- the installation directory itself).", selectButton, @"Quit", nil, appName);
+ switch (result) {
+ case NSAlertDefaultReturn:
+ break;
+ default:
+ Sys_Quit();
+ break;
+ }
+
+ openPanel = [NSOpenPanel openPanel];
+ [openPanel setAllowsMultipleSelection:NO];
+ [openPanel setCanChooseDirectories:YES];
+ [openPanel setCanChooseFiles:NO];
+ result = [openPanel runModalForDirectory:nil file:nil];
+ if (result == NSOKButton) {
+ NSArray *filenames;
+
+ filenames = [openPanel filenames];
+ if ([filenames count] == 1) {
+ installationPath = [filenames objectAtIndex:0];
+ [[NSUserDefaults standardUserDefaults] setObject:installationPath forKey:installationPathKey];
+ [[NSUserDefaults standardUserDefaults] synchronize];
+ }
+ }
+#endif
+ }
+
+ // Create the application support directory if it doesn't exist already
+ do {
+ NSArray *results;
+ NSString *libraryPath, *homePath, *filePath;
+ NSDictionary *attributes;
+
+ results = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
+ if (![results count])
+ break;
+
+ libraryPath = [results objectAtIndex: 0];
+ homePath = [libraryPath stringByAppendingPathComponent: @"Application Support"];
+ homePath = [homePath stringByAppendingPathComponent: appName];
+ filePath = [homePath stringByAppendingPathComponent: @"foo"];
+
+ attributes = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithUnsignedInt: 0750], NSFilePosixPermissions, nil];
+ NS_DURING {
+ Sys_CreatePathToFile(filePath, attributes);
+ Sys_SetDefaultHomePath([homePath fileSystemRepresentation]);
+ } NS_HANDLER {
+ NSLog(@"Exception: %@", localException);
+#ifndef DEDICATED
+ NSRunAlertPanel(nil, @"Unable to create '%@'. Please make sure that you have permission to write to this folder and re-run the game.", @"OK", nil, nil, homePath);
+#endif
+ Sys_Quit();
+ } NS_ENDHANDLER;
+ } while(0);
+
+ // Provoke the CD scanning code into looking up the CD.
+ Sys_CheckCD();
+
+ // Let the filesystem know where our local install is
+ Sys_SetDefaultInstallPath([installationPath cString]);
+
+ cmdline = NULL;
+#if 0
+ if (GRCheckFileForCmd()) {
+ GRGetWaitingCmd();
+ if (GRHasProperty( 'Exec' )) {
+ NSString *cfgPath, *grCfg;
+ cfgPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
+ cfgPath = [cfgPath stringByAppendingPathComponent: [NSString stringWithCString: GRGetPropertyStr( 'Exec' )]];
+ grCfg = [NSString stringWithContentsOfFile: cfgPath];
+ cmdline = malloc(strlen([grCfg cString])+1);
+ [grCfg getCString: cmdline];
+ }
+ }
+#endif
+ if (!cmdline) {
+ // merge the command line, this is kinda silly
+ for (commandLineLength = 1, argumentIndex = 1; argumentIndex < argc; argumentIndex++)
+ commandLineLength += strlen(argv[argumentIndex]) + 1;
+ cmdline = malloc(commandLineLength);
+ *cmdline = '\0';
+ for (argumentIndex = 1; argumentIndex < argc; argumentIndex++) {
+ if (argumentIndex > 1)
+ strcat(cmdline, " ");
+ strcat(cmdline, argv[argumentIndex]);
+ }
+ }
+ Com_Printf("command line: %s\n", cmdline);
+
+ Com_Init(cmdline);
+
+#ifndef DEDICATED
+ [NSApp activateIgnoringOtherApps:YES];
+#endif
+
+ while (1) {
+ Com_Frame();
+
+ if ((count & 15)==0) {
+ // We should think about doing this less frequently than every frame
+ [pool release];
+ pool = [[NSAutoreleasePool alloc] init];
+ }
+ }
+
+ [pool release];
+}
+
+@end
+
+
+
+// Creates any directories needed to be able to create a file at the specified path. Raises an exception on failure.
+static void Sys_CreatePathToFile(NSString *path, NSDictionary *attributes)
+{
+ NSArray *pathComponents;
+ unsigned int dirIndex, dirCount;
+ unsigned int startingIndex;
+ NSFileManager *manager;
+
+ manager = [NSFileManager defaultManager];
+ pathComponents = [path pathComponents];
+ dirCount = [pathComponents count] - 1;
+
+ startingIndex = 0;
+ for (dirIndex = startingIndex; dirIndex < dirCount; dirIndex++) {
+ NSString *partialPath;
+ BOOL fileExists;
+
+ partialPath = [NSString pathWithComponents:[pathComponents subarrayWithRange:NSMakeRange(0, dirIndex + 1)]];
+
+ // Don't use the 'fileExistsAtPath:isDirectory:' version since it doesn't traverse symlinks
+ fileExists = [manager fileExistsAtPath:partialPath];
+ if (!fileExists) {
+ if (![manager createDirectoryAtPath:partialPath attributes:attributes]) {
+ [NSException raise:NSGenericException format:@"Unable to create a directory at path: %@", partialPath];
+ }
+ } else {
+ NSDictionary *attributes;
+
+ attributes = [manager fileAttributesAtPath:partialPath traverseLink:YES];
+ if (![[attributes objectForKey:NSFileType] isEqualToString: NSFileTypeDirectory]) {
+ [NSException raise:NSGenericException format:@"Unable to write to path \"%@\" because \"%@\" is not a directory",
+ path, partialPath];
+ }
+ }
+ }
+}
+
+#ifdef DEDICATED
+void S_ClearSoundBuffer( void ) {
+}
+#endif
diff --git a/code/macosx/Quake3.icns b/code/macosx/Quake3.icns
new file mode 100755
index 0000000..30e3b67
--- /dev/null
+++ b/code/macosx/Quake3.icns
Binary files differ
diff --git a/code/macosx/Quake3.nib/classes.nib b/code/macosx/Quake3.nib/classes.nib
new file mode 100755
index 0000000..8436859
--- /dev/null
+++ b/code/macosx/Quake3.nib/classes.nib
@@ -0,0 +1,18 @@
+{
+ IBClasses = (
+ {
+ ACTIONS = {showHelp = id; };
+ CLASS = FirstResponder;
+ LANGUAGE = ObjC;
+ SUPERCLASS = NSObject;
+ },
+ {
+ ACTIONS = {paste = id; requestTerminate = id; };
+ CLASS = Q3Controller;
+ LANGUAGE = ObjC;
+ OUTLETS = {bannerPanel = id; };
+ SUPERCLASS = NSObject;
+ }
+ );
+ IBVersion = 1;
+} \ No newline at end of file
diff --git a/code/macosx/Quake3.nib/info.nib b/code/macosx/Quake3.nib/info.nib
new file mode 100755
index 0000000..41085f5
--- /dev/null
+++ b/code/macosx/Quake3.nib/info.nib
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
+<plist version="0.9">
+<dict>
+ <key>IBEditorPositions</key>
+ <dict>
+ <key>29</key>
+ <string>69 252 121 44 0 0 1152 746 </string>
+ </dict>
+ <key>IBFramework Version</key>
+ <string>248.0</string>
+ <key>IBOpenObjects</key>
+ <array>
+ <integer>29</integer>
+ </array>
+ <key>IBSystem Version</key>
+ <string>5V21</string>
+</dict>
+</plist>
diff --git a/code/macosx/Quake3.nib/objects.nib b/code/macosx/Quake3.nib/objects.nib
new file mode 100755
index 0000000..fbea89a
--- /dev/null
+++ b/code/macosx/Quake3.nib/objects.nib
Binary files differ
diff --git a/code/macosx/Quake3.pbproj/apple.pbxuser b/code/macosx/Quake3.pbproj/apple.pbxuser
new file mode 100755
index 0000000..ae03b31
--- /dev/null
+++ b/code/macosx/Quake3.pbproj/apple.pbxuser
@@ -0,0 +1,563 @@
+// !$*UTF8*$!
+{
+ 00F5ED38FEBA95B7C697A12F = {
+ activeExec = 0;
+ };
+ 00F5ED90FEBA9615C697A12F = {
+ activeExec = 0;
+ };
+ 016EAE0300B4BDD1C697A10E = {
+ activeExec = 0;
+ };
+ 0170304B00B4885DC697A10E = {
+ activeExec = 0;
+ executables = (
+ 1895FF35065E291B00F8B3F4,
+ );
+ };
+ 0170311C00B49352C697A10E = {
+ activeExec = 0;
+ };
+ 043627B100868916C697A10E = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1586, 6033}}";
+ sepNavSelRange = "{136, 0}";
+ sepNavVisRect = "{{0, 0}, {711, 428}}";
+ };
+ };
+ 0654BA41FE8ECEE0C697A12F = {
+ activeBuildStyle = 07F3F50BFFE98E8EC697A10E;
+ activeExecutable = 1895FF30065E291B00F8B3F4;
+ activeTarget = 00F5ED90FEBA9615C697A12F;
+ codeSenseManager = 1895FF4C065E294000F8B3F4;
+ executables = (
+ 1895FF2F065E291B00F8B3F4,
+ 1895FF30065E291B00F8B3F4,
+ 1895FF31065E291B00F8B3F4,
+ 1895FF35065E291B00F8B3F4,
+ );
+ perUserDictionary = {
+ PBXConfiguration.PBXFileTableDataSource3.PBXExecutablesDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXExecutablesDataSource_NameID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 22,
+ 843.7974,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXExecutablesDataSource_ActiveFlagID,
+ PBXExecutablesDataSource_NameID,
+ );
+ };
+ PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 550,
+ 20,
+ 99,
+ 43,
+ 43,
+ 20,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ PBXFileDataSource_Target_ColumnID,
+ );
+ };
+ PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 467,
+ 101,
+ 20,
+ 101,
+ 43,
+ 43,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXTargetDataSource_PrimaryAttribute,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ );
+ };
+ PBXPerProjectTemplateStateSaveDate = 106915007;
+ PBXPrepackagedSmartGroups_v2 = (
+ {
+ PBXTransientLocationAtTop = bottom;
+ absolutePathToBundle = "";
+ activationKey = OldTargetSmartGroup;
+ clz = PBXTargetSmartGroup;
+ description = "Displays all targets of the project.";
+ globalID = 1C37FABC04509CD000000102;
+ name = Targets;
+ preferences = {
+ image = Targets;
+ };
+ },
+ {
+ PBXTransientLocationAtTop = bottom;
+ absolutePathToBundle = "";
+ clz = PBXTargetSmartGroup2;
+ description = "Displays all targets of the project as well as nested build phases.";
+ globalID = 1C37FBAC04509CD000000102;
+ name = Targets;
+ preferences = {
+ image = Targets;
+ };
+ },
+ {
+ PBXTransientLocationAtTop = bottom;
+ absolutePathToBundle = "";
+ clz = PBXExecutablesSmartGroup;
+ description = "Displays all executables of the project.";
+ globalID = 1C37FAAC04509CD000000102;
+ name = Executables;
+ preferences = {
+ image = Executable;
+ };
+ },
+ {
+ " PBXTransientLocationAtTop " = bottom;
+ absolutePathToBundle = "";
+ clz = PBXErrorsWarningsSmartGroup;
+ description = "Displays files with errors or warnings.";
+ globalID = 1C08E77C0454961000C914BD;
+ name = "Errors and Warnings";
+ preferences = {
+ fnmatch = "";
+ image = WarningsErrors;
+ recursive = 1;
+ regex = "";
+ root = "<PROJECT>";
+ };
+ },
+ {
+ PBXTransientLocationAtTop = bottom;
+ absolutePathToBundle = "";
+ clz = PBXFilenameSmartGroup;
+ description = "Filters items in a given group (potentially recursively) based on matching the name with the regular expression of the filter.";
+ globalID = 1CC0EA4004350EF90044410B;
+ name = "Implementation Files";
+ preferences = {
+ canSave = 1;
+ fnmatch = "";
+ image = SmartFolder;
+ isLeaf = 0;
+ recursive = 1;
+ regex = "?*\\.[mcMC]";
+ root = "<PROJECT>";
+ };
+ },
+ {
+ PBXTransientLocationAtTop = bottom;
+ absolutePathToBundle = "";
+ clz = PBXFilenameSmartGroup;
+ description = "This group displays Interface Builder NIB Files.";
+ globalID = 1CC0EA4004350EF90041110B;
+ name = "NIB Files";
+ preferences = {
+ canSave = 1;
+ fnmatch = "*.nib";
+ image = SmartFolder;
+ isLeaf = 0;
+ recursive = 1;
+ regex = "";
+ root = "<PROJECT>";
+ };
+ },
+ {
+ PBXTransientLocationAtTop = no;
+ absolutePathToBundle = "";
+ clz = PBXFindSmartGroup;
+ description = "Displays Find Results.";
+ globalID = 1C37FABC05509CD000000102;
+ name = "Find Results";
+ preferences = {
+ image = spyglass;
+ };
+ },
+ {
+ PBXTransientLocationAtTop = no;
+ absolutePathToBundle = "";
+ clz = PBXBookmarksSmartGroup;
+ description = "Displays Project Bookmarks.";
+ globalID = 1C37FABC05539CD112110102;
+ name = Bookmarks;
+ preferences = {
+ image = Bookmarks;
+ };
+ },
+ {
+ PBXTransientLocationAtTop = bottom;
+ absolutePathToBundle = "";
+ clz = XCSCMSmartGroup;
+ description = "Displays files with interesting SCM status.";
+ globalID = E2644B35053B69B200211256;
+ name = SCM;
+ preferences = {
+ image = PBXRepository;
+ isLeaf = 0;
+ };
+ },
+ {
+ PBXTransientLocationAtTop = bottom;
+ absolutePathToBundle = "";
+ clz = PBXSymbolsSmartGroup;
+ description = "Displays all symbols for the project.";
+ globalID = 1C37FABC04509CD000100104;
+ name = "Project Symbols";
+ preferences = {
+ image = ProjectSymbols;
+ isLeaf = 1;
+ };
+ },
+ {
+ PBXTransientLocationAtTop = bottom;
+ absolutePathToBundle = "";
+ clz = PBXFilenameSmartGroup;
+ description = "Filters items in a given group (potentially recursively) based on matching the name with the regular expression of the filter.";
+ globalID = PBXTemplateMarker;
+ name = "Simple Filter SmartGroup";
+ preferences = {
+ canSave = 1;
+ fnmatch = "*.nib";
+ image = SmartFolder;
+ isLeaf = 0;
+ recursive = 1;
+ regex = "";
+ root = "<PROJECT>";
+ };
+ },
+ {
+ PBXTransientLocationAtTop = bottom;
+ absolutePathToBundle = "";
+ clz = PBXFilenameSmartGroup;
+ description = "Filters items in a given group (potentially recursively) based on matching the name with the regular expression of the filter.";
+ globalID = PBXTemplateMarker;
+ name = "Simple Regular Expression SmartGroup";
+ preferences = {
+ canSave = 1;
+ fnmatch = "";
+ image = SmartFolder;
+ isLeaf = 0;
+ recursive = 1;
+ regex = "?*\\.[mcMC]";
+ root = "<PROJECT>";
+ };
+ },
+ );
+ PBXWorkspaceContents = (
+ {
+ PBXProjectWorkspaceModule_StateKey_Rev39 = {
+ PBXProjectWorkspaceModule_DataSourceSelectionKey_Rev6 = {
+ BoundsStr = "{{0, 0}, {823, 735}}";
+ Rows = (
+ );
+ VisibleRectStr = "{{0, 0}, {823, 735}}";
+ };
+ PBXProjectWorkspaceModule_EditorOpen = false;
+ PBXProjectWorkspaceModule_EmbeddedNavigatorGroup = {
+ PBXSplitModuleInNavigatorKey = {
+ SplitCount = 1;
+ };
+ };
+ PBXProjectWorkspaceModule_GeometryKey_Rev15 = {
+ PBXProjectWorkspaceModule_SGTM_Geometry = {
+ _collapsingFrameDimension = 0;
+ _indexOfCollapsedView = 0;
+ _percentageOfCollapsedView = 0;
+ sizes = (
+ "{{0, 0}, {210, 752}}",
+ "{{210, 0}, {838, 752}}",
+ );
+ };
+ };
+ PBXProjectWorkspaceModule_OldDetailFrame = "{{0, 0}, {838, 752}}";
+ PBXProjectWorkspaceModule_OldEditorFrame = "{{0, 0}, {750, 480}}";
+ PBXProjectWorkspaceModule_OldSuperviewFrame = "{{210, 0}, {838, 752}}";
+ PBXProjectWorkspaceModule_SGTM = {
+ PBXBottomSmartGroupGIDs = (
+ 1C37FBAC04509CD000000102,
+ 1C37FAAC04509CD000000102,
+ 1C08E77C0454961000C914BD,
+ 1CC0EA4004350EF90044410B,
+ 1CC0EA4004350EF90041110B,
+ 1C37FABC05509CD000000102,
+ 1C37FABC05539CD112110102,
+ E2644B35053B69B200211256,
+ 1C37FABC04509CD000100104,
+ );
+ PBXSmartGroupTreeModuleColumnData = {
+ PBXSmartGroupTreeModuleColumnWidthsKey = (
+ 193,
+ );
+ PBXSmartGroupTreeModuleColumnsKey_v4 = (
+ MainColumn,
+ );
+ };
+ PBXSmartGroupTreeModuleOutlineStateKey_v7 = {
+ PBXSmartGroupTreeModuleOutlineStateExpansionKey = (
+ 1C37FBAC04509CD000000102,
+ 18A3D348065F659F006A719A,
+ 18A3D35B065F6655006A719A,
+ );
+ PBXSmartGroupTreeModuleOutlineStateSelectionKey = (
+ (
+ 2,
+ 1,
+ ),
+ );
+ PBXSmartGroupTreeModuleOutlineStateVisibleRectKey = "{{0, 0}, {193, 734}}";
+ };
+ PBXTopSmartGroupGIDs = (
+ );
+ };
+ };
+ },
+ );
+ "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXBuildResultsModule" = {
+ };
+ "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXCVSModule" = {
+ };
+ "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXDebugCLIModule" = {
+ };
+ "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXNavigatorGroup" = {
+ PBXSplitModuleInNavigatorKey = {
+ SplitCount = 1;
+ };
+ };
+ "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXProjectWorkspaceModule" = {
+ PBXProjectWorkspaceModule_StateKey_Rev39 = {
+ PBXProjectWorkspaceModule_DataSourceSelectionKey_Rev6 = {
+ BoundsStr = "{{0, 0}, {851, 4290}}";
+ Rows = (
+ 0,
+ );
+ VisibleRectStr = "{{0, 0}, {851, 735}}";
+ };
+ PBXProjectWorkspaceModule_EditorOpen = false;
+ PBXProjectWorkspaceModule_EmbeddedNavigatorGroup = {
+ PBXSplitModuleInNavigatorKey = {
+ SplitCount = 1;
+ };
+ };
+ PBXProjectWorkspaceModule_GeometryKey_Rev15 = {
+ PBXProjectWorkspaceModule_SGTM_Geometry = {
+ _collapsingFrameDimension = 0;
+ _indexOfCollapsedView = 0;
+ _percentageOfCollapsedView = 0;
+ sizes = (
+ "{{0, 0}, {182, 752}}",
+ "{{182, 0}, {866, 752}}",
+ );
+ };
+ };
+ PBXProjectWorkspaceModule_OldDetailFrame = "{{0, 0}, {866, 752}}";
+ PBXProjectWorkspaceModule_OldEditorFrame = "{{0, 0}, {750, 480}}";
+ PBXProjectWorkspaceModule_OldSuperviewFrame = "{{182, 0}, {866, 752}}";
+ PBXProjectWorkspaceModule_SGTM = {
+ PBXBottomSmartGroupGIDs = (
+ 1C37FBAC04509CD000000102,
+ 1C37FAAC04509CD000000102,
+ 1C08E77C0454961000C914BD,
+ 1CC0EA4004350EF90044410B,
+ 1CC0EA4004350EF90041110B,
+ 1C37FABC05509CD000000102,
+ 1C37FABC05539CD112110102,
+ E2644B35053B69B200211256,
+ 1C37FABC04509CD000100104,
+ );
+ PBXSmartGroupTreeModuleColumnData = {
+ PBXSmartGroupTreeModuleColumnWidthsKey = (
+ 165,
+ );
+ PBXSmartGroupTreeModuleColumnsKey_v4 = (
+ MainColumn,
+ );
+ };
+ PBXSmartGroupTreeModuleOutlineStateKey_v7 = {
+ PBXSmartGroupTreeModuleOutlineStateExpansionKey = (
+ 1C37FBAC04509CD000000102,
+ 18A3D340065F651C006A719A,
+ 18A3D341065F651D006A719A,
+ );
+ PBXSmartGroupTreeModuleOutlineStateSelectionKey = (
+ (
+ 1,
+ ),
+ );
+ PBXSmartGroupTreeModuleOutlineStateVisibleRectKey = "{{0, 0}, {165, 734}}";
+ };
+ PBXTopSmartGroupGIDs = (
+ );
+ };
+ };
+ };
+ PBXWorkspaceGeometries = (
+ {
+ Frame = "{{0, 0}, {1048, 752}}";
+ PBXProjectWorkspaceModule_GeometryKey_Rev15 = {
+ };
+ RubberWindowFrame = "17 182 1048 794 0 0 1680 1028 ";
+ },
+ );
+ "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXBuildResultsModule" = {
+ Frame = "{{0, 0}, {755, 578}}";
+ PBXModuleWindowStatusBarHidden = YES;
+ RubberWindowFrame = "612 317 755 599 0 0 1680 1028 ";
+ };
+ "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXCVSModule" = {
+ Frame = "{{0, 0}, {482, 276}}";
+ RubberWindowFrame = "590 449 482 318 0 0 1680 1028 ";
+ };
+ "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXDebugCLIModule" = {
+ Frame = "{{0, 0}, {400, 201}}";
+ PBXModuleWindowStatusBarHidden = YES;
+ RubberWindowFrame = "50 1000 400 222 0 0 1680 1028 ";
+ };
+ "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXNavigatorGroup" = {
+ Frame = "{{0, 0}, {750, 460}}";
+ RubberWindowFrame = "428 357 750 502 0 0 1680 1028 ";
+ };
+ "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXProjectWorkspaceModule" = {
+ Frame = "{{0, 0}, {1048, 752}}";
+ PBXProjectWorkspaceModule_GeometryKey_Rev15 = {
+ PBXProjectWorkspaceModule_BuildResultsWindowVisible = true;
+ };
+ RubberWindowFrame = "17 182 1048 794 0 0 1680 1028 ";
+ };
+ PBXWorkspaceStateSaveDate = 106915007;
+ };
+ sourceControlManager = 1895FF4B065E294000F8B3F4;
+ userBuildSettings = {
+ };
+ };
+ 0654BA5CFE8ECEE0C697A12F = {
+ activeExec = 0;
+ executables = (
+ 1895FF2F065E291B00F8B3F4,
+ );
+ };
+ 1895FF2F065E291B00F8B3F4 = {
+ activeArgIndex = 2147483647;
+ activeArgIndices = (
+ );
+ argumentStrings = (
+ );
+ configStateDict = {
+ };
+ debuggerPlugin = GDBDebugging;
+ dylibVariantSuffix = "";
+ enableDebugStr = 1;
+ environmentEntries = (
+ );
+ isa = PBXExecutable;
+ name = "Quake3 (Application)";
+ shlibInfoDictList = (
+ );
+ sourceDirectories = (
+ );
+ };
+ 1895FF30065E291B00F8B3F4 = {
+ activeArgIndex = 2147483647;
+ activeArgIndices = (
+ );
+ argumentStrings = (
+ );
+ configStateDict = {
+ };
+ debuggerPlugin = GDBDebugging;
+ enableDebugStr = 1;
+ environmentEntries = (
+ );
+ isa = PBXExecutable;
+ name = "Dedicated Server G4";
+ shlibInfoDictList = (
+ );
+ sourceDirectories = (
+ );
+ };
+ 1895FF31065E291B00F8B3F4 = {
+ activeArgIndex = 2147483647;
+ activeArgIndices = (
+ );
+ argumentStrings = (
+ );
+ configStateDict = {
+ };
+ debuggerPlugin = GDBDebugging;
+ enableDebugStr = 1;
+ environmentEntries = (
+ );
+ isa = PBXExecutable;
+ name = "Quake3 G4 (Application)";
+ shlibInfoDictList = (
+ );
+ sourceDirectories = (
+ );
+ };
+ 1895FF35065E291B00F8B3F4 = {
+ activeArgIndex = 2147483647;
+ activeArgIndices = (
+ );
+ argumentStrings = (
+ );
+ configStateDict = {
+ };
+ debuggerPlugin = GDBDebugging;
+ enableDebugStr = 1;
+ environmentEntries = (
+ );
+ isa = PBXExecutable;
+ name = "Dedicated Server";
+ shlibInfoDictList = (
+ );
+ sourceDirectories = (
+ );
+ };
+ 1895FF4B065E294000F8B3F4 = {
+ isa = PBXSourceControlManager;
+ scmConfiguration = {
+ };
+ scmType = scm.cvs;
+ };
+ 1895FF4C065E294000F8B3F4 = {
+ indexTemplatePath = "";
+ isa = PBXCodeSenseManager;
+ usesDefaults = 1;
+ wantsCodeCompletion = 1;
+ wantsCodeCompletionAutoPopup = 0;
+ wantsCodeCompletionAutoSuggestions = 0;
+ wantsCodeCompletionCaseSensitivity = 1;
+ wantsCodeCompletionOnlyMatchingItems = 1;
+ wantsCodeCompletionParametersIncluded = 1;
+ wantsCodeCompletionPlaceholdersInserted = 1;
+ wantsCodeCompletionTabCompletes = 1;
+ wantsIndex = 1;
+ };
+ 4FF0904804896C0E00030DA8 = {
+ activeExec = 0;
+ executables = (
+ 1895FF31065E291B00F8B3F4,
+ );
+ };
+ 4FF0912704896C1600030DA8 = {
+ activeExec = 0;
+ executables = (
+ 1895FF30065E291B00F8B3F4,
+ );
+ };
+}
diff --git a/code/macosx/Quake3.pbproj/project.pbxproj b/code/macosx/Quake3.pbproj/project.pbxproj
new file mode 100755
index 0000000..9af4f36
--- /dev/null
+++ b/code/macosx/Quake3.pbproj/project.pbxproj
@@ -0,0 +1,11802 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 39;
+ objects = {
+ 00E9D914FEDB4D29C697A12F = {
+ isa = PBXFileReference;
+ lastKnownFileType = wrapper.framework;
+ name = CoreAudio.framework;
+ path = /System/Library/Frameworks/CoreAudio.framework;
+ refType = 0;
+ sourceTree = "<absolute>";
+ };
+ 00E9D91DFEDB5295C697A12F = {
+ fileRef = 00E9D914FEDB4D29C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 00F5ED38FEBA95B7C697A12F = {
+ buildPhases = (
+ 00F5ED39FEBA95B7C697A12F,
+ 00F5ED55FEBA95B7C697A12F,
+ 00F5ED56FEBA95B7C697A12F,
+ 00F5ED77FEBA95B7C697A12F,
+ 00F5ED78FEBA95B7C697A12F,
+ );
+ buildSettings = {
+ FRAMEWORK_SEARCH_PATHS = "";
+ HEADER_SEARCH_PATHS = "";
+ INSTALL_PATH = "/Users/Shared/$(USER)/InstalledProducts";
+ LIBRARY_SEARCH_PATHS = "";
+ OTHER_LDFLAGS = "-bundle -undefined error";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = qagame;
+ PROFILE_FLAGS = "";
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = "-Wall -Wno-four-char-constants -Wno-unknown-pragmas";
+ WRAPPER_EXTENSION = bundle;
+ };
+ dependencies = (
+ );
+ isa = PBXBundleTarget;
+ name = qagame;
+ productInstallPath = "/Users/Shared/$(USER)/InstalledProducts";
+ productName = game;
+ productReference = 07F3F507FFE98E8EC697A10E;
+ productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
+<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
+<plist version=\"1.0\">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>qagame</string>
+ <key>CFBundleGetInfoString</key>
+ <string>Quake 3 Arena (1.16)</string>
+ <key>CFBundleIconFile</key>
+ <string>Quake3.icns</string>
+ <key>CFBundleIdentifier</key>
+ <string></string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string></string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.16</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>0.0.1d1</string>
+</dict>
+</plist>
+";
+ };
+ 00F5ED39FEBA95B7C697A12F = {
+ buildActionMask = 2147483647;
+ files = (
+ 13380E0F00ADFAACC697A10E,
+ 13380E1300ADFAD5C697A10E,
+ 13380E1500ADFB0CC697A10E,
+ 13380E1700ADFBFDC697A10E,
+ 13380E1900ADFC10C697A10E,
+ 13380E1B00ADFC22C697A10E,
+ 13380E1D00ADFC32C697A10E,
+ 13380E1F00ADFC43C697A10E,
+ 13380E2500ADFCA7C697A10E,
+ );
+ isa = PBXHeadersBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 00F5ED55FEBA95B7C697A12F = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXResourcesBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 00F5ED56FEBA95B7C697A12F = {
+ buildActionMask = 2147483647;
+ files = (
+ 13380E0900ADF941C697A10E,
+ 13380E0B00ADFA16C697A10E,
+ 13380E0C00ADFA72C697A10E,
+ 13380E0D00ADFA94C697A10E,
+ 13380E0E00ADFA9EC697A10E,
+ 13380E1000ADFAACC697A10E,
+ 13380E1100ADFAACC697A10E,
+ 13380E1200ADFACAC697A10E,
+ 13380E1400ADFAD5C697A10E,
+ 13380E1600ADFB0CC697A10E,
+ 13380E1800ADFBFDC697A10E,
+ 13380E1A00ADFC10C697A10E,
+ 13380E1C00ADFC22C697A10E,
+ 13380E1E00ADFC32C697A10E,
+ 13380E2000ADFC43C697A10E,
+ 13380E2100ADFC59C697A10E,
+ 13380E2200ADFC78C697A10E,
+ 13380E2300ADFC85C697A10E,
+ 13380E2400ADFC9CC697A10E,
+ 13380E2600ADFCA7C697A10E,
+ 13380E2700ADFCBDC697A10E,
+ 13380E2800ADFCC8C697A10E,
+ 13380E2900ADFCD1C697A10E,
+ 13380E2A00ADFCEBC697A10E,
+ 13380E2B00ADFCF6C697A10E,
+ 13380E2C00ADFD01C697A10E,
+ 13380E2D00ADFD1FC697A10E,
+ 13380E2E00ADFD28C697A10E,
+ 13380E2F00ADFD38C697A10E,
+ 13380E3000ADFD46C697A10E,
+ 13380E3100ADFD58C697A10E,
+ 13380E3200ADFD71C697A10E,
+ 13380E3300ADFD85C697A10E,
+ );
+ isa = PBXSourcesBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 00F5ED77FEBA95B7C697A12F = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXFrameworksBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 00F5ED78FEBA95B7C697A12F = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXRezBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 00F5ED90FEBA9615C697A12F = {
+ buildPhases = (
+ 00F5ED91FEBA9615C697A12F,
+ 00F5ED92FEBA9615C697A12F,
+ 00F5ED93FEBA9615C697A12F,
+ 00F5ED94FEBA9615C697A12F,
+ 00F5ED95FEBA9615C697A12F,
+ );
+ buildSettings = {
+ FRAMEWORK_SEARCH_PATHS = "";
+ HEADER_SEARCH_PATHS = "";
+ INSTALL_PATH = "/Users/Shared/$(USER)/InstalledProducts";
+ LIBRARY_SEARCH_PATHS = "";
+ OTHER_LDFLAGS = "-bundle -undefined error";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = cgame;
+ PROFILE_FLAGS = "";
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = "-Wall -Wno-four-char-constants -Wno-unknown-pragmas";
+ WRAPPER_EXTENSION = bundle;
+ };
+ dependencies = (
+ );
+ isa = PBXBundleTarget;
+ name = cgame;
+ productInstallPath = "/Users/Shared/$(USER)/InstalledProducts";
+ productName = cgame;
+ productReference = 07F3F508FFE98E8EC697A10E;
+ productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
+<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
+<plist version=\"1.0\">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string></string>
+ <key>CFBundleGetInfoString</key>
+ <string></string>
+ <key>CFBundleIconFile</key>
+ <string></string>
+ <key>CFBundleIdentifier</key>
+ <string></string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string></string>
+ <key>CFBundlePackageType</key>
+ <string>BNDL</string>
+ <key>CFBundleShortVersionString</key>
+ <string></string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>0.0.1d1</string>
+</dict>
+</plist>
+";
+ };
+ 00F5ED91FEBA9615C697A12F = {
+ buildActionMask = 2147483647;
+ files = (
+ 13380E3600ADFDCFC697A10E,
+ 13380E5100AE0235C697A10E,
+ );
+ isa = PBXHeadersBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 00F5ED92FEBA9615C697A12F = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXResourcesBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 00F5ED93FEBA9615C697A12F = {
+ buildActionMask = 2147483647;
+ files = (
+ 13380E3400ADFDA1C697A10E,
+ 13380E3500ADFDA1C697A10E,
+ 13380E3700ADFDCFC697A10E,
+ 13380E3800ADFDCFC697A10E,
+ 13380E3900ADFDE1C697A10E,
+ 13380E3B00ADFE0CC697A10E,
+ 13380E3C00ADFE1EC697A10E,
+ 13380E3D00ADFE24C697A10E,
+ 13380E3E00ADFE3DC697A10E,
+ 13380E3F00ADFE4AC697A10E,
+ 13380E4000ADFE58C697A10E,
+ 13380E4100ADFE6BC697A10E,
+ 13380E4200ADFE7AC697A10E,
+ 13380E4300ADFE88C697A10E,
+ 13380E4400ADFE97C697A10E,
+ 13380E4500ADFEA7C697A10E,
+ 13380E4600ADFEB8C697A10E,
+ 13380E4700ADFEC9C697A10E,
+ 13380E4800ADFED7C697A10E,
+ 13380E4900ADFEE7C697A10E,
+ 13380E4A00ADFEF5C697A10E,
+ 13380E4B00ADFF05C697A10E,
+ 13380E4C00ADFF27C697A10E,
+ 13380E4F00AE0112C697A10E,
+ 13380E5000AE020FC697A10E,
+ 13380E5200AE0235C697A10E,
+ );
+ isa = PBXSourcesBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 00F5ED94FEBA9615C697A12F = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXFrameworksBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 00F5ED95FEBA9615C697A12F = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXRezBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+//000
+//001
+//002
+//003
+//004
+//010
+//011
+//012
+//013
+//014
+ 011F78F200B25B65C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = macosx_qgl.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 011F78F300B25B66C697A10E = {
+ fileRef = 011F78F200B25B65C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 012AD90700868211C697A10E = {
+ children = (
+ 012AD90800868211C697A10E,
+ 012AD90900868211C697A10E,
+ 012AD90A00868211C697A10E,
+ 012AD90B00868211C697A10E,
+ 012AD90C00868211C697A10E,
+ 012AD90D00868211C697A10E,
+ 012AD90E00868211C697A10E,
+ 012AD90F00868211C697A10E,
+ 012AD91000868211C697A10E,
+ 012AD91100868211C697A10E,
+ 012AD91200868211C697A10E,
+ 012AD91300868211C697A10E,
+ 012AD91400868211C697A10E,
+ 012AD91500868211C697A10E,
+ 012AD91600868211C697A10E,
+ 012AD91700868211C697A10E,
+ 012AD91800868211C697A10E,
+ 012AD91900868211C697A10E,
+ 012AD91A00868211C697A10E,
+ 012AD91B00868211C697A10E,
+ 012AD91C00868211C697A10E,
+ 012AD91D00868211C697A10E,
+ 012AD91E00868211C697A10E,
+ 012AD91F00868211C697A10E,
+ 012AD92000868211C697A10E,
+ 012AD92100868211C697A10E,
+ 012AD92200868211C697A10E,
+ 012AD92300868211C697A10E,
+ 012AD92400868211C697A10E,
+ 012AD92500868211C697A10E,
+ 012AD92600868211C697A10E,
+ 012AD92700868211C697A10E,
+ 012AD92800868211C697A10E,
+ 012AD92900868211C697A10E,
+ 012AD92A00868211C697A10E,
+ 012AD92B00868211C697A10E,
+ 012AD92C00868211C697A10E,
+ 012AD92D00868211C697A10E,
+ 012AD92E00868211C697A10E,
+ 012AD92F00868211C697A10E,
+ 012AD93000868211C697A10E,
+ 012AD93100868211C697A10E,
+ 012AD93200868211C697A10E,
+ 012AD93300868211C697A10E,
+ 012AD93400868211C697A10E,
+ 012AD93500868211C697A10E,
+ 012AD93600868211C697A10E,
+ 012AD93700868211C697A10E,
+ 012AD93800868211C697A10E,
+ 012AD93900868211C697A10E,
+ 012AD93A00868211C697A10E,
+ 012AD93B00868211C697A10E,
+ 012AD93C00868211C697A10E,
+ );
+ isa = PBXGroup;
+ path = botlib;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD90800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = aasfile.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD90900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_aas_bsp.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD90A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_aas_bspq3.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD90B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_aas_cluster.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD90C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_aas_cluster.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD90D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_aas_debug.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD90E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_aas_debug.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD90F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_aas_def.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD91000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_aas_entity.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD91100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_aas_entity.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD91200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_aas_file.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD91300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_aas_file.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD91400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_aas_funcs.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD91500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_aas_main.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD91600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_aas_main.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD91700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_aas_move.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD91800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_aas_move.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD91900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_aas_optimize.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD91A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_aas_optimize.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD91B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_aas_reach.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD91C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_aas_reach.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD91D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_aas_route.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD91E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_aas_route.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD91F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_aas_routealt.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD92000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_aas_routealt.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD92100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_aas_sample.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD92200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_aas_sample.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD92300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_ai_char.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD92400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_ai_chat.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD92500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_ai_gen.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD92600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_ai_goal.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD92700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_ai_move.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD92800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_ai_weap.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD92900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_ai_weight.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD92A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_ai_weight.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD92B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_ea.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD92C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_interface.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD92D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_interface.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD92E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_crc.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD92F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_crc.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD93000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_libvar.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD93100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_libvar.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD93200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_log.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD93300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_log.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD93400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_memory.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD93500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_memory.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD93600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_precomp.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD93700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_precomp.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD93800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_script.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD93900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_script.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD93A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_struct.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD93B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_struct.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD93C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_utils.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD93D00868211C697A10E = {
+ children = (
+ 012AD93E00868211C697A10E,
+ 012AD93F00868211C697A10E,
+ 012AD94000868211C697A10E,
+ 012AD94100868211C697A10E,
+ 012AD94200868211C697A10E,
+ 012AD94300868211C697A10E,
+ 012AD94400868211C697A10E,
+ 012AD94500868211C697A10E,
+ 012AD94600868211C697A10E,
+ 012AD94700868211C697A10E,
+ 012AD94800868211C697A10E,
+ 012AD94900868211C697A10E,
+ 012AD94A00868211C697A10E,
+ 012AD94B00868211C697A10E,
+ 012AD94C00868211C697A10E,
+ 012AD94D00868211C697A10E,
+ 012AD94E00868211C697A10E,
+ 012AD94F00868211C697A10E,
+ 012AD95000868211C697A10E,
+ 012AD95100868211C697A10E,
+ 012AD95200868211C697A10E,
+ 012AD95300868211C697A10E,
+ 012AD95400868211C697A10E,
+ 012AD95500868211C697A10E,
+ 012AD95600868211C697A10E,
+ 012AD95700868211C697A10E,
+ 012AD95800868211C697A10E,
+ 012AD95900868211C697A10E,
+ 012AD95A00868211C697A10E,
+ 012AD95B00868211C697A10E,
+ 012AD95C00868211C697A10E,
+ 012AD95D00868211C697A10E,
+ 012AD95E00868211C697A10E,
+ 012AD95F00868211C697A10E,
+ 012AD96000868211C697A10E,
+ 012AD96100868211C697A10E,
+ 012AD96200868211C697A10E,
+ 012AD96300868211C697A10E,
+ 012AD96400868211C697A10E,
+ 012AD96500868211C697A10E,
+ 012AD96600868211C697A10E,
+ 012AD96700868211C697A10E,
+ 012AD96800868211C697A10E,
+ 012AD96900868211C697A10E,
+ 012AD96A00868211C697A10E,
+ 012AD96B00868211C697A10E,
+ 012AD96C00868211C697A10E,
+ 012AD96D00868211C697A10E,
+ 012AD96E00868211C697A10E,
+ 012AD96F00868211C697A10E,
+ 012AD97000868211C697A10E,
+ 012AD97100868211C697A10E,
+ 012AD97200868211C697A10E,
+ 012AD97300868211C697A10E,
+ 012AD97400868211C697A10E,
+ 012AD97500868211C697A10E,
+ 012AD97600868211C697A10E,
+ 012AD97700868211C697A10E,
+ 012AD97800868211C697A10E,
+ 012AD97900868211C697A10E,
+ 012AD97A00868211C697A10E,
+ 012AD97B00868211C697A10E,
+ 012AD97C00868211C697A10E,
+ 012AD97D00868211C697A10E,
+ 012AD97E00868211C697A10E,
+ 012AD97F00868211C697A10E,
+ 012AD98000868211C697A10E,
+ 012AD98100868211C697A10E,
+ 012AD98200868211C697A10E,
+ 012AD98300868211C697A10E,
+ 012AD98400868211C697A10E,
+ 012AD98500868211C697A10E,
+ 012AD98600868211C697A10E,
+ 012AD98700868211C697A10E,
+ 012AD98800868211C697A10E,
+ 012AD98900868211C697A10E,
+ 012AD98A00868211C697A10E,
+ 012AD98B00868211C697A10E,
+ 012AD98C00868211C697A10E,
+ );
+ isa = PBXGroup;
+ path = bspc;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD93E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = _files.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD93F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = aas_areamerging.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD94000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = aas_areamerging.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD94100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = aas_cfg.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD94200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = aas_cfg.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD94300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = aas_create.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD94400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = aas_create.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD94500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = aas_edgemelting.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD94600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = aas_edgemelting.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD94700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = aas_facemerging.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD94800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = aas_facemerging.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD94900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = aas_file.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD94A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = aas_file.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD94B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = aas_gsubdiv.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD94C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = aas_gsubdiv.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD94D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = aas_map.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD94E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = aas_map.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD94F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = aas_prunenodes.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD95000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = aas_prunenodes.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD95100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = aas_store.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD95200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = aas_store.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD95300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = aasfile.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD95400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = be_aas_bspc.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD95500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_aas_bspc.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD95600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = brushbsp.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD95700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = bspc.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD95800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cfgq3.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD95900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = csg.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD95A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = faces.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD95B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = gldraw.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD95C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = glfile.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD95D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_bsp_ent.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD95E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_bsp_ent.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD95F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_bsp_hl.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD96000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_bsp_hl.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD96100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_bsp_q1.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD96200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_bsp_q1.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD96300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_bsp_q2.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD96400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_bsp_q2.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD96500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_bsp_q3.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD96600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_bsp_q3.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD96700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_bsp_sin.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD96800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_bsp_sin.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD96900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_cmd.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD96A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_cmd.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD96B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_log.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD96C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_log.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD96D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_math.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD96E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_math.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD96F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_mem.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD97000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_mem.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD97100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_poly.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD97200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_poly.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD97300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_qfiles.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD97400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_qfiles.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD97500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_threads.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD97600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_threads.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD97700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = l_utils.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD97800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = l_utils.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD97900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = leakfile.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD97A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = map.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD97B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = map_hl.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD97C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = map_q1.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD97D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = map_q2.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD97E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = map_q3.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD97F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = map_sin.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD98000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = nodraw.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD98100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = portals.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD98200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = prtfile.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD98300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = q2files.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD98400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = q3files.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD98500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = qbsp.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD98600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = qfiles.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD98700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = sinfiles.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD98800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tetrahedron.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD98900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = tetrahedron.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD98A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = textures.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD98B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tree.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD98C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = writebsp.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD98D00868211C697A10E = {
+ children = (
+ 012AD98E00868211C697A10E,
+ 012AD98F00868211C697A10E,
+ 012AD99000868211C697A10E,
+ 012AD99100868211C697A10E,
+ 012AD99200868211C697A10E,
+ 012AD99300868211C697A10E,
+ 012AD99400868211C697A10E,
+ 012AD99500868211C697A10E,
+ 012AD99600868211C697A10E,
+ 012AD99700868211C697A10E,
+ 012AD99800868211C697A10E,
+ 012AD99900868211C697A10E,
+ 012AD99A00868211C697A10E,
+ 012AD99B00868211C697A10E,
+ 012AD99C00868211C697A10E,
+ 012AD99D00868211C697A10E,
+ 012AD99E00868211C697A10E,
+ 012AD99F00868211C697A10E,
+ 012AD9A000868211C697A10E,
+ 012AD9A100868211C697A10E,
+ 012AD9A200868211C697A10E,
+ 012AD9A300868211C697A10E,
+ 012AD9A400868211C697A10E,
+ );
+ isa = PBXGroup;
+ path = cgame;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD98E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_consolecmds.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD98F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_draw.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD99000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_drawtools.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD99100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_effects.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD99200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_ents.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD99300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_event.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD99400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_info.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD99500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = cg_local.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD99600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_localents.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD99700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_main.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD99800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_marks.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD99900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_newdraw.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD99A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_players.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD99B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_playerstate.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD99C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_predict.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD99D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = cg_public.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD99E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_scoreboard.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD99F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_servercmds.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9A000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_snapshot.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9A100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_syscalls.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9A200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_view.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9A300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cg_weapons.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9A400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = tr_types.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9A500868211C697A10E = {
+ children = (
+ 012AD9A600868211C697A10E,
+ 012AD9A700868211C697A10E,
+ 012AD9A800868211C697A10E,
+ 012AD9A900868211C697A10E,
+ 012AD9AA00868211C697A10E,
+ 012AD9AB00868211C697A10E,
+ 012AD9AC00868211C697A10E,
+ 012AD9AD00868211C697A10E,
+ 012AD9AE00868211C697A10E,
+ 012AD9AF00868211C697A10E,
+ 012AD9B000868211C697A10E,
+ 012AD9B100868211C697A10E,
+ 012AD9B200868211C697A10E,
+ 012AD9B300868211C697A10E,
+ 012AD9B400868211C697A10E,
+ 012AD9B500868211C697A10E,
+ 012AD9B600868211C697A10E,
+ 012AD9B700868211C697A10E,
+ 012AD9B800868211C697A10E,
+ );
+ isa = PBXGroup;
+ path = client;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9A600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cl_cgame.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9A700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cl_cin.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9A800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cl_console.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9A900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cl_input.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9AA00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cl_keys.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9AB00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cl_main.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9AC00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cl_net_chan.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9AD00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cl_parse.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9AE00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cl_scrn.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9AF00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cl_ui.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9B000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = client.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9B100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = keys.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9B200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = snd_adpcm.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9B300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = snd_dma.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9B400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = snd_local.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9B500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = snd_mem.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9B600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = snd_mix.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9B700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = snd_public.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012AD9B800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = snd_wavelet.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA2400868211C697A10E = {
+ children = (
+ 012ADA2500868211C697A10E,
+ 012ADA2600868211C697A10E,
+ 012ADA2700868211C697A10E,
+ 012ADA2800868211C697A10E,
+ 012ADA2900868211C697A10E,
+ 012ADA2A00868211C697A10E,
+ 012ADA2B00868211C697A10E,
+ 012ADA2C00868211C697A10E,
+ 012ADA2D00868211C697A10E,
+ 012ADA2E00868211C697A10E,
+ 012ADA2F00868211C697A10E,
+ 012ADA3000868211C697A10E,
+ 012ADA3100868211C697A10E,
+ 012ADA3200868211C697A10E,
+ 012ADA3300868211C697A10E,
+ 012ADA3400868211C697A10E,
+ 012ADA3500868211C697A10E,
+ 012ADA3600868211C697A10E,
+ 012ADA3700868211C697A10E,
+ 012ADA3800868211C697A10E,
+ 012ADA3900868211C697A10E,
+ 012ADA3A00868211C697A10E,
+ 012ADA3B00868211C697A10E,
+ 012ADA3C00868211C697A10E,
+ 012ADA3D00868211C697A10E,
+ 012ADA3E00868211C697A10E,
+ 012ADA3F00868211C697A10E,
+ 012ADA4000868211C697A10E,
+ 012ADA4100868211C697A10E,
+ 012ADA4200868211C697A10E,
+ 012ADA4300868211C697A10E,
+ 012ADA4400868211C697A10E,
+ 012ADA4500868211C697A10E,
+ 012ADA4600868211C697A10E,
+ 012ADA4700868211C697A10E,
+ 012ADA4800868211C697A10E,
+ 012ADA4900868211C697A10E,
+ 012ADA4A00868211C697A10E,
+ 012ADA4B00868211C697A10E,
+ 012ADA4C00868211C697A10E,
+ 012ADA4D00868211C697A10E,
+ 012ADA4E00868211C697A10E,
+ 012ADA4F00868211C697A10E,
+ 012ADA5000868211C697A10E,
+ 012ADA5100868211C697A10E,
+ 012ADA5200868211C697A10E,
+ 012ADA5300868211C697A10E,
+ 012ADA5400868211C697A10E,
+ 012ADA5500868211C697A10E,
+ 012ADA5600868211C697A10E,
+ 012ADA5700868211C697A10E,
+ 012ADA5800868211C697A10E,
+ 012ADA5900868211C697A10E,
+ 012ADA5A00868211C697A10E,
+ 012ADA5B00868211C697A10E,
+ 012ADA5C00868211C697A10E,
+ 012ADA5D00868211C697A10E,
+ 012ADA5E00868211C697A10E,
+ 012ADA5F00868211C697A10E,
+ 012ADA6000868211C697A10E,
+ 012ADA6100868211C697A10E,
+ 012ADA6200868211C697A10E,
+ 012ADA6300868211C697A10E,
+ 012ADA6400868211C697A10E,
+ );
+ isa = PBXGroup;
+ path = game;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA2500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ai_chat.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA2600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = ai_chat.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA2700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ai_cmd.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA2800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = ai_cmd.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA2900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ai_dmnet.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA2A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = ai_dmnet.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA2B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ai_dmq3.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA2C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = ai_dmq3.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA2D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ai_main.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA2E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = ai_main.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA2F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ai_team.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA3000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = ai_team.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA3100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ai_vcmd.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA3200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = ai_vcmd.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA3300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_aas.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA3400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_ai_char.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA3500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_ai_chat.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA3600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_ai_gen.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA3700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_ai_goal.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA3800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_ai_move.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA3900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_ai_weap.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA3A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = be_ea.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA3B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = bg_lib.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA3C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = bg_lib.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA3D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = bg_local.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA3E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = bg_misc.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA3F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = bg_pmove.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA4000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = bg_public.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA4100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = bg_slidemove.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA4200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = botlib.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA4300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = chars.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA4400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_active.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA4500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_arenas.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA4600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_bot.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA4700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_client.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA4800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_cmds.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA4900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_combat.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA4A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_items.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA4B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = g_local.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA4C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_main.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA4D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_mem.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA4E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_misc.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA4F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_missile.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA5000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_mover.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA5100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = g_public.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA5200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_rankings.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA5300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = g_rankings.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA5400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_session.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA5500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_spawn.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA5600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_svcmds.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA5700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_syscalls.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA5800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_target.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA5900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_team.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA5A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = g_team.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA5B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_trigger.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA5C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_utils.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA5D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = g_weapon.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA5E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = inv.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA5F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = match.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA6000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = q_math.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA6100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = q_shared.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA6200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = q_shared.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA6300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = surfaceflags.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA6400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = syn.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA6500868211C697A10E = {
+ children = (
+ 012ADA6600868211C697A10E,
+ 012ADA6700868211C697A10E,
+ 012ADA6800868211C697A10E,
+ 012ADA6900868211C697A10E,
+ 012ADA6A00868211C697A10E,
+ 012ADA6B00868211C697A10E,
+ 012ADA6C00868211C697A10E,
+ 012ADA6D00868211C697A10E,
+ 012ADA6E00868211C697A10E,
+ 012ADA6F00868211C697A10E,
+ 012ADA7000868211C697A10E,
+ 012ADA7100868211C697A10E,
+ 012ADA7200868211C697A10E,
+ 012ADA7300868211C697A10E,
+ 012ADA7400868211C697A10E,
+ 012ADA7500868211C697A10E,
+ 012ADA7600868211C697A10E,
+ 012ADA7700868211C697A10E,
+ 012ADA7800868211C697A10E,
+ 012ADA7900868211C697A10E,
+ 012ADA7A00868211C697A10E,
+ 012ADA7B00868211C697A10E,
+ 012ADA7C00868211C697A10E,
+ 012ADA7D00868211C697A10E,
+ 012ADA7E00868211C697A10E,
+ 012ADA7F00868211C697A10E,
+ 012ADA8000868211C697A10E,
+ 012ADA8100868211C697A10E,
+ 012ADA8200868211C697A10E,
+ 012ADA8300868211C697A10E,
+ 012ADA8400868211C697A10E,
+ 012ADA8500868211C697A10E,
+ 012ADA8600868211C697A10E,
+ 012ADA8700868211C697A10E,
+ 012ADA8800868211C697A10E,
+ 012ADA8900868211C697A10E,
+ 012ADA8A00868211C697A10E,
+ 012ADA8B00868211C697A10E,
+ 012ADA8C00868211C697A10E,
+ 012ADA8D00868211C697A10E,
+ 012ADA8E00868211C697A10E,
+ 012ADA8F00868211C697A10E,
+ 012ADA9000868211C697A10E,
+ 012ADA9100868211C697A10E,
+ 012ADA9200868211C697A10E,
+ 012ADA9300868211C697A10E,
+ 012ADA9400868211C697A10E,
+ 012ADA9500868211C697A10E,
+ 012ADA9600868211C697A10E,
+ 012ADA9700868211C697A10E,
+ 012ADA9800868211C697A10E,
+ 012ADA9900868211C697A10E,
+ 012ADA9A00868211C697A10E,
+ 012ADA9B00868211C697A10E,
+ 012ADA9C00868211C697A10E,
+ 012ADA9D00868211C697A10E,
+ 012ADA9E00868211C697A10E,
+ 012ADA9F00868211C697A10E,
+ 012ADAA000868211C697A10E,
+ 012ADAA100868211C697A10E,
+ 012ADAA200868211C697A10E,
+ 012ADAA300868211C697A10E,
+ );
+ isa = PBXGroup;
+ path = "jpeg-6";
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA6600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jcapimin.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA6700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jcapistd.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA6800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jccoefct.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA6900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jccolor.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA6A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jcdctmgr.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA6B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jchuff.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA6C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = jchuff.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA6D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jcinit.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA6E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jcmainct.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA6F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jcmarker.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA7000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jcmaster.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA7100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jcomapi.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA7200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = jconfig.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA7300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jcparam.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA7400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jcphuff.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA7500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jcprepct.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA7600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jcsample.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA7700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jctrans.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA7800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jdapimin.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA7900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jdapistd.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA7A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jdatadst.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA7B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jdatasrc.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA7C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jdcoefct.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA7D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jdcolor.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA7E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = jdct.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA7F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jddctmgr.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA8000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jdhuff.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA8100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = jdhuff.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA8200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jdinput.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA8300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jdmainct.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA8400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jdmarker.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA8500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jdmaster.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA8600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jdmerge.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA8700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jdphuff.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA8800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jdpostct.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA8900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jdsample.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA8A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jdtrans.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA8B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jerror.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA8C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = jerror.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA8D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jfdctflt.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA8E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jfdctfst.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA8F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jfdctint.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA9000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jidctflt.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA9100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jidctfst.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA9200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jidctint.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA9300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jidctred.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA9400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = jinclude.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA9500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jload.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA9600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jmemansi.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA9700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jmemdos.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA9800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jmemmgr.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA9900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jmemname.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA9A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jmemnobs.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA9B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = jmemsys.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA9C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = jmorecfg.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA9D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = jpegint.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA9E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = jpeglib.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADA9F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jpegtran.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAA000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jquant1.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAA100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jquant2.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAA200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = jutils.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAA300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = jversion.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAA400868211C697A10E = {
+ children = (
+ 012ADAA500868211C697A10E,
+ 012ADAA600868211C697A10E,
+ 012ADAA700868211C697A10E,
+ 012ADAA800868211C697A10E,
+ 012ADAA900868211C697A10E,
+ 012ADAAA00868211C697A10E,
+ 012ADAAB00868211C697A10E,
+ 012ADAAC00868211C697A10E,
+ 012ADAAD00868211C697A10E,
+ 012ADAAE00868211C697A10E,
+ 012ADAAF00868211C697A10E,
+ 012ADAB000868211C697A10E,
+ 012ADAB100868211C697A10E,
+ 012ADAB200868211C697A10E,
+ );
+ isa = PBXGroup;
+ path = mac;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAA500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = mac_console.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAA600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = mac_event.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAA700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = mac_glimp2.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAA800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = mac_input.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAA900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = mac_local.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAAA00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = mac_main.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAAB00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = mac_net.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAAC00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = mac_snddma.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAAD00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = MacGamma.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAAE00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = MacGamma.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAAF00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = macprefix.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAB000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.rez;
+ path = q3.r;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAB100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = SetupGL.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAB200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = SetupGL.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAB300868211C697A10E = {
+ children = (
+ 012ADAB400868211C697A10E,
+ 012ADAB500868211C697A10E,
+ 012ADAB600868211C697A10E,
+ 012ADAB700868211C697A10E,
+ 012ADAB800868211C697A10E,
+ 012ADAB900868211C697A10E,
+ 012ADABA00868211C697A10E,
+ );
+ isa = PBXGroup;
+ path = null;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAB400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = mac_net.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAB500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = null_client.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAB600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = null_glimp.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAB700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = null_input.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAB800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = null_main.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAB900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = null_net.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADABA00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = null_snddma.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADABB00868211C697A10E = {
+ children = (
+ 012ADABC00868211C697A10E,
+ 012ADABD00868211C697A10E,
+ 012ADABE00868211C697A10E,
+ 012ADABF00868211C697A10E,
+ 012ADAC000868211C697A10E,
+ 012ADAC100868211C697A10E,
+ 012ADAC200868211C697A10E,
+ 012ADAC300868211C697A10E,
+ 012ADAC400868211C697A10E,
+ 012ADAC500868211C697A10E,
+ 012ADAC600868211C697A10E,
+ 012ADAC700868211C697A10E,
+ 012ADAC800868211C697A10E,
+ 012ADAC900868211C697A10E,
+ 012ADACA00868211C697A10E,
+ 012ADACB00868211C697A10E,
+ 012ADACC00868211C697A10E,
+ 012ADACD00868211C697A10E,
+ 012ADACE00868211C697A10E,
+ 012ADACF00868211C697A10E,
+ 012ADAD000868211C697A10E,
+ 012ADAD100868211C697A10E,
+ 012ADAD200868211C697A10E,
+ 012ADAD300868211C697A10E,
+ 012ADAD400868211C697A10E,
+ 012ADAD500868211C697A10E,
+ 012ADAD600868211C697A10E,
+ 012ADAD700868211C697A10E,
+ 012ADAD800868211C697A10E,
+ 012ADAD900868211C697A10E,
+ 012ADADA00868211C697A10E,
+ 012ADADB00868211C697A10E,
+ 012ADADC00868211C697A10E,
+ 012ADADD00868211C697A10E,
+ 012ADADE00868211C697A10E,
+ 012ADADF00868211C697A10E,
+ 012ADAE000868211C697A10E,
+ 012ADAE100868211C697A10E,
+ 012ADAE200868211C697A10E,
+ 012ADAE300868211C697A10E,
+ 012ADAE400868211C697A10E,
+ 012ADAE500868211C697A10E,
+ 012ADAE600868211C697A10E,
+ 012ADAE700868211C697A10E,
+ 012ADAE800868211C697A10E,
+ 012ADAE900868211C697A10E,
+ 012ADAEA00868211C697A10E,
+ 012ADAEB00868211C697A10E,
+ );
+ isa = PBXGroup;
+ path = q3_ui;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADABC00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = keycodes.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADABD00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_addbots.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADABE00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_atoms.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADABF00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_cdkey.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAC000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_cinematics.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAC100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_confirm.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAC200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_connect.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAC300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_controls2.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAC400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_credits.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAC500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_demo2.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAC600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_display.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAC700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_gameinfo.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAC800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_ingame.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAC900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_loadconfig.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADACA00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = ui_local.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADACB00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_login.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADACC00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_main.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADACD00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_menu.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADACE00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_mfield.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADACF00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_mods.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAD000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_network.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAD100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_options.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAD200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_playermodel.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAD300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_players.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAD400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_playersettings.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAD500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_preferences.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAD600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_qmenu.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAD700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_rankings.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAD800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_rankstatus.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAD900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_removebots.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADADA00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_saveconfig.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADADB00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_serverinfo.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADADC00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_servers2.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADADD00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_setup.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADADE00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_signup.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADADF00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_sound.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAE000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_sparena.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAE100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_specifyleague.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAE200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_specifyserver.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAE300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_splevel.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAE400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_sppostgame.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAE500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_spreset.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAE600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_spskill.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAE700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_startserver.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAE800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = file;
+ path = ui_syscalls.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAE900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_team.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAEA00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_teamorders.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAEB00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_video.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAEC00868211C697A10E = {
+ children = (
+ 012ADAED00868211C697A10E,
+ 012ADAEE00868211C697A10E,
+ 012ADAEF00868211C697A10E,
+ 012ADAF000868211C697A10E,
+ 012ADAF100868211C697A10E,
+ 012ADAF200868211C697A10E,
+ 012ADAF300868211C697A10E,
+ 012ADAF400868211C697A10E,
+ 012ADAF500868211C697A10E,
+ 012ADAF600868211C697A10E,
+ 012ADAF700868211C697A10E,
+ 012ADAF800868211C697A10E,
+ 012ADAF900868211C697A10E,
+ 016F1B6300ACDA9BC697A10E,
+ 012ADAFA00868211C697A10E,
+ 012ADAFB00868211C697A10E,
+ 012ADAFC00868211C697A10E,
+ 012ADAFD00868211C697A10E,
+ 012ADAFE00868211C697A10E,
+ 012ADAFF00868211C697A10E,
+ 012ADB0000868211C697A10E,
+ 012ADB0100868211C697A10E,
+ 012ADB0200868211C697A10E,
+ 012ADB0300868211C697A10E,
+ 012ADB0400868211C697A10E,
+ 012ADB0500868211C697A10E,
+ 4FB23863047AB9F60098ACF3,
+ );
+ isa = PBXGroup;
+ path = qcommon;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAED00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cm_load.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAEE00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = cm_local.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAEF00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cm_patch.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAF000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = cm_patch.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAF100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cm_polylib.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAF200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = cm_polylib.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAF300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = cm_public.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAF400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cm_test.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAF500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cm_trace.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAF600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cmd.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAF700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = common.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAF800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = cvar.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAF900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = files.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAFA00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = md4.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAFB00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = msg.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAFC00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = net_chan.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAFD00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = qcommon.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAFE00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = qfiles.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADAFF00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = unzip.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB0000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = unzip.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB0100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = vm.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB0200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = vm_interpreted.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB0300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = vm_local.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB0400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = vm_ppc.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB0500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = vm_x86.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB0600868211C697A10E = {
+ children = (
+ 012ADB0700868211C697A10E,
+ 012ADB0800868211C697A10E,
+ 012ADB0900868211C697A10E,
+ 012ADB0A00868211C697A10E,
+ 012ADB0B00868211C697A10E,
+ 012ADB0C00868211C697A10E,
+ 012ADB0D00868211C697A10E,
+ 012ADB0E00868211C697A10E,
+ 012ADB0F00868211C697A10E,
+ 012ADB1000868211C697A10E,
+ 012ADB1100868211C697A10E,
+ 012ADB1200868211C697A10E,
+ 012ADB1300868211C697A10E,
+ 012ADB1400868211C697A10E,
+ 012ADB1500868211C697A10E,
+ 012ADB1600868211C697A10E,
+ 012ADB1700868211C697A10E,
+ 012ADB1800868211C697A10E,
+ 012ADB1900868211C697A10E,
+ 012ADB1A00868211C697A10E,
+ 012ADB1B00868211C697A10E,
+ 012ADB1C00868211C697A10E,
+ 012ADB1D00868211C697A10E,
+ 012ADB1E00868211C697A10E,
+ 012ADB1F00868211C697A10E,
+ 012ADB2000868211C697A10E,
+ 012ADB2100868211C697A10E,
+ 012ADB2200868211C697A10E,
+ );
+ isa = PBXGroup;
+ path = renderer;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB0700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = amd3d.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB0800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = qgl.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB0900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = qgl_linked.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB0A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_animation.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB0B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_backend.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB0C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ lineEnding = 0;
+ path = tr_bsp.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB0D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_cmds.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB0E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_curve.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB0F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_flares.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB1000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_font.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB1100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_image.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB1200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_init.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB1300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_light.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB1400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = tr_local.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB1500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_main.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB1600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_marks.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB1700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_mesh.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB1800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_model.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB1900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_noise.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB1A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = tr_public.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB1B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_scene.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB1C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_shade.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB1D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_shade_calc.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB1E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_shader.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB1F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_shadows.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB2000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_sky.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB2100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_surface.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB2200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = tr_world.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB2300868211C697A10E = {
+ children = (
+ 012ADB2400868211C697A10E,
+ 012ADB2500868211C697A10E,
+ 012ADB2600868211C697A10E,
+ 012ADB2700868211C697A10E,
+ 012ADB2800868211C697A10E,
+ 012ADB2900868211C697A10E,
+ 012ADB2A00868211C697A10E,
+ 012ADB2B00868211C697A10E,
+ 012ADB2C00868211C697A10E,
+ 012ADB2D00868211C697A10E,
+ 012ADB2E00868211C697A10E,
+ );
+ isa = PBXGroup;
+ path = server;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB2400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = server.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB2500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = sv_bot.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB2600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = sv_ccmds.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB2700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = sv_client.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB2800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = sv_game.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB2900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = sv_init.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB2A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = sv_main.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB2B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = sv_net_chan.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB2C00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = sv_rankings.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB2D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = sv_snapshot.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB2E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = sv_world.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB2F00868211C697A10E = {
+ children = (
+ 012ADB3000868211C697A10E,
+ 012ADB3100868211C697A10E,
+ 012ADB3200868211C697A10E,
+ 012ADB3300868211C697A10E,
+ 012ADB3400868211C697A10E,
+ 012ADB3500868211C697A10E,
+ 012ADB3600868211C697A10E,
+ 012ADB3700868211C697A10E,
+ 012ADB3800868211C697A10E,
+ 012ADB3900868211C697A10E,
+ 012ADB3A00868211C697A10E,
+ 012ADB3B00868211C697A10E,
+ 012ADB3D00868211C697A10E,
+ 012ADB3E00868211C697A10E,
+ 012ADB3F00868211C697A10E,
+ F5ED1435037096A001F6289A,
+ );
+ isa = PBXGroup;
+ path = splines;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB3000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.cpp.cpp;
+ path = math_angles.cpp;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB3100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = math_angles.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB3200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.cpp.cpp;
+ path = math_matrix.cpp;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB3300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = math_matrix.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB3400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.cpp.cpp;
+ path = math_quaternion.cpp;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB3500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = math_quaternion.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB3600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.cpp.cpp;
+ path = math_vector.cpp;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB3700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = math_vector.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB3800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.cpp.cpp;
+ path = q_parse.cpp;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB3900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.cpp.cpp;
+ path = q_shared.cpp;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB3A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.cpp.h;
+ path = q_shared.hpp;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB3B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.cpp.cpp;
+ path = splines.cpp;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB3D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = util_list.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB3E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.cpp.cpp;
+ path = util_str.cpp;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB3F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = util_str.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB4000868211C697A10E = {
+ children = (
+ 012ADB4100868211C697A10E,
+ 012ADB4200868211C697A10E,
+ 012ADB4300868211C697A10E,
+ 012ADB4400868211C697A10E,
+ 012ADB4500868211C697A10E,
+ 012ADB4600868211C697A10E,
+ 012ADB4700868211C697A10E,
+ 012ADB4800868211C697A10E,
+ 012ADB4900868211C697A10E,
+ 012ADB4A00868211C697A10E,
+ 012ADB4B00868211C697A10E,
+ );
+ isa = PBXGroup;
+ path = ui;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB4100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = keycodes.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB4200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_atoms.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB4300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_gameinfo.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB4400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = ui_local.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB4500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_main.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB4600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_players.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB4700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = ui_public.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB4800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_shared.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB4900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = ui_shared.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB4A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_syscalls.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB4B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = ui_util.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB4C00868211C697A10E = {
+ children = (
+ 012ADB4D00868211C697A10E,
+ 012ADB4E00868211C697A10E,
+ 012ADB4F00868211C697A10E,
+ 012ADB5000868211C697A10E,
+ 012ADB5100868211C697A10E,
+ 012ADB5200868211C697A10E,
+ 012ADB5300868211C697A10E,
+ 012ADB5400868211C697A10E,
+ 012ADB5500868211C697A10E,
+ 012ADB5600868211C697A10E,
+ 012ADB5700868211C697A10E,
+ 012ADB5800868211C697A10E,
+ 012ADB5900868211C697A10E,
+ );
+ isa = PBXGroup;
+ path = unix;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB4D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = linux_common.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB4E00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = linux_glimp.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB4F00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = linux_joystick.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB5000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = linux_local.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB5100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = linux_qgl.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB5200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = linux_snd.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB5300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = qasm.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB5400868211C697A10E = {
+ isa = PBXFileReference;
+ lastKnownFileType = image.gif;
+ path = quake3.gif;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB5500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = unix_glw.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB5600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = unix_main.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB5700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = unix_net.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB5800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = unix_shared.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB5900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = vm_x86.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB5A00868211C697A10E = {
+ children = (
+ 012ADB5B00868211C697A10E,
+ 012ADB5C00868211C697A10E,
+ 012ADB5D00868211C697A10E,
+ 012ADB5E00868211C697A10E,
+ 012ADB5F00868211C697A10E,
+ 012ADB6000868211C697A10E,
+ 012ADB6100868211C697A10E,
+ 012ADB6200868211C697A10E,
+ 012ADB6300868211C697A10E,
+ 012ADB6400868211C697A10E,
+ 012ADB6500868211C697A10E,
+ 012ADB6600868211C697A10E,
+ 012ADB6700868211C697A10E,
+ 012ADB6800868211C697A10E,
+ 012ADB6900868211C697A10E,
+ 012ADB6A00868211C697A10E,
+ 012ADB6B00868211C697A10E,
+ );
+ isa = PBXGroup;
+ path = win32;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB5B00868211C697A10E = {
+ isa = PBXFileReference;
+ lastKnownFileType = image.bmp;
+ path = background.bmp;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB5C00868211C697A10E = {
+ isa = PBXFileReference;
+ lastKnownFileType = image.bmp;
+ path = clear.bmp;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB5D00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = glw_win.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB5E00868211C697A10E = {
+ isa = PBXFileReference;
+ lastKnownFileType = image.ico;
+ path = icon2.ico;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB5F00868211C697A10E = {
+ isa = PBXFileReference;
+ lastKnownFileType = image.ico;
+ path = qe3.ico;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB6000868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = resource.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB6100868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = win_gamma.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB6200868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = win_glimp.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB6300868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = win_input.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB6400868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = win_local.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB6500868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = win_main.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB6600868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = win_net.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB6700868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = win_qgl.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB6800868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = win_shared.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB6900868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = win_snd.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB6A00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = win_syscon.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 012ADB6B00868211C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = win_wndproc.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 015ECC0C00894EC0C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = macosx_display.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 015ECC0D00894EC0C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
+ path = macosx_display.m;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 015ECC0E00894EC0C697A10E = {
+ fileRef = 015ECC0C00894EC0C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 015ECC0F00894EC0C697A10E = {
+ fileRef = 015ECC0D00894EC0C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 016B4A3B00ACCF9FC697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
+ path = macosx_glsmp_mutex.m;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 016B4A3C00ACCF9FC697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
+ path = macosx_glsmp_null.m;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 016B4A3D00ACCF9FC697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
+ path = macosx_glsmp_ports.m;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 016B4A3E00ACCF9FC697A10E = {
+ fileRef = 016B4A3B00ACCF9FC697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 016EAE0200B4BDD1C697A10E = {
+ explicitFileType = wrapper.cfbundle;
+ isa = PBXFileReference;
+ path = ui.bundle;
+ refType = 3;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 016EAE0300B4BDD1C697A10E = {
+ buildPhases = (
+ 016EAE0400B4BDD1C697A10E,
+ 016EAE0900B4BDD1C697A10E,
+ 016EAE0A00B4BDD1C697A10E,
+ 016EAE1200B4BDD1C697A10E,
+ 016EAE1300B4BDD1C697A10E,
+ );
+ buildSettings = {
+ INSTALL_PATH = "/Users/Shared/$(USER)/InstalledProducts";
+ OTHER_CFLAGS = "";
+ OTHER_LDFLAGS = "-bundle -undefined error";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = ui;
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
+ WRAPPER_EXTENSION = bundle;
+ };
+ dependencies = (
+ );
+ isa = PBXBundleTarget;
+ name = ui;
+ productInstallPath = "/Users/Shared/$(USER)/InstalledProducts";
+ productName = ui;
+ productReference = 016EAE0200B4BDD1C697A10E;
+ productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
+<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
+<plist version=\"1.0\">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string></string>
+ <key>CFBundleGetInfoString</key>
+ <string></string>
+ <key>CFBundleIconFile</key>
+ <string></string>
+ <key>CFBundleIdentifier</key>
+ <string></string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string></string>
+ <key>CFBundlePackageType</key>
+ <string>BNDL</string>
+ <key>CFBundleShortVersionString</key>
+ <string></string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>0.0.1d1</string>
+</dict>
+</plist>
+";
+ };
+ 016EAE0400B4BDD1C697A10E = {
+ buildActionMask = 2147483647;
+ files = (
+ 016EAE0500B4BDD1C697A10E,
+ 016EAE0600B4BDD1C697A10E,
+ 016EAE0700B4BDD1C697A10E,
+ 016EAE0800B4BDD1C697A10E,
+ 016EAE1400B4BE42C697A10E,
+ );
+ isa = PBXHeadersBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 016EAE0500B4BDD1C697A10E = {
+ fileRef = 012ADB4900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 016EAE0600B4BDD1C697A10E = {
+ fileRef = 012ADB4700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 016EAE0700B4BDD1C697A10E = {
+ fileRef = 012ADB4400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 016EAE0800B4BDD1C697A10E = {
+ fileRef = 012ADB4100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 016EAE0900B4BDD1C697A10E = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXResourcesBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 016EAE0A00B4BDD1C697A10E = {
+ buildActionMask = 2147483647;
+ files = (
+ 016EAE0B00B4BDD1C697A10E,
+ 016EAE0C00B4BDD1C697A10E,
+ 016EAE0D00B4BDD1C697A10E,
+ 016EAE0E00B4BDD1C697A10E,
+ 016EAE0F00B4BDD1C697A10E,
+ 016EAE1000B4BDD1C697A10E,
+ 016EAE1100B4BDD1C697A10E,
+ 016EAE1500B4BE42C697A10E,
+ 016EAE1600B4BE42C697A10E,
+ 016EAE1700B4BE53C697A10E,
+ );
+ isa = PBXSourcesBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 016EAE0B00B4BDD1C697A10E = {
+ fileRef = 012ADB4B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 016EAE0C00B4BDD1C697A10E = {
+ fileRef = 012ADB4A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 016EAE0D00B4BDD1C697A10E = {
+ fileRef = 012ADB4800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 016EAE0E00B4BDD1C697A10E = {
+ fileRef = 012ADB4600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 016EAE0F00B4BDD1C697A10E = {
+ fileRef = 012ADB4500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 016EAE1000B4BDD1C697A10E = {
+ fileRef = 012ADB4300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 016EAE1100B4BDD1C697A10E = {
+ fileRef = 012ADB4200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 016EAE1200B4BDD1C697A10E = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXFrameworksBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 016EAE1300B4BDD1C697A10E = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXRezBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 016EAE1400B4BE42C697A10E = {
+ fileRef = 012ADA6200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 016EAE1500B4BE42C697A10E = {
+ fileRef = 012ADA6000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 016EAE1600B4BE42C697A10E = {
+ fileRef = 012ADA6100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 016EAE1700B4BE53C697A10E = {
+ fileRef = 012ADA3E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 016F1B6300ACDA9BC697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = huffman.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 016F1B6400ACDA9BC697A10E = {
+ fileRef = 016F1B6300ACDA9BC697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170304A00B4885DC697A10E = {
+ explicitFileType = "compiled.mach-o.executable";
+ isa = PBXFileReference;
+ path = Q3DedicatedServer;
+ refType = 3;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 0170304B00B4885DC697A10E = {
+ buildPhases = (
+ 0170304C00B4885DC697A10E,
+ 0170304D00B4885DC697A10E,
+ 0170304E00B4885DC697A10E,
+ 0170304F00B4885DC697A10E,
+ );
+ buildSettings = {
+ DEBUGGING_SYMBOLS = NO;
+ GCC_VERSION = 3.3;
+ INSTALL_PATH = "";
+ LIBRARY_SEARCH_PATHS = "\"/Users/zaphod/Quake3/code/macosx/GameRanger SDK/Libraries\"";
+ OPTIMIZATION_CFLAGS = "-O2";
+ OTHER_CFLAGS = "-DDEDICATED -DMACOS_X -DBOTLIB -DMISSIONPACK -force_cpusubtype_ALL -Wno-long-double";
+ OTHER_LDFLAGS = "";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = Q3DedicatedServer;
+ REZ_EXECUTABLE = YES;
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
+ };
+ dependencies = (
+ );
+ isa = PBXToolTarget;
+ name = "Dedicated Server";
+ productInstallPath = "";
+ productName = "Dedicated Server";
+ productReference = 0170304A00B4885DC697A10E;
+ };
+ 0170304C00B4885DC697A10E = {
+ buildActionMask = 2147483647;
+ files = (
+ 0170305200B488AEC697A10E,
+ 0170305300B488AEC697A10E,
+ 0170305400B488AEC697A10E,
+ 0170305500B488AEC697A10E,
+ 0170305600B488AEC697A10E,
+ 0170305700B488AEC697A10E,
+ 0170305800B488AEC697A10E,
+ 0170305900B488AEC697A10E,
+ 0170306B00B489B5C697A10E,
+ 0170307600B48B5CC697A10E,
+ 0170307700B48B5CC697A10E,
+ 0170307800B48B5CC697A10E,
+ 0170307900B48B5CC697A10E,
+ 0170307A00B48B5CC697A10E,
+ 0170307B00B48B5CC697A10E,
+ 0170307C00B48B5CC697A10E,
+ 0170307D00B48B5CC697A10E,
+ 0170307E00B48B5CC697A10E,
+ 0170307F00B48B5CC697A10E,
+ 0170308400B48B5CC697A10E,
+ 0170308500B48B5CC697A10E,
+ 0170308600B48B5CC697A10E,
+ 0170308700B48B5CC697A10E,
+ 0170308800B48B5CC697A10E,
+ 0170308900B48B5CC697A10E,
+ 0170308A00B48B5CC697A10E,
+ 0170308B00B48B5CC697A10E,
+ 0170308C00B48B5CC697A10E,
+ 0170308D00B48B5CC697A10E,
+ 0170308E00B48B5CC697A10E,
+ 0170308F00B48B5CC697A10E,
+ 0170309000B48B5CC697A10E,
+ 0170309100B48B5CC697A10E,
+ 0170309200B48B5CC697A10E,
+ 0170309300B48B5CC697A10E,
+ 0170309400B48B5CC697A10E,
+ 0170309500B48B5CC697A10E,
+ 0170309600B48B5CC697A10E,
+ 0170309700B48B5CC697A10E,
+ 0170309800B48B5CC697A10E,
+ 0170309900B48B5CC697A10E,
+ 0170309A00B48B5CC697A10E,
+ 0170309B00B48B5CC697A10E,
+ 0170309C00B48B5CC697A10E,
+ 0170309E00B48B5CC697A10E,
+ 0170309F00B48B5CC697A10E,
+ 017030A000B48B5CC697A10E,
+ 017030A100B48B5CC697A10E,
+ 017030A200B48B5CC697A10E,
+ 017030A300B48B5CC697A10E,
+ );
+ isa = PBXHeadersBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 0170304D00B4885DC697A10E = {
+ buildActionMask = 2147483647;
+ files = (
+ 0170305B00B488AEC697A10E,
+ 0170305C00B488AEC697A10E,
+ 0170305D00B488AEC697A10E,
+ 0170305E00B488AEC697A10E,
+ 0170305F00B488AEC697A10E,
+ 0170306000B488AEC697A10E,
+ 0170306100B488AEC697A10E,
+ 0170306200B488AEC697A10E,
+ 0170306300B488AEC697A10E,
+ 0170306400B488AEC697A10E,
+ 0170306500B488AEC697A10E,
+ 0170306600B488AEC697A10E,
+ 0170306700B488AEC697A10E,
+ 0170306800B488AEC697A10E,
+ 0170306900B488AEC697A10E,
+ 0170306A00B488AEC697A10E,
+ 0170306C00B489B5C697A10E,
+ 0170306D00B489B5C697A10E,
+ 0170306E00B489B5C697A10E,
+ 0170306F00B489B5C697A10E,
+ 0170307000B489B5C697A10E,
+ 0170307100B489B5C697A10E,
+ 0170307200B489B5C697A10E,
+ 0170307400B489B5C697A10E,
+ 0170307500B489B5C697A10E,
+ 017030A400B48B5CC697A10E,
+ 017030A500B48B5CC697A10E,
+ 017030A600B48B5CC697A10E,
+ 017030A700B48B5CC697A10E,
+ 017030A800B48B5CC697A10E,
+ 017030A900B48B5CC697A10E,
+ 017030AA00B48B5CC697A10E,
+ 017030AB00B48B5CC697A10E,
+ 017030AC00B48B5CC697A10E,
+ 017030AD00B48B5CC697A10E,
+ 017030AE00B48B5CC697A10E,
+ 017030AF00B48B5CC697A10E,
+ 017030B000B48B5CC697A10E,
+ 017030B100B48B5CC697A10E,
+ 017030B200B48B5CC697A10E,
+ 017030B300B48B5CC697A10E,
+ 017030B400B48B5CC697A10E,
+ 017030B500B48B5CC697A10E,
+ 017030B600B48B5CC697A10E,
+ 017030B700B48B5CC697A10E,
+ 017030B800B48B5CC697A10E,
+ 017030B900B48B5CC697A10E,
+ 017030BA00B48B5CC697A10E,
+ 017030BB00B48B5CC697A10E,
+ 017030BC00B48B5CC697A10E,
+ 017030BD00B48B5CC697A10E,
+ 017030BE00B48B5CC697A10E,
+ 017030BF00B48B5CC697A10E,
+ 017030C000B48B5CC697A10E,
+ 017030C100B48B5CC697A10E,
+ 017030C200B48B5CC697A10E,
+ 017030C300B48B5CC697A10E,
+ 017030C400B48B5CC697A10E,
+ 017030C500B48B5CC697A10E,
+ 017030C600B48B5CC697A10E,
+ 017030C700B48B5CC697A10E,
+ 017030C800B48B5CC697A10E,
+ 017030C900B48B5CC697A10E,
+ 017030CA00B48B5CC697A10E,
+ 017030CB00B48B5CC697A10E,
+ 017030CC00B48B5CC697A10E,
+ 017030CD00B48B5CC697A10E,
+ 017030CE00B48B5CC697A10E,
+ 017030CF00B48B5CC697A10E,
+ 017030D000B48B5CC697A10E,
+ 017030D100B48B5CC697A10E,
+ 017030D200B48B5CC697A10E,
+ 017030D300B48B5CC697A10E,
+ 017030D400B48B5CC697A10E,
+ 017030D500B48B5CC697A10E,
+ 017030D600B48B5CC697A10E,
+ 017030D700B48B5CC697A10E,
+ 017030D800B48B5CC697A10E,
+ 017030D900B48B5CC697A10E,
+ 017030DA00B48B5CC697A10E,
+ 017030DB00B48B5CC697A10E,
+ 017030DC00B48B5CC697A10E,
+ 017030DD00B48B5CC697A10E,
+ 017030DE00B48B5CC697A10E,
+ 017030DF00B48B5CC697A10E,
+ 017030E000B48B5CC697A10E,
+ 017030E100B48B5CC697A10E,
+ 017030E200B48B5CC697A10E,
+ 017030F200B48B5CC697A10E,
+ 017030F300B48B5CC697A10E,
+ 017030F400B48B5CC697A10E,
+ 017030F500B48B5CC697A10E,
+ 017030F600B48B5CC697A10E,
+ 017030F700B48B5CC697A10E,
+ 017030F800B48B5CC697A10E,
+ 017030F900B48B5CC697A10E,
+ 017030FA00B48B5CC697A10E,
+ 017030FB00B48B5CC697A10E,
+ 017030FC00B48B5CC697A10E,
+ 017030FD00B48B5CC697A10E,
+ 017030FE00B48B5CC697A10E,
+ 017030FF00B48B5CC697A10E,
+ 0170310000B48B5CC697A10E,
+ 0170310100B48B5CC697A10E,
+ 0170310200B48B5CC697A10E,
+ 0170310300B48B5CC697A10E,
+ 0170310400B48B5CC697A10E,
+ 0170310500B48B5CC697A10E,
+ 0170310600B48B5CC697A10E,
+ 0170310700B48B5CC697A10E,
+ 0170310800B48B5CC697A10E,
+ 0170310900B48B5CC697A10E,
+ 0170310A00B48B5CC697A10E,
+ 0170310B00B48B5CC697A10E,
+ 0170310C00B48B5CC697A10E,
+ 0170310D00B48B5CC697A10E,
+ 0170310F00B48B5CC697A10E,
+ 0170311000B48B5CC697A10E,
+ 0170311100B48B5CC697A10E,
+ 0170311200B48B5CC697A10E,
+ 0170311400B48B5CC697A10E,
+ 0170311500B48B5CC697A10E,
+ 0170311600B48B5CC697A10E,
+ F54951F40354EAA2011BCB42,
+ 4FB23865047AB9F60098ACF3,
+ );
+ isa = PBXSourcesBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 0170304E00B4885DC697A10E = {
+ buildActionMask = 2147483647;
+ files = (
+ 0170311700B48E9AC697A10E,
+ 0170311800B48E9AC697A10E,
+ 0170311900B48E9AC697A10E,
+ 0170311A00B48E9AC697A10E,
+ 0170311B00B48E9AC697A10E,
+ F54951E80354E75E011BCB42,
+ );
+ isa = PBXFrameworksBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 0170304F00B4885DC697A10E = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXRezBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 0170305200B488AEC697A10E = {
+ fileRef = 012ADB0300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170305300B488AEC697A10E = {
+ fileRef = 012ADB0000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170305400B488AEC697A10E = {
+ fileRef = 012ADAFE00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170305500B488AEC697A10E = {
+ fileRef = 012ADAFD00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170305600B488AEC697A10E = {
+ fileRef = 012ADAF300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170305700B488AEC697A10E = {
+ fileRef = 012ADAF200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170305800B488AEC697A10E = {
+ fileRef = 012ADAF000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170305900B488AEC697A10E = {
+ fileRef = 012ADAEE00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170305B00B488AEC697A10E = {
+ fileRef = 012ADB0200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170305C00B488AEC697A10E = {
+ fileRef = 012ADAFF00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170305D00B488AEC697A10E = {
+ fileRef = 012ADB0100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170305E00B488AEC697A10E = {
+ fileRef = 012ADAFC00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170305F00B488AEC697A10E = {
+ fileRef = 012ADAFB00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170306000B488AEC697A10E = {
+ fileRef = 012ADAFA00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170306100B488AEC697A10E = {
+ fileRef = 016F1B6300ACDA9BC697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170306200B488AEC697A10E = {
+ fileRef = 012ADAF900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170306300B488AEC697A10E = {
+ fileRef = 012ADAF800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170306400B488AEC697A10E = {
+ fileRef = 012ADAF700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170306500B488AEC697A10E = {
+ fileRef = 012ADAF600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170306600B488AEC697A10E = {
+ fileRef = 012ADAF500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170306700B488AEC697A10E = {
+ fileRef = 012ADAF400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170306800B488AEC697A10E = {
+ fileRef = 012ADAF100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170306900B488AEC697A10E = {
+ fileRef = 012ADAEF00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170306A00B488AEC697A10E = {
+ fileRef = 012ADAED00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170306B00B489B5C697A10E = {
+ fileRef = 012ADB2400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170306C00B489B5C697A10E = {
+ fileRef = 012ADB2500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170306D00B489B5C697A10E = {
+ fileRef = 012ADB2600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170306E00B489B5C697A10E = {
+ fileRef = 012ADB2700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170306F00B489B5C697A10E = {
+ fileRef = 012ADB2800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170307000B489B5C697A10E = {
+ fileRef = 012ADB2900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170307100B489B5C697A10E = {
+ fileRef = 012ADB2A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170307200B489B5C697A10E = {
+ fileRef = 012ADB2B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170307400B489B5C697A10E = {
+ fileRef = 012ADB2D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170307500B489B5C697A10E = {
+ fileRef = 012ADB2E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170307600B48B5CC697A10E = {
+ fileRef = 012ADB3F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170307700B48B5CC697A10E = {
+ fileRef = 012ADB1400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170307800B48B5CC697A10E = {
+ fileRef = 012ADB1A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170307900B48B5CC697A10E = {
+ fileRef = 012ADB0800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170307A00B48B5CC697A10E = {
+ fileRef = 012ADB0900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170307B00B48B5CC697A10E = {
+ fileRef = 012ADA6C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170307C00B48B5CC697A10E = {
+ fileRef = 012ADA8100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170307D00B48B5CC697A10E = {
+ fileRef = 012ADA8C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170307E00B48B5CC697A10E = {
+ fileRef = 012ADA9B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170307F00B48B5CC697A10E = {
+ fileRef = 012ADA6200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170308400B48B5CC697A10E = {
+ fileRef = 012AD90800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170308500B48B5CC697A10E = {
+ fileRef = 012AD90900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170308600B48B5CC697A10E = {
+ fileRef = 012AD90C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170308700B48B5CC697A10E = {
+ fileRef = 012AD90E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170308800B48B5CC697A10E = {
+ fileRef = 012AD90F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170308900B48B5CC697A10E = {
+ fileRef = 012AD91100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170308A00B48B5CC697A10E = {
+ fileRef = 012AD91300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170308B00B48B5CC697A10E = {
+ fileRef = 012AD91400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170308C00B48B5CC697A10E = {
+ fileRef = 012AD91600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170308D00B48B5CC697A10E = {
+ fileRef = 012AD91800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170308E00B48B5CC697A10E = {
+ fileRef = 012AD91A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170308F00B48B5CC697A10E = {
+ fileRef = 012AD91C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170309000B48B5CC697A10E = {
+ fileRef = 012AD91E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170309100B48B5CC697A10E = {
+ fileRef = 012AD92000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170309200B48B5CC697A10E = {
+ fileRef = 012AD92200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170309300B48B5CC697A10E = {
+ fileRef = 012AD92A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170309400B48B5CC697A10E = {
+ fileRef = 012AD92D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170309500B48B5CC697A10E = {
+ fileRef = 012AD92F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170309600B48B5CC697A10E = {
+ fileRef = 012AD93100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170309700B48B5CC697A10E = {
+ fileRef = 012AD93300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170309800B48B5CC697A10E = {
+ fileRef = 012AD93500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170309900B48B5CC697A10E = {
+ fileRef = 012AD93700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170309A00B48B5CC697A10E = {
+ fileRef = 012AD93900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170309B00B48B5CC697A10E = {
+ fileRef = 012AD93B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170309C00B48B5CC697A10E = {
+ fileRef = 012AD93C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170309E00B48B5CC697A10E = {
+ fileRef = 015ECC0C00894EC0C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170309F00B48B5CC697A10E = {
+ fileRef = 011F78F200B25B65C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030A000B48B5CC697A10E = {
+ fileRef = 043627A600868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030A100B48B5CC697A10E = {
+ fileRef = 043627A900868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030A200B48B5CC697A10E = {
+ fileRef = 043627B000868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030A300B48B5CC697A10E = {
+ fileRef = 043627AE00868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030A400B48B5CC697A10E = {
+ fileRef = 012ADB5700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030A500B48B5CC697A10E = {
+ fileRef = 012ADB5800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030A600B48B5CC697A10E = {
+ fileRef = 012ADB3800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030A700B48B5CC697A10E = {
+ fileRef = 012ADB3B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030A800B48B5CC697A10E = {
+ fileRef = 012ADB3E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030A900B48B5CC697A10E = {
+ fileRef = 012ADB0A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030AA00B48B5CC697A10E = {
+ fileRef = 012ADB0B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030AB00B48B5CC697A10E = {
+ fileRef = 012ADB0C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030AC00B48B5CC697A10E = {
+ fileRef = 012ADB0D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030AD00B48B5CC697A10E = {
+ fileRef = 012ADB0E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030AE00B48B5CC697A10E = {
+ fileRef = 012ADB0F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030AF00B48B5CC697A10E = {
+ fileRef = 012ADB1000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030B000B48B5CC697A10E = {
+ fileRef = 012ADB1100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030B100B48B5CC697A10E = {
+ fileRef = 012ADB1200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030B200B48B5CC697A10E = {
+ fileRef = 012ADB1300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030B300B48B5CC697A10E = {
+ fileRef = 012ADB1500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030B400B48B5CC697A10E = {
+ fileRef = 012ADB1600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030B500B48B5CC697A10E = {
+ fileRef = 012ADB1700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030B600B48B5CC697A10E = {
+ fileRef = 012ADB1800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030B700B48B5CC697A10E = {
+ fileRef = 012ADB1900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030B800B48B5CC697A10E = {
+ fileRef = 012ADB1B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030B900B48B5CC697A10E = {
+ fileRef = 012ADB1C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030BA00B48B5CC697A10E = {
+ fileRef = 012ADB1D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030BB00B48B5CC697A10E = {
+ fileRef = 012ADB1E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030BC00B48B5CC697A10E = {
+ fileRef = 012ADB1F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030BD00B48B5CC697A10E = {
+ fileRef = 012ADB2000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030BE00B48B5CC697A10E = {
+ fileRef = 012ADB2100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030BF00B48B5CC697A10E = {
+ fileRef = 012ADB2200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030C000B48B5CC697A10E = {
+ fileRef = 012ADA6600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030C100B48B5CC697A10E = {
+ fileRef = 012ADA6800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030C200B48B5CC697A10E = {
+ fileRef = 012ADA6900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030C300B48B5CC697A10E = {
+ fileRef = 012ADA6A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030C400B48B5CC697A10E = {
+ fileRef = 012ADA6B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030C500B48B5CC697A10E = {
+ fileRef = 012ADA6D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030C600B48B5CC697A10E = {
+ fileRef = 012ADA6E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030C700B48B5CC697A10E = {
+ fileRef = 012ADA6F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030C800B48B5CC697A10E = {
+ fileRef = 012ADA7000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030C900B48B5CC697A10E = {
+ fileRef = 012ADA7100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030CA00B48B5CC697A10E = {
+ fileRef = 012ADA7300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030CB00B48B5CC697A10E = {
+ fileRef = 012ADA7400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030CC00B48B5CC697A10E = {
+ fileRef = 012ADA7500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030CD00B48B5CC697A10E = {
+ fileRef = 012ADA7600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030CE00B48B5CC697A10E = {
+ fileRef = 012ADA7800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030CF00B48B5CC697A10E = {
+ fileRef = 012ADA7900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030D000B48B5CC697A10E = {
+ fileRef = 012ADA7B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030D100B48B5CC697A10E = {
+ fileRef = 012ADA7C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030D200B48B5CC697A10E = {
+ fileRef = 012ADA7D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030D300B48B5CC697A10E = {
+ fileRef = 012ADA7F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030D400B48B5CC697A10E = {
+ fileRef = 012ADA8000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030D500B48B5CC697A10E = {
+ fileRef = 012ADA8200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030D600B48B5CC697A10E = {
+ fileRef = 012ADA8300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030D700B48B5CC697A10E = {
+ fileRef = 012ADA8400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030D800B48B5CC697A10E = {
+ fileRef = 012ADA8500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030D900B48B5CC697A10E = {
+ fileRef = 012ADA8900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030DA00B48B5CC697A10E = {
+ fileRef = 012ADA8800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030DB00B48B5CC697A10E = {
+ fileRef = 012ADA8B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030DC00B48B5CC697A10E = {
+ fileRef = 012ADA8D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030DD00B48B5CC697A10E = {
+ fileRef = 012ADA9000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030DE00B48B5CC697A10E = {
+ fileRef = 012ADA9600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030DF00B48B5CC697A10E = {
+ fileRef = 012ADA9800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030E000B48B5CC697A10E = {
+ fileRef = 012ADAA200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030E100B48B5CC697A10E = {
+ fileRef = 012ADA6000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030E200B48B5CC697A10E = {
+ fileRef = 012ADA6100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030F200B48B5CC697A10E = {
+ fileRef = 012AD90A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030F300B48B5CC697A10E = {
+ fileRef = 012AD90B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030F400B48B5CC697A10E = {
+ fileRef = 012AD90D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030F500B48B5CC697A10E = {
+ fileRef = 012AD91000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030F600B48B5CC697A10E = {
+ fileRef = 012AD91200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030F700B48B5CC697A10E = {
+ fileRef = 012AD91500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030F800B48B5CC697A10E = {
+ fileRef = 012AD91700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030F900B48B5CC697A10E = {
+ fileRef = 012AD91900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030FA00B48B5CC697A10E = {
+ fileRef = 012AD91B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030FB00B48B5CC697A10E = {
+ fileRef = 012AD91D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030FC00B48B5CC697A10E = {
+ fileRef = 012AD91F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030FD00B48B5CC697A10E = {
+ fileRef = 012AD92100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030FE00B48B5CC697A10E = {
+ fileRef = 012AD92300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 017030FF00B48B5CC697A10E = {
+ fileRef = 012AD92400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170310000B48B5CC697A10E = {
+ fileRef = 012AD92500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170310100B48B5CC697A10E = {
+ fileRef = 012AD92600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170310200B48B5CC697A10E = {
+ fileRef = 012AD92700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170310300B48B5CC697A10E = {
+ fileRef = 012AD92800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170310400B48B5CC697A10E = {
+ fileRef = 012AD92900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170310500B48B5CC697A10E = {
+ fileRef = 012AD92B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170310600B48B5CC697A10E = {
+ fileRef = 012AD92C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170310700B48B5CC697A10E = {
+ fileRef = 012AD92E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170310800B48B5CC697A10E = {
+ fileRef = 012AD93000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170310900B48B5CC697A10E = {
+ fileRef = 012AD93200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170310A00B48B5CC697A10E = {
+ fileRef = 012AD93400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170310B00B48B5CC697A10E = {
+ fileRef = 012AD93600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170310C00B48B5CC697A10E = {
+ fileRef = 012AD93800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170310D00B48B5CC697A10E = {
+ fileRef = 012AD93A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170310F00B48B5CC697A10E = {
+ fileRef = 015ECC0D00894EC0C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170311000B48B5CC697A10E = {
+ fileRef = 043627A700868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170311100B48B5CC697A10E = {
+ fileRef = 016B4A3B00ACCF9FC697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170311200B48B5CC697A10E = {
+ fileRef = 043627A800868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170311400B48B5CC697A10E = {
+ fileRef = 043627AD00868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170311500B48B5CC697A10E = {
+ fileRef = 043627B100868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170311600B48B5CC697A10E = {
+ fileRef = 043627AF00868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170311700B48E9AC697A10E = {
+ fileRef = 0654BA58FE8ECEE0C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170311800B48E9AC697A10E = {
+ fileRef = 0654BA59FE8ECEE0C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170311900B48E9AC697A10E = {
+ fileRef = 00E9D914FEDB4D29C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170311A00B48E9AC697A10E = {
+ fileRef = 0654BA5AFE8ECEE0C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170311B00B48E9AC697A10E = {
+ fileRef = 0654BA5BFE8ECEE0C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0170311C00B49352C697A10E = {
+ buildPhases = (
+ );
+ buildSettings = {
+ OTHER_CFLAGS = "";
+ OTHER_LDFLAGS = "";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = All;
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
+ };
+ dependencies = (
+ 0170311D00B49352C697A10E,
+ 4FF091EA04897B0000030DA8,
+ 18A3D356065F6636006A719A,
+ 18A3D358065F663A006A719A,
+ 18A3D35A065F663F006A719A,
+ );
+ isa = PBXAggregateTarget;
+ name = All;
+ productName = All;
+ };
+ 0170311D00B49352C697A10E = {
+ isa = PBXTargetDependency;
+ target = 0654BA5CFE8ECEE0C697A12F;
+ targetProxy = 1895FF33065E291B00F8B3F4;
+ };
+//010
+//011
+//012
+//013
+//014
+//040
+//041
+//042
+//043
+//044
+ 043627A000868916C697A10E = {
+ children = (
+ 015ECC0C00894EC0C697A10E,
+ 015ECC0D00894EC0C697A10E,
+ 011F78F200B25B65C697A10E,
+ 043627A600868916C697A10E,
+ 043627A700868916C697A10E,
+ 016B4A3B00ACCF9FC697A10E,
+ 016B4A3C00ACCF9FC697A10E,
+ 016B4A3D00ACCF9FC697A10E,
+ 043627A800868916C697A10E,
+ 043627A900868916C697A10E,
+ 043627AB00868916C697A10E,
+ 043627AD00868916C697A10E,
+ 043627AE00868916C697A10E,
+ 043627AF00868916C697A10E,
+ 043627B000868916C697A10E,
+ 043627B100868916C697A10E,
+ 043627B200868916C697A10E,
+ 043627B300868916C697A10E,
+ 043627B400868916C697A10E,
+ 043627B500868916C697A10E,
+ 043627B600868916C697A10E,
+ 043627B700868916C697A10E,
+ 043627B800868916C697A10E,
+ );
+ isa = PBXGroup;
+ name = "Mac OS X";
+ path = "";
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 043627A600868916C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = macosx_glimp.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 043627A700868916C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
+ path = macosx_glimp.m;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 043627A800868916C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
+ path = macosx_input.m;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 043627A900868916C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = macosx_local.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 043627AB00868916C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
+ path = macosx_sndcore.m;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 043627AD00868916C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
+ path = macosx_sys.m;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 043627AE00868916C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = macosx_timers.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 043627AF00868916C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
+ path = macosx_timers.m;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 043627B000868916C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = Q3Controller.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 043627B100868916C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
+ path = Q3Controller.m;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 043627B200868916C697A10E = {
+ isa = PBXFileReference;
+ lastKnownFileType = wrapper.nib;
+ path = Quake3.nib;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 043627B300868916C697A10E = {
+ isa = PBXFileReference;
+ lastKnownFileType = image.icns;
+ path = Quake3.icns;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 043627B400868916C697A10E = {
+ isa = PBXFileReference;
+ lastKnownFileType = image.jpeg;
+ path = banner.jpg;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 043627B500868916C697A10E = {
+ isa = PBXFileReference;
+ lastKnownFileType = text.rtf;
+ path = Performance.rtf;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 043627B600868916C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = text.script.sh;
+ path = BuildRelease;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 043627B700868916C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = text.script.sh;
+ path = RecordDemo.zsh;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 043627B800868916C697A10E = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = text.script.sh;
+ path = timedemo.zsh;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 043627BC00868916C697A10E = {
+ fileRef = 043627A600868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627BD00868916C697A10E = {
+ fileRef = 043627A900868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627BE00868916C697A10E = {
+ fileRef = 043627AE00868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627BF00868916C697A10E = {
+ fileRef = 043627B000868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627C000868916C697A10E = {
+ fileRef = 043627B300868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627C100868916C697A10E = {
+ fileRef = 043627B200868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627C200868916C697A10E = {
+ fileRef = 043627B400868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627C500868916C697A10E = {
+ fileRef = 043627A700868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627C600868916C697A10E = {
+ fileRef = 043627A800868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627C800868916C697A10E = {
+ fileRef = 043627AB00868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627CA00868916C697A10E = {
+ fileRef = 043627AD00868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627CB00868916C697A10E = {
+ fileRef = 043627AF00868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627CC00868916C697A10E = {
+ fileRef = 043627B100868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627D20086963EC697A10E = {
+ fileRef = 012ADAF600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627D30086965EC697A10E = {
+ fileRef = 012ADA6200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627D40086965EC697A10E = {
+ fileRef = 012ADA6100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627D50086965EC697A10E = {
+ fileRef = 012ADA6000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627D600869679C697A10E = {
+ fileRef = 012ADB1200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627D700869713C697A10E = {
+ fileRef = 012ADB0300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627D800869713C697A10E = {
+ fileRef = 012ADAF700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627D900869713C697A10E = {
+ fileRef = 012ADAF800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627DA00869713C697A10E = {
+ fileRef = 012ADAF900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627DB00869713C697A10E = {
+ fileRef = 012ADB0100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627DD00869713C697A10E = {
+ fileRef = 012ADB0200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627DE00869726C697A10E = {
+ fileRef = 012ADB0000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627DF00869726C697A10E = {
+ fileRef = 012ADAFF00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627E00086978DC697A10E = {
+ fileRef = 012ADB5800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627E100869827C697A10E = {
+ fileRef = 012ADAEE00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627E200869827C697A10E = {
+ fileRef = 012ADAF000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627E300869827C697A10E = {
+ fileRef = 012ADAF200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627E400869827C697A10E = {
+ fileRef = 012ADAF300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627E500869827C697A10E = {
+ fileRef = 012ADAFD00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627E600869827C697A10E = {
+ fileRef = 012ADAFE00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627E700869827C697A10E = {
+ fileRef = 012ADB0800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627E800869827C697A10E = {
+ fileRef = 012ADB0900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627E900869827C697A10E = {
+ fileRef = 012ADB1400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627EA00869827C697A10E = {
+ fileRef = 012ADB1A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627EB00869827C697A10E = {
+ fileRef = 012ADB2400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627EC00869827C697A10E = {
+ fileRef = 012AD9A600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627ED00869827C697A10E = {
+ fileRef = 012AD9A700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627EE00869827C697A10E = {
+ fileRef = 012AD9A800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627EF00869827C697A10E = {
+ fileRef = 012AD9A900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627F000869827C697A10E = {
+ fileRef = 012AD9AA00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627F100869827C697A10E = {
+ fileRef = 012AD9AB00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627F200869827C697A10E = {
+ fileRef = 012AD9AC00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627F300869827C697A10E = {
+ fileRef = 012AD9AD00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627F400869827C697A10E = {
+ fileRef = 012AD9AE00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627F500869827C697A10E = {
+ fileRef = 012AD9AF00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627F600869827C697A10E = {
+ fileRef = 012ADAED00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627F700869827C697A10E = {
+ fileRef = 012ADAEF00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627F900869827C697A10E = {
+ fileRef = 012ADAF400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627FA00869827C697A10E = {
+ fileRef = 012ADAF500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627FB00869827C697A10E = {
+ fileRef = 012ADAFA00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627FC00869827C697A10E = {
+ fileRef = 012ADAFB00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627FD00869827C697A10E = {
+ fileRef = 012ADAFC00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627FE00869827C697A10E = {
+ fileRef = 012ADB0A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043627FF00869827C697A10E = {
+ fileRef = 012ADB0B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436280000869827C697A10E = {
+ fileRef = 012ADB0C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436280100869827C697A10E = {
+ fileRef = 012ADB0D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436280200869827C697A10E = {
+ fileRef = 012ADB0E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436280300869827C697A10E = {
+ fileRef = 012ADB0F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436280400869827C697A10E = {
+ fileRef = 012ADB1000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436280500869827C697A10E = {
+ fileRef = 012ADB1100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436280600869827C697A10E = {
+ fileRef = 012ADB1300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436280700869827C697A10E = {
+ fileRef = 012ADB1500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436280800869827C697A10E = {
+ fileRef = 012ADB1600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436280900869827C697A10E = {
+ fileRef = 012ADB1700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436280A00869827C697A10E = {
+ fileRef = 012ADB1800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436280B00869827C697A10E = {
+ fileRef = 012ADB1900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436280C00869827C697A10E = {
+ fileRef = 012ADB1B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436280D00869827C697A10E = {
+ fileRef = 012ADB1C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436280E00869827C697A10E = {
+ fileRef = 012ADB1D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436280F00869827C697A10E = {
+ fileRef = 012ADB1E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436281000869827C697A10E = {
+ fileRef = 012ADB1F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436281100869827C697A10E = {
+ fileRef = 012ADB2000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436281200869827C697A10E = {
+ fileRef = 012ADB2100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436281300869827C697A10E = {
+ fileRef = 012ADB2200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436281400869827C697A10E = {
+ fileRef = 012ADB2500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436281500869827C697A10E = {
+ fileRef = 012ADB2600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436281600869827C697A10E = {
+ fileRef = 012ADB2700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436281700869827C697A10E = {
+ fileRef = 012ADB2800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436281800869827C697A10E = {
+ fileRef = 012ADB2900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436281900869827C697A10E = {
+ fileRef = 012ADB2A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436281A00869827C697A10E = {
+ fileRef = 012ADB2B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436281C00869827C697A10E = {
+ fileRef = 012ADB2D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436281D00869827C697A10E = {
+ fileRef = 012ADB2E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436281E00869827C697A10E = {
+ fileRef = 012ADB5700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436281F008698F8C697A10E = {
+ fileRef = 012AD9B000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 04362820008698F8C697A10E = {
+ fileRef = 012AD9B100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 04362821008698F8C697A10E = {
+ fileRef = 012AD9B400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 04362822008698F8C697A10E = {
+ fileRef = 012AD9B700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 04362823008698F8C697A10E = {
+ fileRef = 012AD9B200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 04362824008698F8C697A10E = {
+ fileRef = 012AD9B300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 04362825008698F8C697A10E = {
+ fileRef = 012AD9B500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 04362826008698F8C697A10E = {
+ fileRef = 012AD9B600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628270086991FC697A10E = {
+ fileRef = 012AD9B800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436282E00869A16C697A10E = {
+ fileRef = 012ADB3B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436282F00869A7FC697A10E = {
+ fileRef = 012ADB3800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436283000869A8EC697A10E = {
+ fileRef = 012ADB3F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436283100869A8EC697A10E = {
+ fileRef = 012ADB3E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436283300869AC5C697A10E = {
+ fileRef = 012ADA9800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436283400869AC5C697A10E = {
+ fileRef = 012ADA9600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436284900869B0BC697A10E = {
+ fileRef = 012ADA8C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436284B00869B0BC697A10E = {
+ fileRef = 012ADA9B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436286A00869C36C697A10E = {
+ fileRef = 012ADA8B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436286B00869C6FC697A10E = {
+ fileRef = 012ADA6600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436286C00869CB4C697A10E = {
+ fileRef = 012ADA7100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436286D00869CC9C697A10E = {
+ fileRef = 012ADAA200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436286E00869D0AC697A10E = {
+ fileRef = 012ADA6F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436286F00869D18C697A10E = {
+ fileRef = 012ADA7900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436287000869D23C697A10E = {
+ fileRef = 012ADA6D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436287100869D3BC697A10E = {
+ fileRef = 012ADA7400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436287200869D48C697A10E = {
+ fileRef = 012ADA6C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436287300869D48C697A10E = {
+ fileRef = 012ADA6B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436287400869D56C697A10E = {
+ fileRef = 012ADA6A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436287500869D61C697A10E = {
+ fileRef = 012ADA7600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436287600869D71C697A10E = {
+ fileRef = 012ADA6900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436287700869D7FC697A10E = {
+ fileRef = 012ADA7500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436287800869D92C697A10E = {
+ fileRef = 012ADA6800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436287900869DBBC697A10E = {
+ fileRef = 012ADA8D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436287A00869DC7C697A10E = {
+ fileRef = 012ADA7000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436287B00869DD4C697A10E = {
+ fileRef = 012ADA8500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436287C00869DDDC697A10E = {
+ fileRef = 012ADA7800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436287D00869DF1C697A10E = {
+ fileRef = 012ADA8400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436287E00869DFAC697A10E = {
+ fileRef = 012ADA8200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436287F00869E04C697A10E = {
+ fileRef = 012ADA8900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436288000869E10C697A10E = {
+ fileRef = 012ADA7F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436288100869E21C697A10E = {
+ fileRef = 012ADA8100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436288200869E21C697A10E = {
+ fileRef = 012ADA8000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436288300869E3DC697A10E = {
+ fileRef = 012ADA9000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436288400869E4CC697A10E = {
+ fileRef = 012ADA8800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436288500869E56C697A10E = {
+ fileRef = 012ADA7300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436288600869E60C697A10E = {
+ fileRef = 012ADA7B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436288700869E80C697A10E = {
+ fileRef = 012ADA8300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436288800869E8DC697A10E = {
+ fileRef = 012ADA7C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436288900869E96C697A10E = {
+ fileRef = 012ADA7D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436288A00869EA2C697A10E = {
+ fileRef = 012ADA6E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436288B00869ED7C697A10E = {
+ fileRef = 012AD92C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436288C00869EF3C697A10E = {
+ fileRef = 012AD92400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436288D00869F06C697A10E = {
+ fileRef = 012AD93700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436288E00869F06C697A10E = {
+ fileRef = 012AD93600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436288F00869F0FC697A10E = {
+ fileRef = 012AD93100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436289000869F0FC697A10E = {
+ fileRef = 012AD93000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436289100869F2AC697A10E = {
+ fileRef = 012AD93900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436289200869F2AC697A10E = {
+ fileRef = 012AD93800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436289300869F38C697A10E = {
+ fileRef = 012AD93500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436289400869F38C697A10E = {
+ fileRef = 012AD93400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436289500869F40C697A10E = {
+ fileRef = 012AD93300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436289600869F40C697A10E = {
+ fileRef = 012AD93200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436289700869F4BC697A10E = {
+ fileRef = 012AD92500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436289800869F63C697A10E = {
+ fileRef = 012AD92B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436289900869F7FC697A10E = {
+ fileRef = 012AD92300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436289A00869F8EC697A10E = {
+ fileRef = 012AD92700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436289B00869FAEC697A10E = {
+ fileRef = 012AD91E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436289C00869FAEC697A10E = {
+ fileRef = 012AD91D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436289D00869FBBC697A10E = {
+ fileRef = 012AD91800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436289E00869FBBC697A10E = {
+ fileRef = 012AD91700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0436289F00869FC3C697A10E = {
+ fileRef = 012AD92200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628A000869FC3C697A10E = {
+ fileRef = 012AD92100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628A100869FDEC697A10E = {
+ fileRef = 012AD90900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628A200869FDEC697A10E = {
+ fileRef = 012AD90A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628A300869FE8C697A10E = {
+ fileRef = 012AD90E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628A400869FE8C697A10E = {
+ fileRef = 012AD90D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628A500869FEFC697A10E = {
+ fileRef = 012AD91C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628A600869FEFC697A10E = {
+ fileRef = 012AD91B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628A70086A057C697A10E = {
+ fileRef = 012AD91600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628A80086A057C697A10E = {
+ fileRef = 012AD91500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628A90086A061C697A10E = {
+ fileRef = 012AD92600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628AA0086A081C697A10E = {
+ fileRef = 012AD92A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628AB0086A081C697A10E = {
+ fileRef = 012AD92900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628AC0086A092C697A10E = {
+ fileRef = 012AD91A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628AD0086A092C697A10E = {
+ fileRef = 012AD91900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628AE0086A099C697A10E = {
+ fileRef = 012AD92000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628AF0086A099C697A10E = {
+ fileRef = 012AD91F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628B00086A0B9C697A10E = {
+ fileRef = 012AD93B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628B10086A0B9C697A10E = {
+ fileRef = 012AD92D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628B20086A0B9C697A10E = {
+ fileRef = 012AD92F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628B30086A0B9C697A10E = {
+ fileRef = 012AD93C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628B40086A0B9C697A10E = {
+ fileRef = 012AD93A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628B50086A0B9C697A10E = {
+ fileRef = 012AD92E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628B60086A0BFC697A10E = {
+ fileRef = 012AD92800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628B70086A0E6C697A10E = {
+ fileRef = 012AD91300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628B80086A0E6C697A10E = {
+ fileRef = 012AD91200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628B90086A0F1C697A10E = {
+ fileRef = 012AD91100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628BA0086A0F1C697A10E = {
+ fileRef = 012AD91000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628BB0086A136C697A10E = {
+ fileRef = 012AD90C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628BC0086A136C697A10E = {
+ fileRef = 012AD90F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628BD0086A136C697A10E = {
+ fileRef = 012AD91400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628BE0086A136C697A10E = {
+ fileRef = 012AD90800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 043628BF0086A136C697A10E = {
+ fileRef = 012AD90B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+//040
+//041
+//042
+//043
+//044
+//060
+//061
+//062
+//063
+//064
+ 0654BA41FE8ECEE0C697A12F = {
+ buildSettings = {
+ };
+ buildStyles = (
+ 07F3F50BFFE98E8EC697A10E,
+ 07F3F50CFFE98E8EC697A10E,
+ );
+ hasScannedForEncodings = 1;
+ isa = PBXProject;
+ mainGroup = 0654BA42FE8ECEE0C697A12F;
+ projectDirPath = "";
+ targets = (
+ 0170311C00B49352C697A10E,
+ 0654BA5CFE8ECEE0C697A12F,
+ 4FF0904804896C0E00030DA8,
+ 00F5ED38FEBA95B7C697A12F,
+ 00F5ED90FEBA9615C697A12F,
+ 016EAE0300B4BDD1C697A10E,
+ 0170304B00B4885DC697A10E,
+ 4FF0912704896C1600030DA8,
+ );
+ };
+ 0654BA42FE8ECEE0C697A12F = {
+ children = (
+ 043627A000868916C697A10E,
+ 0654BA76FE8ED011C697A12F,
+ 0654BA57FE8ECEE0C697A12F,
+ 07FB599DFEB762C8C697A12F,
+ );
+ isa = PBXGroup;
+ name = Quake3;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 0654BA57FE8ECEE0C697A12F = {
+ children = (
+ 0654BA58FE8ECEE0C697A12F,
+ 0654BA5AFE8ECEE0C697A12F,
+ 0654BA5BFE8ECEE0C697A12F,
+ F564505801E623B201F62882,
+ 00E9D914FEDB4D29C697A12F,
+ 0654BA59FE8ECEE0C697A12F,
+ );
+ isa = PBXGroup;
+ name = "External Frameworks and Libraries";
+ path = "";
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 0654BA58FE8ECEE0C697A12F = {
+ isa = PBXFileReference;
+ lastKnownFileType = wrapper.framework;
+ name = OpenGL.framework;
+ path = /System/Library/Frameworks/OpenGL.framework;
+ refType = 0;
+ sourceTree = "<absolute>";
+ };
+ 0654BA59FE8ECEE0C697A12F = {
+ isa = PBXFileReference;
+ lastKnownFileType = wrapper.framework;
+ name = Carbon.framework;
+ path = /System/Library/Frameworks/Carbon.framework;
+ refType = 0;
+ sourceTree = "<absolute>";
+ };
+ 0654BA5AFE8ECEE0C697A12F = {
+ isa = PBXFileReference;
+ lastKnownFileType = wrapper.framework;
+ name = AppKit.framework;
+ path = /System/Library/Frameworks/AppKit.framework;
+ refType = 0;
+ sourceTree = "<absolute>";
+ };
+ 0654BA5BFE8ECEE0C697A12F = {
+ isa = PBXFileReference;
+ lastKnownFileType = wrapper.framework;
+ name = Foundation.framework;
+ path = /System/Library/Frameworks/Foundation.framework;
+ refType = 0;
+ sourceTree = "<absolute>";
+ };
+ 0654BA5CFE8ECEE0C697A12F = {
+ buildPhases = (
+ 0654BA5DFE8ECEE0C697A12F,
+ 0654BA61FE8ECEE0C697A12F,
+ 0654BA65FE8ECEE0C697A12F,
+ 0654BA6BFE8ECEE0C697A12F,
+ 0654BA70FE8ECEE0C697A12F,
+ );
+ buildSettings = {
+ FRAMEWORK_SEARCH_PATHS = "";
+ HEADER_SEARCH_PATHS = "";
+ INSTALL_PATH = "/Users/Shared/$(USER)/InstalledProducts";
+ LIBRARY_SEARCH_PATHS = "";
+ OPTIMIZATION_CFLAGS = "-O2";
+ OTHER_CFLAGS = "-DMACOS_X -DBOTLIB -DMISSIONPACK -DSMP -force_cpusubtype_ALL";
+ OTHER_LDFLAGS = "";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = Quake3;
+ SECTORDER_FLAGS = "";
+ USE_GCC3_PFE_SUPPORT = NO;
+ WARNING_CFLAGS = "-Wno-long-double -Wall -Wno-four-char-constants -Wno-unknown-pragmas";
+ WRAPPER_EXTENSION = app;
+ };
+ dependencies = (
+ );
+ isa = PBXApplicationTarget;
+ name = "Quake3 (Application)";
+ productInstallPath = "/Users/Shared/$(USER)/InstalledProducts";
+ productName = Quake3;
+ productReference = 09143A93FF39F3EF11CA2562;
+ productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
+<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
+<plist version=\"1.0\">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>Quake3</string>
+ <key>CFBundleGetInfoString</key>
+ <string>Quake 3 Arena 1.32b</string>
+ <key>CFBundleIconFile</key>
+ <string>Quake3.icns</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.idsoftware.Quake3</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>Quake3</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.32b</string>
+ <key>CFBundleSignature</key>
+ <string>IDQ3</string>
+ <key>CFBundleVersion</key>
+ <string>1.3.2</string>
+ <key>NSExtensions</key>
+ <dict/>
+ <key>NSMainNibFile</key>
+ <string>Quake3.nib</string>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+ <key>NSServices</key>
+ <array>
+ <dict>
+ <key>NSMenuItem</key>
+ <dict>
+ <key>default</key>
+ <string>Quake3/Connect To Server</string>
+ </dict>
+ <key>NSMessage</key>
+ <string>connectToServer</string>
+ <key>NSPortName</key>
+ <string>Quake3</string>
+ <key>NSSendTypes</key>
+ <array>
+ <string>NSStringPboardType</string>
+ </array>
+ </dict>
+ <dict>
+ <key>NSMenuItem</key>
+ <dict>
+ <key>default</key>
+ <string>Quake3/Perform Command</string>
+ </dict>
+ <key>NSMessage</key>
+ <string>performCommand</string>
+ <key>NSPortName</key>
+ <string>Quake3</string>
+ <key>NSSendTypes</key>
+ <array>
+ <string>NSStringPboardType</string>
+ </array>
+ </dict>
+ </array>
+</dict>
+</plist>
+";
+ };
+ 0654BA5DFE8ECEE0C697A12F = {
+ buildActionMask = 2147483647;
+ files = (
+ 043627BC00868916C697A10E,
+ 043627BD00868916C697A10E,
+ 043627BE00868916C697A10E,
+ 043627BF00868916C697A10E,
+ 043627D30086965EC697A10E,
+ 043627D700869713C697A10E,
+ 043627DE00869726C697A10E,
+ 043627E100869827C697A10E,
+ 043627E200869827C697A10E,
+ 043627E300869827C697A10E,
+ 043627E400869827C697A10E,
+ 043627E500869827C697A10E,
+ 043627E600869827C697A10E,
+ 043627E700869827C697A10E,
+ 043627E800869827C697A10E,
+ 043627E900869827C697A10E,
+ 043627EA00869827C697A10E,
+ 043627EB00869827C697A10E,
+ 0436281F008698F8C697A10E,
+ 04362820008698F8C697A10E,
+ 04362821008698F8C697A10E,
+ 04362822008698F8C697A10E,
+ 0436283000869A8EC697A10E,
+ 0436284900869B0BC697A10E,
+ 0436284B00869B0BC697A10E,
+ 0436287200869D48C697A10E,
+ 0436288100869E21C697A10E,
+ 0436288D00869F06C697A10E,
+ 0436288F00869F0FC697A10E,
+ 0436289100869F2AC697A10E,
+ 0436289300869F38C697A10E,
+ 0436289500869F40C697A10E,
+ 0436289B00869FAEC697A10E,
+ 0436289D00869FBBC697A10E,
+ 0436289F00869FC3C697A10E,
+ 043628A100869FDEC697A10E,
+ 043628A300869FE8C697A10E,
+ 043628A500869FEFC697A10E,
+ 043628A70086A057C697A10E,
+ 043628AA0086A081C697A10E,
+ 043628AC0086A092C697A10E,
+ 043628AE0086A099C697A10E,
+ 043628B00086A0B9C697A10E,
+ 043628B10086A0B9C697A10E,
+ 043628B20086A0B9C697A10E,
+ 043628B30086A0B9C697A10E,
+ 043628B70086A0E6C697A10E,
+ 043628B90086A0F1C697A10E,
+ 043628BB0086A136C697A10E,
+ 043628BC0086A136C697A10E,
+ 043628BD0086A136C697A10E,
+ 043628BE0086A136C697A10E,
+ 015ECC0E00894EC0C697A10E,
+ 011F78F300B25B66C697A10E,
+ F5ED1436037096A001F6289A,
+ );
+ isa = PBXHeadersBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 0654BA61FE8ECEE0C697A12F = {
+ buildActionMask = 2147483647;
+ files = (
+ 043627C000868916C697A10E,
+ 043627C100868916C697A10E,
+ 043627C200868916C697A10E,
+ );
+ isa = PBXResourcesBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 0654BA65FE8ECEE0C697A12F = {
+ buildActionMask = 2147483647;
+ files = (
+ 043627C500868916C697A10E,
+ 043627C600868916C697A10E,
+ 043627C800868916C697A10E,
+ 043627CA00868916C697A10E,
+ 043627CB00868916C697A10E,
+ 043627CC00868916C697A10E,
+ 043627D20086963EC697A10E,
+ 043627D40086965EC697A10E,
+ 043627D50086965EC697A10E,
+ 043627D600869679C697A10E,
+ 043627D800869713C697A10E,
+ 043627D900869713C697A10E,
+ 043627DA00869713C697A10E,
+ 043627DB00869713C697A10E,
+ 043627DD00869713C697A10E,
+ 043627DF00869726C697A10E,
+ 043627E00086978DC697A10E,
+ 043627EC00869827C697A10E,
+ 043627ED00869827C697A10E,
+ 043627EE00869827C697A10E,
+ 043627EF00869827C697A10E,
+ 043627F000869827C697A10E,
+ 043627F100869827C697A10E,
+ 043627F200869827C697A10E,
+ 043627F300869827C697A10E,
+ 043627F400869827C697A10E,
+ 043627F500869827C697A10E,
+ 043627F600869827C697A10E,
+ 043627F700869827C697A10E,
+ 043627F900869827C697A10E,
+ 043627FA00869827C697A10E,
+ 043627FB00869827C697A10E,
+ 043627FC00869827C697A10E,
+ 043627FD00869827C697A10E,
+ 043627FE00869827C697A10E,
+ 043627FF00869827C697A10E,
+ 0436280000869827C697A10E,
+ 0436280100869827C697A10E,
+ 0436280200869827C697A10E,
+ 0436280300869827C697A10E,
+ 0436280400869827C697A10E,
+ 0436280500869827C697A10E,
+ 0436280600869827C697A10E,
+ 0436280700869827C697A10E,
+ 0436280800869827C697A10E,
+ 0436280900869827C697A10E,
+ 0436280A00869827C697A10E,
+ 0436280B00869827C697A10E,
+ 0436280C00869827C697A10E,
+ 0436280D00869827C697A10E,
+ 0436280E00869827C697A10E,
+ 0436280F00869827C697A10E,
+ 0436281000869827C697A10E,
+ 0436281100869827C697A10E,
+ 0436281200869827C697A10E,
+ 0436281300869827C697A10E,
+ 0436281400869827C697A10E,
+ 0436281500869827C697A10E,
+ 0436281600869827C697A10E,
+ 0436281700869827C697A10E,
+ 0436281800869827C697A10E,
+ 0436281900869827C697A10E,
+ 0436281A00869827C697A10E,
+ 0436281C00869827C697A10E,
+ 0436281D00869827C697A10E,
+ 0436281E00869827C697A10E,
+ 04362823008698F8C697A10E,
+ 04362824008698F8C697A10E,
+ 04362825008698F8C697A10E,
+ 04362826008698F8C697A10E,
+ 043628270086991FC697A10E,
+ 0436282E00869A16C697A10E,
+ 0436282F00869A7FC697A10E,
+ 0436283100869A8EC697A10E,
+ 0436283300869AC5C697A10E,
+ 0436283400869AC5C697A10E,
+ 0436286A00869C36C697A10E,
+ 0436286B00869C6FC697A10E,
+ 0436286C00869CB4C697A10E,
+ 0436286D00869CC9C697A10E,
+ 0436286E00869D0AC697A10E,
+ 0436286F00869D18C697A10E,
+ 0436287000869D23C697A10E,
+ 0436287100869D3BC697A10E,
+ 0436287300869D48C697A10E,
+ 0436287400869D56C697A10E,
+ 0436287500869D61C697A10E,
+ 0436287600869D71C697A10E,
+ 0436287700869D7FC697A10E,
+ 0436287800869D92C697A10E,
+ 0436287900869DBBC697A10E,
+ 0436287A00869DC7C697A10E,
+ 0436287B00869DD4C697A10E,
+ 0436287C00869DDDC697A10E,
+ 0436287D00869DF1C697A10E,
+ 0436287E00869DFAC697A10E,
+ 0436287F00869E04C697A10E,
+ 0436288000869E10C697A10E,
+ 0436288200869E21C697A10E,
+ 0436288300869E3DC697A10E,
+ 0436288400869E4CC697A10E,
+ 0436288500869E56C697A10E,
+ 0436288600869E60C697A10E,
+ 0436288700869E80C697A10E,
+ 0436288800869E8DC697A10E,
+ 0436288900869E96C697A10E,
+ 0436288A00869EA2C697A10E,
+ 0436288B00869ED7C697A10E,
+ 0436288C00869EF3C697A10E,
+ 0436288E00869F06C697A10E,
+ 0436289000869F0FC697A10E,
+ 0436289200869F2AC697A10E,
+ 0436289400869F38C697A10E,
+ 0436289600869F40C697A10E,
+ 0436289700869F4BC697A10E,
+ 0436289800869F63C697A10E,
+ 0436289900869F7FC697A10E,
+ 0436289A00869F8EC697A10E,
+ 0436289C00869FAEC697A10E,
+ 0436289E00869FBBC697A10E,
+ 043628A000869FC3C697A10E,
+ 043628A200869FDEC697A10E,
+ 043628A400869FE8C697A10E,
+ 043628A600869FEFC697A10E,
+ 043628A80086A057C697A10E,
+ 043628A90086A061C697A10E,
+ 043628AB0086A081C697A10E,
+ 043628AD0086A092C697A10E,
+ 043628AF0086A099C697A10E,
+ 043628B40086A0B9C697A10E,
+ 043628B50086A0B9C697A10E,
+ 043628B60086A0BFC697A10E,
+ 043628B80086A0E6C697A10E,
+ 043628BA0086A0F1C697A10E,
+ 043628BF0086A136C697A10E,
+ 015ECC0F00894EC0C697A10E,
+ 016B4A3E00ACCF9FC697A10E,
+ 016F1B6400ACDA9BC697A10E,
+ 4FB23867047ABF780098ACF3,
+ 4FEFFEDA047B008000719638,
+ );
+ isa = PBXSourcesBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 0654BA6BFE8ECEE0C697A12F = {
+ buildActionMask = 2147483647;
+ files = (
+ 0654BA6CFE8ECEE0C697A12F,
+ 0654BA6EFE8ECEE0C697A12F,
+ 0654BA6FFE8ECEE0C697A12F,
+ 00E9D91DFEDB5295C697A12F,
+ F564505901E623B201F62882,
+ F5D8C5E0035259DF0106E832,
+ );
+ isa = PBXFrameworksBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 0654BA6CFE8ECEE0C697A12F = {
+ fileRef = 0654BA58FE8ECEE0C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0654BA6EFE8ECEE0C697A12F = {
+ fileRef = 0654BA5AFE8ECEE0C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0654BA6FFE8ECEE0C697A12F = {
+ fileRef = 0654BA5BFE8ECEE0C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 0654BA70FE8ECEE0C697A12F = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXRezBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 0654BA76FE8ED011C697A12F = {
+ children = (
+ 012AD90700868211C697A10E,
+ 012AD93D00868211C697A10E,
+ 012AD98D00868211C697A10E,
+ 012AD9A500868211C697A10E,
+ 012ADA2400868211C697A10E,
+ 012ADA6500868211C697A10E,
+ 012ADAA400868211C697A10E,
+ 012ADAB300868211C697A10E,
+ 012ADABB00868211C697A10E,
+ 012ADAEC00868211C697A10E,
+ 012ADB0600868211C697A10E,
+ 012ADB2300868211C697A10E,
+ 012ADB2F00868211C697A10E,
+ 012ADB4000868211C697A10E,
+ 012ADB4C00868211C697A10E,
+ 012ADB5A00868211C697A10E,
+ );
+ isa = PBXGroup;
+ name = "Id Source";
+ path = ..;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+//060
+//061
+//062
+//063
+//064
+//070
+//071
+//072
+//073
+//074
+ 07F3F507FFE98E8EC697A10E = {
+ explicitFileType = wrapper.cfbundle;
+ isa = PBXFileReference;
+ path = qagame.bundle;
+ refType = 3;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 07F3F508FFE98E8EC697A10E = {
+ explicitFileType = wrapper.cfbundle;
+ isa = PBXFileReference;
+ path = cgame.bundle;
+ refType = 3;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 07F3F50BFFE98E8EC697A10E = {
+ buildSettings = {
+ COMMON_CFLAGS = "-DMISSIONPACK -DBOTLIB -DMACOS_X -force_cpusubtype_ALL";
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ NO_OPT_CFLAGS = "-O0 -fno-inline -fno-inline-functions";
+ OPTIMIZATION_CFLAGS = "-O0";
+ OTHER_CFLAGS = "\U0001-g -Wall -DQGL_CHECK_GL_ERRORS $(NO_OPT_CFLAGS) $(COMMON_CFLAGS)";
+ ZERO_LINK = YES;
+ };
+ isa = PBXBuildStyle;
+ name = Development;
+ };
+ 07F3F50CFFE98E8EC697A10E = {
+ buildSettings = {
+ COMMON_CFLAGS = "-DMISSIONPACK -DBOTLIB -DMACOS_X -force_cpusubtype_ALL\n";
+ COPY_PHASE_STRIP = YES;
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ ZERO_LINK = NO;
+ };
+ isa = PBXBuildStyle;
+ name = Deployment;
+ };
+ 07FB599DFEB762C8C697A12F = {
+ children = (
+ 09143A93FF39F3EF11CA2562,
+ 07F3F507FFE98E8EC697A10E,
+ 07F3F508FFE98E8EC697A10E,
+ 016EAE0200B4BDD1C697A10E,
+ 0170304A00B4885DC697A10E,
+ 4FF0912504896C0E00030DA8,
+ 4FF091E804896C1600030DA8,
+ );
+ isa = PBXGroup;
+ name = Products;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+//070
+//071
+//072
+//073
+//074
+//090
+//091
+//092
+//093
+//094
+ 09143A93FF39F3EF11CA2562 = {
+ explicitFileType = wrapper.application;
+ isa = PBXFileReference;
+ path = Quake3.app;
+ refType = 3;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+//090
+//091
+//092
+//093
+//094
+//130
+//131
+//132
+//133
+//134
+ 13380E0900ADF941C697A10E = {
+ fileRef = 012ADA4C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E0B00ADFA16C697A10E = {
+ fileRef = 012ADA5700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E0C00ADFA72C697A10E = {
+ fileRef = 012ADA5600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E0D00ADFA94C697A10E = {
+ fileRef = 012ADA4D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E0E00ADFA9EC697A10E = {
+ fileRef = 012ADA4600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E0F00ADFAACC697A10E = {
+ fileRef = 012ADA6200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E1000ADFAACC697A10E = {
+ fileRef = 012ADA6000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E1100ADFAACC697A10E = {
+ fileRef = 012ADA6100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E1200ADFACAC697A10E = {
+ fileRef = 012ADA4500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E1300ADFAD5C697A10E = {
+ fileRef = 012ADA2E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E1400ADFAD5C697A10E = {
+ fileRef = 012ADA2D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E1500ADFB0CC697A10E = {
+ fileRef = 012ADA2C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E1600ADFB0CC697A10E = {
+ fileRef = 012ADA2B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E1700ADFBFDC697A10E = {
+ fileRef = 012ADA3200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E1800ADFBFDC697A10E = {
+ fileRef = 012ADA3100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E1900ADFC10C697A10E = {
+ fileRef = 012ADA2800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E1A00ADFC10C697A10E = {
+ fileRef = 012ADA2700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E1B00ADFC22C697A10E = {
+ fileRef = 012ADA3000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E1C00ADFC22C697A10E = {
+ fileRef = 012ADA2F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E1D00ADFC32C697A10E = {
+ fileRef = 012ADA2600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E1E00ADFC32C697A10E = {
+ fileRef = 012ADA2500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E1F00ADFC43C697A10E = {
+ fileRef = 012ADA2A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E2000ADFC43C697A10E = {
+ fileRef = 012ADA2900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E2100ADFC59C697A10E = {
+ fileRef = 012ADA5C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E2200ADFC78C697A10E = {
+ fileRef = 012ADA4900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E2300ADFC85C697A10E = {
+ fileRef = 012ADA3E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E2400ADFC9CC697A10E = {
+ fileRef = 012ADA5D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E2500ADFCA7C697A10E = {
+ fileRef = 012ADA5A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E2600ADFCA7C697A10E = {
+ fileRef = 012ADA5900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E2700ADFCBDC697A10E = {
+ fileRef = 012ADA4700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E2800ADFCC8C697A10E = {
+ fileRef = 012ADA4A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E2900ADFCD1C697A10E = {
+ fileRef = 012ADA4F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E2A00ADFCEBC697A10E = {
+ fileRef = 012ADA5500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E2B00ADFCF6C697A10E = {
+ fileRef = 012ADA5400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E2C00ADFD01C697A10E = {
+ fileRef = 012ADA4800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E2D00ADFD1FC697A10E = {
+ fileRef = 012ADA4E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E2E00ADFD28C697A10E = {
+ fileRef = 012ADA5B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E2F00ADFD38C697A10E = {
+ fileRef = 012ADA5800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E3000ADFD46C697A10E = {
+ fileRef = 012ADA5000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E3100ADFD58C697A10E = {
+ fileRef = 012ADA4400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E3200ADFD71C697A10E = {
+ fileRef = 012ADA3F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E3300ADFD85C697A10E = {
+ fileRef = 012ADA4100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E3400ADFDA1C697A10E = {
+ fileRef = 012AD99700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E3500ADFDA1C697A10E = {
+ fileRef = 012AD9A100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E3600ADFDCFC697A10E = {
+ fileRef = 012ADA6200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E3700ADFDCFC697A10E = {
+ fileRef = 012ADA6100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E3800ADFDCFC697A10E = {
+ fileRef = 012ADA6000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E3900ADFDE1C697A10E = {
+ fileRef = 012ADA3E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E3B00ADFE0CC697A10E = {
+ fileRef = 012AD99C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E3C00ADFE1EC697A10E = {
+ fileRef = 012ADA3F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E3D00ADFE24C697A10E = {
+ fileRef = 012ADA4100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E3E00ADFE3DC697A10E = {
+ fileRef = 012AD99B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E3F00ADFE4AC697A10E = {
+ fileRef = 012AD99300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E4000ADFE58C697A10E = {
+ fileRef = 012AD99100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E4100ADFE6BC697A10E = {
+ fileRef = 012AD99600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E4200ADFE7AC697A10E = {
+ fileRef = 012AD99800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E4300ADFE88C697A10E = {
+ fileRef = 012AD9A300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E4400ADFE97C697A10E = {
+ fileRef = 012AD99200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E4500ADFEA7C697A10E = {
+ fileRef = 012AD99A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E4600ADFEB8C697A10E = {
+ fileRef = 012AD99000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E4700ADFEC9C697A10E = {
+ fileRef = 012AD9A200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E4800ADFED7C697A10E = {
+ fileRef = 012AD9A000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E4900ADFEE7C697A10E = {
+ fileRef = 012AD99F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E4A00ADFEF5C697A10E = {
+ fileRef = 012AD99E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E4B00ADFF05C697A10E = {
+ fileRef = 012AD99400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E4C00ADFF27C697A10E = {
+ fileRef = 012AD98E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E4F00AE0112C697A10E = {
+ fileRef = 012AD98F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E5000AE020FC697A10E = {
+ fileRef = 012AD99900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E5100AE0235C697A10E = {
+ fileRef = 012ADB4900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 13380E5200AE0235C697A10E = {
+ fileRef = 012ADB4800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+//130
+//131
+//132
+//133
+//134
+//180
+//181
+//182
+//183
+//184
+ 1895FF2E065E291B00F8B3F4 = {
+ containerPortal = 0654BA41FE8ECEE0C697A12F;
+ isa = PBXContainerItemProxy;
+ proxyType = 1;
+ remoteGlobalIDString = 4FF0904804896C0E00030DA8;
+ remoteInfo = "Quake3 G4 (Application)";
+ };
+ 1895FF33065E291B00F8B3F4 = {
+ containerPortal = 0654BA41FE8ECEE0C697A12F;
+ isa = PBXContainerItemProxy;
+ proxyType = 1;
+ remoteGlobalIDString = 0654BA5CFE8ECEE0C697A12F;
+ remoteInfo = "Quake3 (Application)";
+ };
+ 18A3D355065F6636006A719A = {
+ containerPortal = 0654BA41FE8ECEE0C697A12F;
+ isa = PBXContainerItemProxy;
+ proxyType = 1;
+ remoteGlobalIDString = 00F5ED38FEBA95B7C697A12F;
+ remoteInfo = qagame;
+ };
+ 18A3D356065F6636006A719A = {
+ isa = PBXTargetDependency;
+ target = 00F5ED38FEBA95B7C697A12F;
+ targetProxy = 18A3D355065F6636006A719A;
+ };
+ 18A3D357065F663A006A719A = {
+ containerPortal = 0654BA41FE8ECEE0C697A12F;
+ isa = PBXContainerItemProxy;
+ proxyType = 1;
+ remoteGlobalIDString = 00F5ED90FEBA9615C697A12F;
+ remoteInfo = cgame;
+ };
+ 18A3D358065F663A006A719A = {
+ isa = PBXTargetDependency;
+ target = 00F5ED90FEBA9615C697A12F;
+ targetProxy = 18A3D357065F663A006A719A;
+ };
+ 18A3D359065F663F006A719A = {
+ containerPortal = 0654BA41FE8ECEE0C697A12F;
+ isa = PBXContainerItemProxy;
+ proxyType = 1;
+ remoteGlobalIDString = 016EAE0300B4BDD1C697A10E;
+ remoteInfo = ui;
+ };
+ 18A3D35A065F663F006A719A = {
+ isa = PBXTargetDependency;
+ target = 016EAE0300B4BDD1C697A10E;
+ targetProxy = 18A3D359065F663F006A719A;
+ };
+//180
+//181
+//182
+//183
+//184
+//4F0
+//4F1
+//4F2
+//4F3
+//4F4
+ 4FB23863047AB9F60098ACF3 = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.c;
+ path = vm_ppc_new.c;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ 4FB23865047AB9F60098ACF3 = {
+ fileRef = 4FB23863047AB9F60098ACF3;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FB23867047ABF780098ACF3 = {
+ fileRef = 4FB23863047AB9F60098ACF3;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FEFFEDA047B008000719638 = {
+ fileRef = 012ADAF100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0904804896C0E00030DA8 = {
+ buildPhases = (
+ 4FF0904904896C0E00030DA8,
+ 4FF0908704896C0E00030DA8,
+ 4FF0908B04896C0E00030DA8,
+ 4FF0911D04896C0E00030DA8,
+ 4FF0912404896C0E00030DA8,
+ );
+ buildSettings = {
+ FRAMEWORK_SEARCH_PATHS = "";
+ GCC_VERSION = 3.3;
+ HEADER_SEARCH_PATHS = "";
+ INSTALL_PATH = "/Users/Shared/$(USER)/InstalledProducts";
+ LIBRARY_SEARCH_PATHS = "\"/Users/zaphod/QUAKE3/CODE/macosx/GameRanger SDK/Libraries\"";
+ OPTIMIZATION_CFLAGS = "-O2";
+ OTHER_CFLAGS = "-DMACOS_X -DBOTLIB -DMISSIONPACK -DSMP -force_cpusubtype_ALL -faltivec";
+ OTHER_LDFLAGS = "";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = "Quake3 G4";
+ SECTORDER_FLAGS = "";
+ USE_GCC3_PFE_SUPPORT = NO;
+ WARNING_CFLAGS = "-Wno-long-double -Wall -Wno-four-char-constants -Wno-unknown-pragmas";
+ WRAPPER_EXTENSION = app;
+ };
+ dependencies = (
+ );
+ isa = PBXApplicationTarget;
+ name = "Quake3 G4 (Application)";
+ productInstallPath = "/Users/Shared/$(USER)/InstalledProducts";
+ productName = Quake3;
+ productReference = 4FF0912504896C0E00030DA8;
+ productSettingsXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
+<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
+<plist version=\"1.0\">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>Quake3 G4</string>
+ <key>CFBundleGetInfoString</key>
+ <string>Quake 3 Arena 1.3.2</string>
+ <key>CFBundleIconFile</key>
+ <string>Quake3.icns</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.idsoftware.Quake3</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>Quake3</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.3.2</string>
+ <key>CFBundleSignature</key>
+ <string>IDQ3</string>
+ <key>CFBundleVersion</key>
+ <string>1.3.2</string>
+ <key>NSExtensions</key>
+ <dict/>
+ <key>NSMainNibFile</key>
+ <string>Quake3.nib</string>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+ <key>NSServices</key>
+ <array>
+ <dict>
+ <key>NSMenuItem</key>
+ <dict>
+ <key>default</key>
+ <string>Quake3/Connect To Server</string>
+ </dict>
+ <key>NSMessage</key>
+ <string>connectToServer</string>
+ <key>NSPortName</key>
+ <string>Quake3</string>
+ <key>NSSendTypes</key>
+ <array>
+ <string>NSStringPboardType</string>
+ </array>
+ </dict>
+ <dict>
+ <key>NSMenuItem</key>
+ <dict>
+ <key>default</key>
+ <string>Quake3/Perform Command</string>
+ </dict>
+ <key>NSMessage</key>
+ <string>performCommand</string>
+ <key>NSPortName</key>
+ <string>Quake3</string>
+ <key>NSSendTypes</key>
+ <array>
+ <string>NSStringPboardType</string>
+ </array>
+ </dict>
+ </array>
+</dict>
+</plist>
+";
+ };
+ 4FF0904904896C0E00030DA8 = {
+ buildActionMask = 2147483647;
+ files = (
+ 4FF0904A04896C0E00030DA8,
+ 4FF0904B04896C0E00030DA8,
+ 4FF0904C04896C0E00030DA8,
+ 4FF0904D04896C0E00030DA8,
+ 4FF0904E04896C0E00030DA8,
+ 4FF0904F04896C0E00030DA8,
+ 4FF0905004896C0E00030DA8,
+ 4FF0905104896C0E00030DA8,
+ 4FF0905204896C0E00030DA8,
+ 4FF0905304896C0E00030DA8,
+ 4FF0905404896C0E00030DA8,
+ 4FF0905504896C0E00030DA8,
+ 4FF0905604896C0E00030DA8,
+ 4FF0905704896C0E00030DA8,
+ 4FF0905804896C0E00030DA8,
+ 4FF0905904896C0E00030DA8,
+ 4FF0905A04896C0E00030DA8,
+ 4FF0905B04896C0E00030DA8,
+ 4FF0905C04896C0E00030DA8,
+ 4FF0905D04896C0E00030DA8,
+ 4FF0905E04896C0E00030DA8,
+ 4FF0905F04896C0E00030DA8,
+ 4FF0906004896C0E00030DA8,
+ 4FF0906104896C0E00030DA8,
+ 4FF0906204896C0E00030DA8,
+ 4FF0906304896C0E00030DA8,
+ 4FF0906404896C0E00030DA8,
+ 4FF0906504896C0E00030DA8,
+ 4FF0906604896C0E00030DA8,
+ 4FF0906704896C0E00030DA8,
+ 4FF0906804896C0E00030DA8,
+ 4FF0906904896C0E00030DA8,
+ 4FF0906A04896C0E00030DA8,
+ 4FF0906B04896C0E00030DA8,
+ 4FF0906C04896C0E00030DA8,
+ 4FF0906D04896C0E00030DA8,
+ 4FF0906E04896C0E00030DA8,
+ 4FF0906F04896C0E00030DA8,
+ 4FF0907004896C0E00030DA8,
+ 4FF0907104896C0E00030DA8,
+ 4FF0907204896C0E00030DA8,
+ 4FF0907304896C0E00030DA8,
+ 4FF0907404896C0E00030DA8,
+ 4FF0907504896C0E00030DA8,
+ 4FF0907604896C0E00030DA8,
+ 4FF0907704896C0E00030DA8,
+ 4FF0907804896C0E00030DA8,
+ 4FF0907904896C0E00030DA8,
+ 4FF0907A04896C0E00030DA8,
+ 4FF0907B04896C0E00030DA8,
+ 4FF0907C04896C0E00030DA8,
+ 4FF0907D04896C0E00030DA8,
+ 4FF0907E04896C0E00030DA8,
+ 4FF0907F04896C0E00030DA8,
+ 4FF0908604896C0E00030DA8,
+ );
+ isa = PBXHeadersBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 4FF0904A04896C0E00030DA8 = {
+ fileRef = 043627A600868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0904B04896C0E00030DA8 = {
+ fileRef = 043627A900868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0904C04896C0E00030DA8 = {
+ fileRef = 043627AE00868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0904D04896C0E00030DA8 = {
+ fileRef = 043627B000868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0904E04896C0E00030DA8 = {
+ fileRef = 012ADA6200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0904F04896C0E00030DA8 = {
+ fileRef = 012ADB0300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0905004896C0E00030DA8 = {
+ fileRef = 012ADB0000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0905104896C0E00030DA8 = {
+ fileRef = 012ADAEE00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0905204896C0E00030DA8 = {
+ fileRef = 012ADAF000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0905304896C0E00030DA8 = {
+ fileRef = 012ADAF200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0905404896C0E00030DA8 = {
+ fileRef = 012ADAF300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0905504896C0E00030DA8 = {
+ fileRef = 012ADAFD00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0905604896C0E00030DA8 = {
+ fileRef = 012ADAFE00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0905704896C0E00030DA8 = {
+ fileRef = 012ADB0800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0905804896C0E00030DA8 = {
+ fileRef = 012ADB0900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0905904896C0E00030DA8 = {
+ fileRef = 012ADB1400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0905A04896C0E00030DA8 = {
+ fileRef = 012ADB1A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0905B04896C0E00030DA8 = {
+ fileRef = 012ADB2400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0905C04896C0E00030DA8 = {
+ fileRef = 012AD9B000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0905D04896C0E00030DA8 = {
+ fileRef = 012AD9B100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0905E04896C0E00030DA8 = {
+ fileRef = 012AD9B400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0905F04896C0E00030DA8 = {
+ fileRef = 012AD9B700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0906004896C0E00030DA8 = {
+ fileRef = 012ADB3F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0906104896C0E00030DA8 = {
+ fileRef = 012ADA8C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0906204896C0E00030DA8 = {
+ fileRef = 012ADA9B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0906304896C0E00030DA8 = {
+ fileRef = 012ADA6C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0906404896C0E00030DA8 = {
+ fileRef = 012ADA8100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0906504896C0E00030DA8 = {
+ fileRef = 012AD93700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0906604896C0E00030DA8 = {
+ fileRef = 012AD93100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0906704896C0E00030DA8 = {
+ fileRef = 012AD93900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0906804896C0E00030DA8 = {
+ fileRef = 012AD93500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0906904896C0E00030DA8 = {
+ fileRef = 012AD93300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0906A04896C0E00030DA8 = {
+ fileRef = 012AD91E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0906B04896C0E00030DA8 = {
+ fileRef = 012AD91800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0906C04896C0E00030DA8 = {
+ fileRef = 012AD92200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0906D04896C0E00030DA8 = {
+ fileRef = 012AD90900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0906E04896C0E00030DA8 = {
+ fileRef = 012AD90E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0906F04896C0E00030DA8 = {
+ fileRef = 012AD91C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0907004896C0E00030DA8 = {
+ fileRef = 012AD91600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0907104896C0E00030DA8 = {
+ fileRef = 012AD92A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0907204896C0E00030DA8 = {
+ fileRef = 012AD91A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0907304896C0E00030DA8 = {
+ fileRef = 012AD92000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0907404896C0E00030DA8 = {
+ fileRef = 012AD93B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0907504896C0E00030DA8 = {
+ fileRef = 012AD92D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0907604896C0E00030DA8 = {
+ fileRef = 012AD92F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0907704896C0E00030DA8 = {
+ fileRef = 012AD93C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0907804896C0E00030DA8 = {
+ fileRef = 012AD91300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0907904896C0E00030DA8 = {
+ fileRef = 012AD91100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0907A04896C0E00030DA8 = {
+ fileRef = 012AD90C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0907B04896C0E00030DA8 = {
+ fileRef = 012AD90F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0907C04896C0E00030DA8 = {
+ fileRef = 012AD91400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0907D04896C0E00030DA8 = {
+ fileRef = 012AD90800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0907E04896C0E00030DA8 = {
+ fileRef = 015ECC0C00894EC0C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0907F04896C0E00030DA8 = {
+ fileRef = 011F78F200B25B65C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0908604896C0E00030DA8 = {
+ fileRef = F5ED1435037096A001F6289A;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0908704896C0E00030DA8 = {
+ buildActionMask = 2147483647;
+ files = (
+ 4FF0908804896C0E00030DA8,
+ 4FF0908904896C0E00030DA8,
+ 4FF0908A04896C0E00030DA8,
+ );
+ isa = PBXResourcesBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 4FF0908804896C0E00030DA8 = {
+ fileRef = 043627B300868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0908904896C0E00030DA8 = {
+ fileRef = 043627B200868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0908A04896C0E00030DA8 = {
+ fileRef = 043627B400868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0908B04896C0E00030DA8 = {
+ buildActionMask = 2147483647;
+ files = (
+ 4FF0908C04896C0E00030DA8,
+ 4FF0908D04896C0E00030DA8,
+ 4FF0908E04896C0E00030DA8,
+ 4FF0908F04896C0E00030DA8,
+ 4FF0909004896C0E00030DA8,
+ 4FF0909104896C0E00030DA8,
+ 4FF0909204896C0E00030DA8,
+ 4FF0909304896C0E00030DA8,
+ 4FF0909404896C0E00030DA8,
+ 4FF0909504896C0E00030DA8,
+ 4FF0909604896C0E00030DA8,
+ 4FF0909704896C0E00030DA8,
+ 4FF0909804896C0E00030DA8,
+ 4FF0909904896C0E00030DA8,
+ 4FF0909A04896C0E00030DA8,
+ 4FF0909B04896C0E00030DA8,
+ 4FF0909C04896C0E00030DA8,
+ 4FF0909D04896C0E00030DA8,
+ 4FF0909E04896C0E00030DA8,
+ 4FF0909F04896C0E00030DA8,
+ 4FF090A004896C0E00030DA8,
+ 4FF090A104896C0E00030DA8,
+ 4FF090A204896C0E00030DA8,
+ 4FF090A304896C0E00030DA8,
+ 4FF090A404896C0E00030DA8,
+ 4FF090A504896C0E00030DA8,
+ 4FF090A604896C0E00030DA8,
+ 4FF090A704896C0E00030DA8,
+ 4FF090A804896C0E00030DA8,
+ 4FF090A904896C0E00030DA8,
+ 4FF090AA04896C0E00030DA8,
+ 4FF090AB04896C0E00030DA8,
+ 4FF090AC04896C0E00030DA8,
+ 4FF090AD04896C0E00030DA8,
+ 4FF090AE04896C0E00030DA8,
+ 4FF090AF04896C0E00030DA8,
+ 4FF090B004896C0E00030DA8,
+ 4FF090B104896C0E00030DA8,
+ 4FF090B204896C0E00030DA8,
+ 4FF090B304896C0E00030DA8,
+ 4FF090B404896C0E00030DA8,
+ 4FF090B504896C0E00030DA8,
+ 4FF090B604896C0E00030DA8,
+ 4FF090B704896C0E00030DA8,
+ 4FF090B804896C0E00030DA8,
+ 4FF090B904896C0E00030DA8,
+ 4FF090BA04896C0E00030DA8,
+ 4FF090BB04896C0E00030DA8,
+ 4FF090BC04896C0E00030DA8,
+ 4FF090BD04896C0E00030DA8,
+ 4FF090BE04896C0E00030DA8,
+ 4FF090BF04896C0E00030DA8,
+ 4FF090C004896C0E00030DA8,
+ 4FF090C104896C0E00030DA8,
+ 4FF090C204896C0E00030DA8,
+ 4FF090C304896C0E00030DA8,
+ 4FF090C404896C0E00030DA8,
+ 4FF090C504896C0E00030DA8,
+ 4FF090C604896C0E00030DA8,
+ 4FF090C704896C0E00030DA8,
+ 4FF090C804896C0E00030DA8,
+ 4FF090C904896C0E00030DA8,
+ 4FF090CA04896C0E00030DA8,
+ 4FF090CB04896C0E00030DA8,
+ 4FF090CC04896C0E00030DA8,
+ 4FF090CD04896C0E00030DA8,
+ 4FF090CE04896C0E00030DA8,
+ 4FF090CF04896C0E00030DA8,
+ 4FF090D004896C0E00030DA8,
+ 4FF090D104896C0E00030DA8,
+ 4FF090D204896C0E00030DA8,
+ 4FF090D304896C0E00030DA8,
+ 4FF090D404896C0E00030DA8,
+ 4FF090D504896C0E00030DA8,
+ 4FF090D604896C0E00030DA8,
+ 4FF090D704896C0E00030DA8,
+ 4FF090D804896C0E00030DA8,
+ 4FF090D904896C0E00030DA8,
+ 4FF090DA04896C0E00030DA8,
+ 4FF090DB04896C0E00030DA8,
+ 4FF090DC04896C0E00030DA8,
+ 4FF090DD04896C0E00030DA8,
+ 4FF090DE04896C0E00030DA8,
+ 4FF090DF04896C0E00030DA8,
+ 4FF090E004896C0E00030DA8,
+ 4FF090E104896C0E00030DA8,
+ 4FF090E204896C0E00030DA8,
+ 4FF090E304896C0E00030DA8,
+ 4FF090E404896C0E00030DA8,
+ 4FF090E504896C0E00030DA8,
+ 4FF090E604896C0E00030DA8,
+ 4FF090E704896C0E00030DA8,
+ 4FF090E804896C0E00030DA8,
+ 4FF090E904896C0E00030DA8,
+ 4FF090EA04896C0E00030DA8,
+ 4FF090EB04896C0E00030DA8,
+ 4FF090EC04896C0E00030DA8,
+ 4FF090ED04896C0E00030DA8,
+ 4FF090EE04896C0E00030DA8,
+ 4FF090EF04896C0E00030DA8,
+ 4FF090F004896C0E00030DA8,
+ 4FF090F104896C0E00030DA8,
+ 4FF090F204896C0E00030DA8,
+ 4FF090F304896C0E00030DA8,
+ 4FF090F404896C0E00030DA8,
+ 4FF090F504896C0E00030DA8,
+ 4FF090F604896C0E00030DA8,
+ 4FF090F704896C0E00030DA8,
+ 4FF090F804896C0E00030DA8,
+ 4FF090F904896C0E00030DA8,
+ 4FF090FA04896C0E00030DA8,
+ 4FF090FB04896C0E00030DA8,
+ 4FF090FC04896C0E00030DA8,
+ 4FF090FD04896C0E00030DA8,
+ 4FF090FE04896C0E00030DA8,
+ 4FF090FF04896C0E00030DA8,
+ 4FF0910004896C0E00030DA8,
+ 4FF0910104896C0E00030DA8,
+ 4FF0910204896C0E00030DA8,
+ 4FF0910304896C0E00030DA8,
+ 4FF0910404896C0E00030DA8,
+ 4FF0910504896C0E00030DA8,
+ 4FF0910604896C0E00030DA8,
+ 4FF0910704896C0E00030DA8,
+ 4FF0910804896C0E00030DA8,
+ 4FF0910904896C0E00030DA8,
+ 4FF0910A04896C0E00030DA8,
+ 4FF0910B04896C0E00030DA8,
+ 4FF0910C04896C0E00030DA8,
+ 4FF0910D04896C0E00030DA8,
+ 4FF0910E04896C0E00030DA8,
+ 4FF0910F04896C0E00030DA8,
+ 4FF0911004896C0E00030DA8,
+ 4FF0911104896C0E00030DA8,
+ 4FF0911204896C0E00030DA8,
+ 4FF0911304896C0E00030DA8,
+ 4FF0911404896C0E00030DA8,
+ 4FF0911504896C0E00030DA8,
+ 4FF0911B04896C0E00030DA8,
+ 4FF0911C04896C0E00030DA8,
+ );
+ isa = PBXSourcesBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 4FF0908C04896C0E00030DA8 = {
+ fileRef = 043627A700868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0908D04896C0E00030DA8 = {
+ fileRef = 043627A800868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0908E04896C0E00030DA8 = {
+ fileRef = 043627AB00868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0908F04896C0E00030DA8 = {
+ fileRef = 043627AD00868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0909004896C0E00030DA8 = {
+ fileRef = 043627AF00868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0909104896C0E00030DA8 = {
+ fileRef = 043627B100868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0909204896C0E00030DA8 = {
+ fileRef = 012ADAF600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0909304896C0E00030DA8 = {
+ fileRef = 012ADA6100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0909404896C0E00030DA8 = {
+ fileRef = 012ADA6000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0909504896C0E00030DA8 = {
+ fileRef = 012ADB1200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0909604896C0E00030DA8 = {
+ fileRef = 012ADAF700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0909704896C0E00030DA8 = {
+ fileRef = 012ADAF800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0909804896C0E00030DA8 = {
+ fileRef = 012ADAF900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0909904896C0E00030DA8 = {
+ fileRef = 012ADB0100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0909A04896C0E00030DA8 = {
+ fileRef = 012ADB0200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0909B04896C0E00030DA8 = {
+ fileRef = 012ADAFF00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0909C04896C0E00030DA8 = {
+ fileRef = 012ADB5800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0909D04896C0E00030DA8 = {
+ fileRef = 012AD9A600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0909E04896C0E00030DA8 = {
+ fileRef = 012AD9A700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0909F04896C0E00030DA8 = {
+ fileRef = 012AD9A800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090A004896C0E00030DA8 = {
+ fileRef = 012AD9A900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090A104896C0E00030DA8 = {
+ fileRef = 012AD9AA00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090A204896C0E00030DA8 = {
+ fileRef = 012AD9AB00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090A304896C0E00030DA8 = {
+ fileRef = 012AD9AC00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090A404896C0E00030DA8 = {
+ fileRef = 012AD9AD00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090A504896C0E00030DA8 = {
+ fileRef = 012AD9AE00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090A604896C0E00030DA8 = {
+ fileRef = 012AD9AF00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090A704896C0E00030DA8 = {
+ fileRef = 012ADAED00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090A804896C0E00030DA8 = {
+ fileRef = 012ADAEF00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090A904896C0E00030DA8 = {
+ fileRef = 012ADAF400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090AA04896C0E00030DA8 = {
+ fileRef = 012ADAF500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090AB04896C0E00030DA8 = {
+ fileRef = 012ADAFA00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090AC04896C0E00030DA8 = {
+ fileRef = 012ADAFB00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090AD04896C0E00030DA8 = {
+ fileRef = 012ADAFC00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090AE04896C0E00030DA8 = {
+ fileRef = 012ADB0A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090AF04896C0E00030DA8 = {
+ fileRef = 012ADB0B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090B004896C0E00030DA8 = {
+ fileRef = 012ADB0C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090B104896C0E00030DA8 = {
+ fileRef = 012ADB0D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090B204896C0E00030DA8 = {
+ fileRef = 012ADB0E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090B304896C0E00030DA8 = {
+ fileRef = 012ADB0F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090B404896C0E00030DA8 = {
+ fileRef = 012ADB1000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090B504896C0E00030DA8 = {
+ fileRef = 012ADB1100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090B604896C0E00030DA8 = {
+ fileRef = 012ADB1300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090B704896C0E00030DA8 = {
+ fileRef = 012ADB1500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090B804896C0E00030DA8 = {
+ fileRef = 012ADB1600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090B904896C0E00030DA8 = {
+ fileRef = 012ADB1700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090BA04896C0E00030DA8 = {
+ fileRef = 012ADB1800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090BB04896C0E00030DA8 = {
+ fileRef = 012ADB1900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090BC04896C0E00030DA8 = {
+ fileRef = 012ADB1B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090BD04896C0E00030DA8 = {
+ fileRef = 012ADB1C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090BE04896C0E00030DA8 = {
+ fileRef = 012ADB1D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090BF04896C0E00030DA8 = {
+ fileRef = 012ADB1E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090C004896C0E00030DA8 = {
+ fileRef = 012ADB1F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090C104896C0E00030DA8 = {
+ fileRef = 012ADB2000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090C204896C0E00030DA8 = {
+ fileRef = 012ADB2100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090C304896C0E00030DA8 = {
+ fileRef = 012ADB2200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090C404896C0E00030DA8 = {
+ fileRef = 012ADB2500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090C504896C0E00030DA8 = {
+ fileRef = 012ADB2600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090C604896C0E00030DA8 = {
+ fileRef = 012ADB2700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090C704896C0E00030DA8 = {
+ fileRef = 012ADB2800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090C804896C0E00030DA8 = {
+ fileRef = 012ADB2900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090C904896C0E00030DA8 = {
+ fileRef = 012ADB2A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090CA04896C0E00030DA8 = {
+ fileRef = 012ADB2B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090CB04896C0E00030DA8 = {
+ fileRef = 012ADB2D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090CC04896C0E00030DA8 = {
+ fileRef = 012ADB2E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090CD04896C0E00030DA8 = {
+ fileRef = 012ADB5700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090CE04896C0E00030DA8 = {
+ fileRef = 012AD9B200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090CF04896C0E00030DA8 = {
+ fileRef = 012AD9B300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090D004896C0E00030DA8 = {
+ fileRef = 012AD9B500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090D104896C0E00030DA8 = {
+ fileRef = 012AD9B600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090D204896C0E00030DA8 = {
+ fileRef = 012AD9B800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090D304896C0E00030DA8 = {
+ fileRef = 012ADB3B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090D404896C0E00030DA8 = {
+ fileRef = 012ADB3800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090D504896C0E00030DA8 = {
+ fileRef = 012ADB3E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090D604896C0E00030DA8 = {
+ fileRef = 012ADA9800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090D704896C0E00030DA8 = {
+ fileRef = 012ADA9600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090D804896C0E00030DA8 = {
+ fileRef = 012ADA8B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090D904896C0E00030DA8 = {
+ fileRef = 012ADA6600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090DA04896C0E00030DA8 = {
+ fileRef = 012ADA7100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090DB04896C0E00030DA8 = {
+ fileRef = 012ADAA200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090DC04896C0E00030DA8 = {
+ fileRef = 012ADA6F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090DD04896C0E00030DA8 = {
+ fileRef = 012ADA7900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090DE04896C0E00030DA8 = {
+ fileRef = 012ADA6D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090DF04896C0E00030DA8 = {
+ fileRef = 012ADA7400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090E004896C0E00030DA8 = {
+ fileRef = 012ADA6B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090E104896C0E00030DA8 = {
+ fileRef = 012ADA6A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090E204896C0E00030DA8 = {
+ fileRef = 012ADA7600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090E304896C0E00030DA8 = {
+ fileRef = 012ADA6900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090E404896C0E00030DA8 = {
+ fileRef = 012ADA7500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090E504896C0E00030DA8 = {
+ fileRef = 012ADA6800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090E604896C0E00030DA8 = {
+ fileRef = 012ADA8D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090E704896C0E00030DA8 = {
+ fileRef = 012ADA7000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090E804896C0E00030DA8 = {
+ fileRef = 012ADA8500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090E904896C0E00030DA8 = {
+ fileRef = 012ADA7800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090EA04896C0E00030DA8 = {
+ fileRef = 012ADA8400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090EB04896C0E00030DA8 = {
+ fileRef = 012ADA8200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090EC04896C0E00030DA8 = {
+ fileRef = 012ADA8900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090ED04896C0E00030DA8 = {
+ fileRef = 012ADA7F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090EE04896C0E00030DA8 = {
+ fileRef = 012ADA8000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090EF04896C0E00030DA8 = {
+ fileRef = 012ADA9000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090F004896C0E00030DA8 = {
+ fileRef = 012ADA8800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090F104896C0E00030DA8 = {
+ fileRef = 012ADA7300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090F204896C0E00030DA8 = {
+ fileRef = 012ADA7B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090F304896C0E00030DA8 = {
+ fileRef = 012ADA8300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090F404896C0E00030DA8 = {
+ fileRef = 012ADA7C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090F504896C0E00030DA8 = {
+ fileRef = 012ADA7D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090F604896C0E00030DA8 = {
+ fileRef = 012ADA6E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090F704896C0E00030DA8 = {
+ fileRef = 012AD92C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090F804896C0E00030DA8 = {
+ fileRef = 012AD92400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090F904896C0E00030DA8 = {
+ fileRef = 012AD93600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090FA04896C0E00030DA8 = {
+ fileRef = 012AD93000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090FB04896C0E00030DA8 = {
+ fileRef = 012AD93800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090FC04896C0E00030DA8 = {
+ fileRef = 012AD93400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090FD04896C0E00030DA8 = {
+ fileRef = 012AD93200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090FE04896C0E00030DA8 = {
+ fileRef = 012AD92500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF090FF04896C0E00030DA8 = {
+ fileRef = 012AD92B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0910004896C0E00030DA8 = {
+ fileRef = 012AD92300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0910104896C0E00030DA8 = {
+ fileRef = 012AD92700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0910204896C0E00030DA8 = {
+ fileRef = 012AD91D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0910304896C0E00030DA8 = {
+ fileRef = 012AD91700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0910404896C0E00030DA8 = {
+ fileRef = 012AD92100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0910504896C0E00030DA8 = {
+ fileRef = 012AD90A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0910604896C0E00030DA8 = {
+ fileRef = 012AD90D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0910704896C0E00030DA8 = {
+ fileRef = 012AD91B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0910804896C0E00030DA8 = {
+ fileRef = 012AD91500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0910904896C0E00030DA8 = {
+ fileRef = 012AD92600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0910A04896C0E00030DA8 = {
+ fileRef = 012AD92900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0910B04896C0E00030DA8 = {
+ fileRef = 012AD91900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0910C04896C0E00030DA8 = {
+ fileRef = 012AD91F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0910D04896C0E00030DA8 = {
+ fileRef = 012AD93A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0910E04896C0E00030DA8 = {
+ fileRef = 012AD92E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0910F04896C0E00030DA8 = {
+ fileRef = 012AD92800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0911004896C0E00030DA8 = {
+ fileRef = 012AD91200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0911104896C0E00030DA8 = {
+ fileRef = 012AD91000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0911204896C0E00030DA8 = {
+ fileRef = 012AD90B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0911304896C0E00030DA8 = {
+ fileRef = 015ECC0D00894EC0C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0911404896C0E00030DA8 = {
+ fileRef = 016B4A3B00ACCF9FC697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0911504896C0E00030DA8 = {
+ fileRef = 016F1B6300ACDA9BC697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0911B04896C0E00030DA8 = {
+ fileRef = 4FB23863047AB9F60098ACF3;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0911C04896C0E00030DA8 = {
+ fileRef = 012ADAF100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0911D04896C0E00030DA8 = {
+ buildActionMask = 2147483647;
+ files = (
+ 4FF0911E04896C0E00030DA8,
+ 4FF0911F04896C0E00030DA8,
+ 4FF0912004896C0E00030DA8,
+ 4FF0912104896C0E00030DA8,
+ 4FF0912204896C0E00030DA8,
+ 4FF0912304896C0E00030DA8,
+ );
+ isa = PBXFrameworksBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 4FF0911E04896C0E00030DA8 = {
+ fileRef = 0654BA58FE8ECEE0C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0911F04896C0E00030DA8 = {
+ fileRef = 0654BA5AFE8ECEE0C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0912004896C0E00030DA8 = {
+ fileRef = 0654BA5BFE8ECEE0C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0912104896C0E00030DA8 = {
+ fileRef = 00E9D914FEDB4D29C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0912204896C0E00030DA8 = {
+ fileRef = F564505801E623B201F62882;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0912304896C0E00030DA8 = {
+ fileRef = 0654BA59FE8ECEE0C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0912404896C0E00030DA8 = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXRezBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 4FF0912504896C0E00030DA8 = {
+ explicitFileType = wrapper.application;
+ isa = PBXFileReference;
+ path = "Quake3 G4.app";
+ refType = 3;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 4FF0912704896C1600030DA8 = {
+ buildPhases = (
+ 4FF0912804896C1600030DA8,
+ 4FF0915C04896C1600030DA8,
+ 4FF091E004896C1600030DA8,
+ 4FF091E704896C1600030DA8,
+ );
+ buildSettings = {
+ DEBUGGING_SYMBOLS = NO;
+ GCC_VERSION = 3.3;
+ INSTALL_PATH = "";
+ LIBRARY_SEARCH_PATHS = "\"/Users/zaphod/Quake3/code/macosx/GameRanger SDK/Libraries\"";
+ OPTIMIZATION_CFLAGS = "-O2";
+ OTHER_CFLAGS = "-DMACOS_X -DBOTLIB -DMISSIONPACK -DSMP -force_cpusubtype_ALL -faltivec -falign-loops=16 -falign-jumps=16 -fstrict-aliasing ";
+ OTHER_LDFLAGS = "";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = Q3DedicatedServer;
+ REZ_EXECUTABLE = YES;
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas";
+ };
+ dependencies = (
+ );
+ isa = PBXToolTarget;
+ name = "Dedicated Server G4";
+ productInstallPath = "";
+ productName = "Dedicated Server";
+ productReference = 4FF091E804896C1600030DA8;
+ };
+ 4FF0912804896C1600030DA8 = {
+ buildActionMask = 2147483647;
+ files = (
+ 4FF0912904896C1600030DA8,
+ 4FF0912A04896C1600030DA8,
+ 4FF0912B04896C1600030DA8,
+ 4FF0912C04896C1600030DA8,
+ 4FF0912D04896C1600030DA8,
+ 4FF0912E04896C1600030DA8,
+ 4FF0912F04896C1600030DA8,
+ 4FF0913004896C1600030DA8,
+ 4FF0913104896C1600030DA8,
+ 4FF0913204896C1600030DA8,
+ 4FF0913304896C1600030DA8,
+ 4FF0913404896C1600030DA8,
+ 4FF0913504896C1600030DA8,
+ 4FF0913604896C1600030DA8,
+ 4FF0913704896C1600030DA8,
+ 4FF0913804896C1600030DA8,
+ 4FF0913904896C1600030DA8,
+ 4FF0913A04896C1600030DA8,
+ 4FF0913B04896C1600030DA8,
+ 4FF0913C04896C1600030DA8,
+ 4FF0913D04896C1600030DA8,
+ 4FF0913E04896C1600030DA8,
+ 4FF0913F04896C1600030DA8,
+ 4FF0914004896C1600030DA8,
+ 4FF0914104896C1600030DA8,
+ 4FF0914204896C1600030DA8,
+ 4FF0914304896C1600030DA8,
+ 4FF0914404896C1600030DA8,
+ 4FF0914504896C1600030DA8,
+ 4FF0914604896C1600030DA8,
+ 4FF0914704896C1600030DA8,
+ 4FF0914804896C1600030DA8,
+ 4FF0914904896C1600030DA8,
+ 4FF0914A04896C1600030DA8,
+ 4FF0914B04896C1600030DA8,
+ 4FF0914C04896C1600030DA8,
+ 4FF0914D04896C1600030DA8,
+ 4FF0914E04896C1600030DA8,
+ 4FF0914F04896C1600030DA8,
+ 4FF0915004896C1600030DA8,
+ 4FF0915104896C1600030DA8,
+ 4FF0915204896C1600030DA8,
+ 4FF0915304896C1600030DA8,
+ 4FF0915404896C1600030DA8,
+ 4FF0915604896C1600030DA8,
+ 4FF0915704896C1600030DA8,
+ 4FF0915804896C1600030DA8,
+ 4FF0915904896C1600030DA8,
+ 4FF0915A04896C1600030DA8,
+ 4FF0915B04896C1600030DA8,
+ );
+ isa = PBXHeadersBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 4FF0912904896C1600030DA8 = {
+ fileRef = 012ADB0300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0912A04896C1600030DA8 = {
+ fileRef = 012ADB0000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0912B04896C1600030DA8 = {
+ fileRef = 012ADAFE00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0912C04896C1600030DA8 = {
+ fileRef = 012ADAFD00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0912D04896C1600030DA8 = {
+ fileRef = 012ADAF300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0912E04896C1600030DA8 = {
+ fileRef = 012ADAF200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0912F04896C1600030DA8 = {
+ fileRef = 012ADAF000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0913004896C1600030DA8 = {
+ fileRef = 012ADAEE00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0913104896C1600030DA8 = {
+ fileRef = 012ADB2400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0913204896C1600030DA8 = {
+ fileRef = 012ADB3F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0913304896C1600030DA8 = {
+ fileRef = 012ADB1400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0913404896C1600030DA8 = {
+ fileRef = 012ADB1A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0913504896C1600030DA8 = {
+ fileRef = 012ADB0800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0913604896C1600030DA8 = {
+ fileRef = 012ADB0900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0913704896C1600030DA8 = {
+ fileRef = 012ADA6C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0913804896C1600030DA8 = {
+ fileRef = 012ADA8100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0913904896C1600030DA8 = {
+ fileRef = 012ADA8C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0913A04896C1600030DA8 = {
+ fileRef = 012ADA9B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0913B04896C1600030DA8 = {
+ fileRef = 012ADA6200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0913C04896C1600030DA8 = {
+ fileRef = 012AD90800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0913D04896C1600030DA8 = {
+ fileRef = 012AD90900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0913E04896C1600030DA8 = {
+ fileRef = 012AD90C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0913F04896C1600030DA8 = {
+ fileRef = 012AD90E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0914004896C1600030DA8 = {
+ fileRef = 012AD90F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0914104896C1600030DA8 = {
+ fileRef = 012AD91100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0914204896C1600030DA8 = {
+ fileRef = 012AD91300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0914304896C1600030DA8 = {
+ fileRef = 012AD91400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0914404896C1600030DA8 = {
+ fileRef = 012AD91600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0914504896C1600030DA8 = {
+ fileRef = 012AD91800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0914604896C1600030DA8 = {
+ fileRef = 012AD91A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0914704896C1600030DA8 = {
+ fileRef = 012AD91C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0914804896C1600030DA8 = {
+ fileRef = 012AD91E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0914904896C1600030DA8 = {
+ fileRef = 012AD92000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0914A04896C1600030DA8 = {
+ fileRef = 012AD92200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0914B04896C1600030DA8 = {
+ fileRef = 012AD92A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0914C04896C1600030DA8 = {
+ fileRef = 012AD92D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0914D04896C1600030DA8 = {
+ fileRef = 012AD92F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0914E04896C1600030DA8 = {
+ fileRef = 012AD93100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0914F04896C1600030DA8 = {
+ fileRef = 012AD93300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0915004896C1600030DA8 = {
+ fileRef = 012AD93500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0915104896C1600030DA8 = {
+ fileRef = 012AD93700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0915204896C1600030DA8 = {
+ fileRef = 012AD93900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0915304896C1600030DA8 = {
+ fileRef = 012AD93B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0915404896C1600030DA8 = {
+ fileRef = 012AD93C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0915604896C1600030DA8 = {
+ fileRef = 015ECC0C00894EC0C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0915704896C1600030DA8 = {
+ fileRef = 011F78F200B25B65C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0915804896C1600030DA8 = {
+ fileRef = 043627A600868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0915904896C1600030DA8 = {
+ fileRef = 043627A900868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0915A04896C1600030DA8 = {
+ fileRef = 043627B000868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0915B04896C1600030DA8 = {
+ fileRef = 043627AE00868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0915C04896C1600030DA8 = {
+ buildActionMask = 2147483647;
+ files = (
+ 4FF0915E04896C1600030DA8,
+ 4FF0915F04896C1600030DA8,
+ 4FF0916004896C1600030DA8,
+ 4FF0916104896C1600030DA8,
+ 4FF0916204896C1600030DA8,
+ 4FF0916304896C1600030DA8,
+ 4FF0916404896C1600030DA8,
+ 4FF0916504896C1600030DA8,
+ 4FF0916604896C1600030DA8,
+ 4FF0916704896C1600030DA8,
+ 4FF0916804896C1600030DA8,
+ 4FF0916904896C1600030DA8,
+ 4FF0916A04896C1600030DA8,
+ 4FF0916B04896C1600030DA8,
+ 4FF0916C04896C1600030DA8,
+ 4FF0916D04896C1600030DA8,
+ 4FF0916E04896C1600030DA8,
+ 4FF0916F04896C1600030DA8,
+ 4FF0917004896C1600030DA8,
+ 4FF0917104896C1600030DA8,
+ 4FF0917204896C1600030DA8,
+ 4FF0917304896C1600030DA8,
+ 4FF0917404896C1600030DA8,
+ 4FF0917504896C1600030DA8,
+ 4FF0917604896C1600030DA8,
+ 4FF0917704896C1600030DA8,
+ 4FF0917804896C1600030DA8,
+ 4FF0917904896C1600030DA8,
+ 4FF0917A04896C1600030DA8,
+ 4FF0917B04896C1600030DA8,
+ 4FF0917C04896C1600030DA8,
+ 4FF0917D04896C1600030DA8,
+ 4FF0917E04896C1600030DA8,
+ 4FF0917F04896C1600030DA8,
+ 4FF0918004896C1600030DA8,
+ 4FF0918104896C1600030DA8,
+ 4FF0918204896C1600030DA8,
+ 4FF0918304896C1600030DA8,
+ 4FF0918404896C1600030DA8,
+ 4FF0918504896C1600030DA8,
+ 4FF0918604896C1600030DA8,
+ 4FF0918704896C1600030DA8,
+ 4FF0918804896C1600030DA8,
+ 4FF0918904896C1600030DA8,
+ 4FF0918A04896C1600030DA8,
+ 4FF0918B04896C1600030DA8,
+ 4FF0918C04896C1600030DA8,
+ 4FF0918D04896C1600030DA8,
+ 4FF0918E04896C1600030DA8,
+ 4FF0918F04896C1600030DA8,
+ 4FF0919004896C1600030DA8,
+ 4FF0919104896C1600030DA8,
+ 4FF0919204896C1600030DA8,
+ 4FF0919304896C1600030DA8,
+ 4FF0919404896C1600030DA8,
+ 4FF0919504896C1600030DA8,
+ 4FF0919604896C1600030DA8,
+ 4FF0919704896C1600030DA8,
+ 4FF0919804896C1600030DA8,
+ 4FF0919904896C1600030DA8,
+ 4FF0919A04896C1600030DA8,
+ 4FF0919B04896C1600030DA8,
+ 4FF0919C04896C1600030DA8,
+ 4FF0919D04896C1600030DA8,
+ 4FF0919E04896C1600030DA8,
+ 4FF0919F04896C1600030DA8,
+ 4FF091A004896C1600030DA8,
+ 4FF091A104896C1600030DA8,
+ 4FF091A204896C1600030DA8,
+ 4FF091A304896C1600030DA8,
+ 4FF091A404896C1600030DA8,
+ 4FF091A504896C1600030DA8,
+ 4FF091A604896C1600030DA8,
+ 4FF091A704896C1600030DA8,
+ 4FF091A804896C1600030DA8,
+ 4FF091A904896C1600030DA8,
+ 4FF091AA04896C1600030DA8,
+ 4FF091AB04896C1600030DA8,
+ 4FF091AC04896C1600030DA8,
+ 4FF091AD04896C1600030DA8,
+ 4FF091AE04896C1600030DA8,
+ 4FF091AF04896C1600030DA8,
+ 4FF091B004896C1600030DA8,
+ 4FF091B104896C1600030DA8,
+ 4FF091B204896C1600030DA8,
+ 4FF091B304896C1600030DA8,
+ 4FF091B404896C1600030DA8,
+ 4FF091B504896C1600030DA8,
+ 4FF091B604896C1600030DA8,
+ 4FF091B704896C1600030DA8,
+ 4FF091B804896C1600030DA8,
+ 4FF091B904896C1600030DA8,
+ 4FF091BA04896C1600030DA8,
+ 4FF091BB04896C1600030DA8,
+ 4FF091BC04896C1600030DA8,
+ 4FF091BD04896C1600030DA8,
+ 4FF091BE04896C1600030DA8,
+ 4FF091BF04896C1600030DA8,
+ 4FF091C004896C1600030DA8,
+ 4FF091C104896C1600030DA8,
+ 4FF091C204896C1600030DA8,
+ 4FF091C304896C1600030DA8,
+ 4FF091C404896C1600030DA8,
+ 4FF091C504896C1600030DA8,
+ 4FF091C604896C1600030DA8,
+ 4FF091C704896C1600030DA8,
+ 4FF091C804896C1600030DA8,
+ 4FF091C904896C1600030DA8,
+ 4FF091CA04896C1600030DA8,
+ 4FF091CB04896C1600030DA8,
+ 4FF091CC04896C1600030DA8,
+ 4FF091CD04896C1600030DA8,
+ 4FF091CE04896C1600030DA8,
+ 4FF091CF04896C1600030DA8,
+ 4FF091D004896C1600030DA8,
+ 4FF091D104896C1600030DA8,
+ 4FF091D304896C1600030DA8,
+ 4FF091D404896C1600030DA8,
+ 4FF091D504896C1600030DA8,
+ 4FF091D604896C1600030DA8,
+ 4FF091D704896C1600030DA8,
+ 4FF091D804896C1600030DA8,
+ 4FF091D904896C1600030DA8,
+ 4FF091DD04896C1600030DA8,
+ 4FF091DF04896C1600030DA8,
+ );
+ isa = PBXSourcesBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 4FF0915E04896C1600030DA8 = {
+ fileRef = 012ADB0200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0915F04896C1600030DA8 = {
+ fileRef = 012ADAFF00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0916004896C1600030DA8 = {
+ fileRef = 012ADB0100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0916104896C1600030DA8 = {
+ fileRef = 012ADAFC00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0916204896C1600030DA8 = {
+ fileRef = 012ADAFB00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0916304896C1600030DA8 = {
+ fileRef = 012ADAFA00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0916404896C1600030DA8 = {
+ fileRef = 016F1B6300ACDA9BC697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0916504896C1600030DA8 = {
+ fileRef = 012ADAF900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0916604896C1600030DA8 = {
+ fileRef = 012ADAF800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0916704896C1600030DA8 = {
+ fileRef = 012ADAF700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0916804896C1600030DA8 = {
+ fileRef = 012ADAF600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0916904896C1600030DA8 = {
+ fileRef = 012ADAF500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0916A04896C1600030DA8 = {
+ fileRef = 012ADAF400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0916B04896C1600030DA8 = {
+ fileRef = 012ADAF100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0916C04896C1600030DA8 = {
+ fileRef = 012ADAEF00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0916D04896C1600030DA8 = {
+ fileRef = 012ADAED00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0916E04896C1600030DA8 = {
+ fileRef = 012ADB2500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0916F04896C1600030DA8 = {
+ fileRef = 012ADB2600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0917004896C1600030DA8 = {
+ fileRef = 012ADB2700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0917104896C1600030DA8 = {
+ fileRef = 012ADB2800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0917204896C1600030DA8 = {
+ fileRef = 012ADB2900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0917304896C1600030DA8 = {
+ fileRef = 012ADB2A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0917404896C1600030DA8 = {
+ fileRef = 012ADB2B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0917504896C1600030DA8 = {
+ fileRef = 012ADB2D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0917604896C1600030DA8 = {
+ fileRef = 012ADB2E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0917704896C1600030DA8 = {
+ fileRef = 012ADB5700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0917804896C1600030DA8 = {
+ fileRef = 012ADB5800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0917904896C1600030DA8 = {
+ fileRef = 012ADB3800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0917A04896C1600030DA8 = {
+ fileRef = 012ADB3B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0917B04896C1600030DA8 = {
+ fileRef = 012ADB3E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0917C04896C1600030DA8 = {
+ fileRef = 012ADB0A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0917D04896C1600030DA8 = {
+ fileRef = 012ADB0B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0917E04896C1600030DA8 = {
+ fileRef = 012ADB0C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0917F04896C1600030DA8 = {
+ fileRef = 012ADB0D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0918004896C1600030DA8 = {
+ fileRef = 012ADB0E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0918104896C1600030DA8 = {
+ fileRef = 012ADB0F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0918204896C1600030DA8 = {
+ fileRef = 012ADB1000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0918304896C1600030DA8 = {
+ fileRef = 012ADB1100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0918404896C1600030DA8 = {
+ fileRef = 012ADB1200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0918504896C1600030DA8 = {
+ fileRef = 012ADB1300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0918604896C1600030DA8 = {
+ fileRef = 012ADB1500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0918704896C1600030DA8 = {
+ fileRef = 012ADB1600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0918804896C1600030DA8 = {
+ fileRef = 012ADB1700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0918904896C1600030DA8 = {
+ fileRef = 012ADB1800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0918A04896C1600030DA8 = {
+ fileRef = 012ADB1900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0918B04896C1600030DA8 = {
+ fileRef = 012ADB1B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0918C04896C1600030DA8 = {
+ fileRef = 012ADB1C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0918D04896C1600030DA8 = {
+ fileRef = 012ADB1D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0918E04896C1600030DA8 = {
+ fileRef = 012ADB1E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0918F04896C1600030DA8 = {
+ fileRef = 012ADB1F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0919004896C1600030DA8 = {
+ fileRef = 012ADB2000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0919104896C1600030DA8 = {
+ fileRef = 012ADB2100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0919204896C1600030DA8 = {
+ fileRef = 012ADB2200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0919304896C1600030DA8 = {
+ fileRef = 012ADA6600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0919404896C1600030DA8 = {
+ fileRef = 012ADA6800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0919504896C1600030DA8 = {
+ fileRef = 012ADA6900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0919604896C1600030DA8 = {
+ fileRef = 012ADA6A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0919704896C1600030DA8 = {
+ fileRef = 012ADA6B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0919804896C1600030DA8 = {
+ fileRef = 012ADA6D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0919904896C1600030DA8 = {
+ fileRef = 012ADA6E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0919A04896C1600030DA8 = {
+ fileRef = 012ADA6F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0919B04896C1600030DA8 = {
+ fileRef = 012ADA7000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0919C04896C1600030DA8 = {
+ fileRef = 012ADA7100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0919D04896C1600030DA8 = {
+ fileRef = 012ADA7300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0919E04896C1600030DA8 = {
+ fileRef = 012ADA7400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF0919F04896C1600030DA8 = {
+ fileRef = 012ADA7500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091A004896C1600030DA8 = {
+ fileRef = 012ADA7600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091A104896C1600030DA8 = {
+ fileRef = 012ADA7800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091A204896C1600030DA8 = {
+ fileRef = 012ADA7900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091A304896C1600030DA8 = {
+ fileRef = 012ADA7B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091A404896C1600030DA8 = {
+ fileRef = 012ADA7C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091A504896C1600030DA8 = {
+ fileRef = 012ADA7D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091A604896C1600030DA8 = {
+ fileRef = 012ADA7F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091A704896C1600030DA8 = {
+ fileRef = 012ADA8000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091A804896C1600030DA8 = {
+ fileRef = 012ADA8200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091A904896C1600030DA8 = {
+ fileRef = 012ADA8300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091AA04896C1600030DA8 = {
+ fileRef = 012ADA8400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091AB04896C1600030DA8 = {
+ fileRef = 012ADA8500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091AC04896C1600030DA8 = {
+ fileRef = 012ADA8900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091AD04896C1600030DA8 = {
+ fileRef = 012ADA8800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091AE04896C1600030DA8 = {
+ fileRef = 012ADA8B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091AF04896C1600030DA8 = {
+ fileRef = 012ADA8D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091B004896C1600030DA8 = {
+ fileRef = 012ADA9000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091B104896C1600030DA8 = {
+ fileRef = 012ADA9600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091B204896C1600030DA8 = {
+ fileRef = 012ADA9800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091B304896C1600030DA8 = {
+ fileRef = 012ADAA200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091B404896C1600030DA8 = {
+ fileRef = 012ADA6000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091B504896C1600030DA8 = {
+ fileRef = 012ADA6100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091B604896C1600030DA8 = {
+ fileRef = 012AD90A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091B704896C1600030DA8 = {
+ fileRef = 012AD90B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091B804896C1600030DA8 = {
+ fileRef = 012AD90D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091B904896C1600030DA8 = {
+ fileRef = 012AD91000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091BA04896C1600030DA8 = {
+ fileRef = 012AD91200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091BB04896C1600030DA8 = {
+ fileRef = 012AD91500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091BC04896C1600030DA8 = {
+ fileRef = 012AD91700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091BD04896C1600030DA8 = {
+ fileRef = 012AD91900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091BE04896C1600030DA8 = {
+ fileRef = 012AD91B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091BF04896C1600030DA8 = {
+ fileRef = 012AD91D00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091C004896C1600030DA8 = {
+ fileRef = 012AD91F00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091C104896C1600030DA8 = {
+ fileRef = 012AD92100868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091C204896C1600030DA8 = {
+ fileRef = 012AD92300868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091C304896C1600030DA8 = {
+ fileRef = 012AD92400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091C404896C1600030DA8 = {
+ fileRef = 012AD92500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091C504896C1600030DA8 = {
+ fileRef = 012AD92600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091C604896C1600030DA8 = {
+ fileRef = 012AD92700868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091C704896C1600030DA8 = {
+ fileRef = 012AD92800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091C804896C1600030DA8 = {
+ fileRef = 012AD92900868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091C904896C1600030DA8 = {
+ fileRef = 012AD92B00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091CA04896C1600030DA8 = {
+ fileRef = 012AD92C00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091CB04896C1600030DA8 = {
+ fileRef = 012AD92E00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091CC04896C1600030DA8 = {
+ fileRef = 012AD93000868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091CD04896C1600030DA8 = {
+ fileRef = 012AD93200868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091CE04896C1600030DA8 = {
+ fileRef = 012AD93400868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091CF04896C1600030DA8 = {
+ fileRef = 012AD93600868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091D004896C1600030DA8 = {
+ fileRef = 012AD93800868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091D104896C1600030DA8 = {
+ fileRef = 012AD93A00868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091D304896C1600030DA8 = {
+ fileRef = 015ECC0D00894EC0C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091D404896C1600030DA8 = {
+ fileRef = 043627A700868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091D504896C1600030DA8 = {
+ fileRef = 016B4A3B00ACCF9FC697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091D604896C1600030DA8 = {
+ fileRef = 043627A800868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091D704896C1600030DA8 = {
+ fileRef = 043627AD00868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091D804896C1600030DA8 = {
+ fileRef = 043627B100868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091D904896C1600030DA8 = {
+ fileRef = 043627AF00868916C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091DD04896C1600030DA8 = {
+ fileRef = 012ADAB500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091DF04896C1600030DA8 = {
+ fileRef = 4FB23863047AB9F60098ACF3;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091E004896C1600030DA8 = {
+ buildActionMask = 2147483647;
+ files = (
+ 4FF091E104896C1600030DA8,
+ 4FF091E204896C1600030DA8,
+ 4FF091E304896C1600030DA8,
+ 4FF091E404896C1600030DA8,
+ 4FF091E504896C1600030DA8,
+ 4FF091E604896C1600030DA8,
+ );
+ isa = PBXFrameworksBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 4FF091E104896C1600030DA8 = {
+ fileRef = 0654BA58FE8ECEE0C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091E204896C1600030DA8 = {
+ fileRef = 0654BA59FE8ECEE0C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091E304896C1600030DA8 = {
+ fileRef = 00E9D914FEDB4D29C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091E404896C1600030DA8 = {
+ fileRef = 0654BA5AFE8ECEE0C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091E504896C1600030DA8 = {
+ fileRef = 0654BA5BFE8ECEE0C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091E604896C1600030DA8 = {
+ fileRef = F564505801E623B201F62882;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ 4FF091E704896C1600030DA8 = {
+ buildActionMask = 2147483647;
+ files = (
+ );
+ isa = PBXRezBuildPhase;
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 4FF091E804896C1600030DA8 = {
+ explicitFileType = "compiled.mach-o.executable";
+ isa = PBXFileReference;
+ path = Q3DedicatedServer;
+ refType = 3;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 4FF091EA04897B0000030DA8 = {
+ isa = PBXTargetDependency;
+ target = 4FF0904804896C0E00030DA8;
+ targetProxy = 1895FF2E065E291B00F8B3F4;
+ };
+//4F0
+//4F1
+//4F2
+//4F3
+//4F4
+//F50
+//F51
+//F52
+//F53
+//F54
+ F54951E80354E75E011BCB42 = {
+ fileRef = F564505801E623B201F62882;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F54951F40354EAA2011BCB42 = {
+ fileRef = 012ADAB500868211C697A10E;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F564505801E623B201F62882 = {
+ isa = PBXFileReference;
+ lastKnownFileType = wrapper.framework;
+ name = IOKit.framework;
+ path = /System/Library/Frameworks/IOKit.framework;
+ refType = 0;
+ sourceTree = "<absolute>";
+ };
+ F564505901E623B201F62882 = {
+ fileRef = F564505801E623B201F62882;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5D8C5E0035259DF0106E832 = {
+ fileRef = 0654BA59FE8ECEE0C697A12F;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ F5ED1435037096A001F6289A = {
+ fileEncoding = 30;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = splines.h;
+ refType = 4;
+ sourceTree = "<group>";
+ };
+ F5ED1436037096A001F6289A = {
+ fileRef = F5ED1435037096A001F6289A;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ };
+ rootObject = 0654BA41FE8ECEE0C697A12F;
+}
diff --git a/code/macosx/RecordDemo.zsh b/code/macosx/RecordDemo.zsh
new file mode 100755
index 0000000..88fb0d3
--- /dev/null
+++ b/code/macosx/RecordDemo.zsh
@@ -0,0 +1,9 @@
+#!/bin/zsh -x
+
+/Local/Public/bungi/BuildOutput/Quake3.app/Contents/MacOS/Quake3 \
+ +set sv_pure 0 \
+ +set g_syncronousClients 1 \
+ +map q3dm6 \
+ +record foo
+
+
diff --git a/code/macosx/banner.jpg b/code/macosx/banner.jpg
new file mode 100755
index 0000000..7087c34
--- /dev/null
+++ b/code/macosx/banner.jpg
Binary files differ
diff --git a/code/macosx/botlib.log b/code/macosx/botlib.log
new file mode 100755
index 0000000..e430ca6
--- /dev/null
+++ b/code/macosx/botlib.log
@@ -0,0 +1,196 @@
+item team_redobelisk has modelindex 0item team_blueobelisk has modelindex 0item team_neutralobelisk has modelindex 0item item_botroam has modelindex 0entity worldspawn unknown item
+entity target_delay unknown item
+entity light unknown item
+entity target_delay unknown item
+entity target_speaker unknown item
+entity trigger_multiple unknown item
+entity target_speaker unknown item
+entity trigger_multiple unknown item
+entity target_speaker unknown item
+entity trigger_multiple unknown item
+entity target_speaker unknown item
+entity trigger_multiple unknown item
+entity target_speaker unknown item
+entity trigger_multiple unknown item
+entity target_speaker unknown item
+entity trigger_multiple unknown item
+entity misc_model unknown item
+entity light unknown item
+entity light unknown item
+entity target_speaker unknown item
+entity target_speaker unknown item
+entity func_timer unknown item
+entity target_speaker unknown item
+entity target_speaker unknown item
+entity target_position unknown item
+entity info_player_intermission unknown item
+entity target_speaker unknown item
+entity func_timer unknown item
+entity target_speaker unknown item
+entity misc_model unknown item
+entity light unknown item
+entity misc_teleporter_dest unknown item
+entity target_position unknown item
+entity misc_portal_camera unknown item
+entity light unknown item
+entity light unknown item
+entity target_position unknown item
+entity light unknown item
+entity info_player_deathmatch unknown item
+entity light unknown item
+entity light unknown item
+entity info_null unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity target_position unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity info_player_deathmatch unknown item
+entity info_player_deathmatch unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity misc_model unknown item
+entity light unknown item
+entity light unknown item
+entity misc_model unknown item
+entity info_player_deathmatch unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity trigger_multiple unknown item
+entity func_timer unknown item
+entity target_speaker unknown item
+entity trigger_multiple unknown item
+entity func_timer unknown item
+entity target_speaker unknown item
+entity target_speaker unknown item
+entity trigger_teleport unknown item
+entity misc_portal_surface unknown item
+entity misc_portal_surface unknown item
+entity info_player_deathmatch unknown item
+entity misc_model unknown item
+entity light unknown item
+entity func_rotating unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity target_position unknown item
+entity light unknown item
+entity light unknown item
+entity target_position unknown item
+entity light unknown item
+entity light unknown item
+entity func_rotating unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity light unknown item
+entity misc_model unknown item
+entity misc_model unknown item
+entity func_timer unknown item
+entity target_speaker unknown item
+entity target_speaker unknown item
+entity func_timer unknown item
+entity target_speaker unknown item
+entity func_timer unknown item
+entity target_speaker unknown item
+entity func_door unknown item
+entity func_door unknown item
+entity light unknown item
+entity light unknown item
+entity misc_model unknown item
+entity light unknown item
+bots/crash_c.cskill 1073741824
+{
+ 0 Crash
+ 1 female
+ 2 0.366667
+ 3 bots/crash_w.c
+ 4 0.366667
+ 5 180
+ 6 4.166667
+ 7 0.366667
+ 8 0.366667
+ 9 0.450000
+ 10 0.450000
+ 11 0.450000
+ 12 0.450000
+ 13 0.450000
+ 14 0.450000
+ 15 0.450000
+ 16 0.366667
+ 17 0.450000
+ 18 0.450000
+ 19 0.450000
+ 20 0.450000
+ 21 bots/crash_t.c
+ 22 crash
+ 23 400
+ 24 0.400000
+ 25 1.000000
+ 26 1.000000
+ 27 1.000000
+ 28 1.000000
+ 29 1.000000
+ 30 1.000000
+ 31 1.000000
+ 32 1.000000
+ 33 1.000000
+ 34 1.000000
+ 35 1.000000
+ 36 0.000000
+ 37 0.000000
+ 38 0.000000
+ 39 0.000000
+ 40 bots/crash_i.c
+ 41 0.233333
+ 42 0.233333
+ 43 0.233333
+ 44 0.233333
+ 45 0.000000
+ 46 0.233333
+ 47 0.333333
+ 48 1.000000
+}
+item info 7 "weapon_gauntlet" has no fuzzy weight
+item info 16 "weapon_grapplinghook" has no fuzzy weight
+item info 49 "team_redobelisk" has no fuzzy weight
+item info 50 "team_blueobelisk" has no fuzzy weight
+item info 51 "team_neutralobelisk" has no fuzzy weight
diff --git a/code/macosx/macosx_display.h b/code/macosx/macosx_display.h
new file mode 100755
index 0000000..86ce93c
--- /dev/null
+++ b/code/macosx/macosx_display.h
@@ -0,0 +1,38 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+#include "tr_local.h"
+#include "macosx_local.h"
+
+@class NSDictionary;
+
+extern NSDictionary *Sys_GetMatchingDisplayMode(qboolean allowStretchedModes);
+
+extern void Sys_StoreGammaTables();
+extern void Sys_GetGammaTable(glwgamma_t *table);
+extern void Sys_SetScreenFade(glwgamma_t *table, float fraction);
+
+extern void Sys_FadeScreens();
+extern void Sys_FadeScreen(CGDirectDisplayID display);
+extern void Sys_UnfadeScreens();
+extern void Sys_UnfadeScreen(CGDirectDisplayID display, glwgamma_t *table);
+extern void Sys_ReleaseAllDisplays();
+
diff --git a/code/macosx/macosx_display.m b/code/macosx/macosx_display.m
new file mode 100755
index 0000000..b6f687c
--- /dev/null
+++ b/code/macosx/macosx_display.m
@@ -0,0 +1,373 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+
+#import "macosx_display.h"
+
+#include "tr_local.h"
+#import "macosx_local.h"
+
+#import <Foundation/Foundation.h>
+#import <IOKit/graphics/IOGraphicsTypes.h> // for interpreting the kCGDisplayIOFlags element of the display mode
+
+
+NSDictionary *Sys_GetMatchingDisplayMode(qboolean allowStretchedModes)
+{
+ NSArray *displayModes;
+ NSDictionary *mode;
+ unsigned int modeIndex, modeCount, bestModeIndex;
+ int verbose;
+ cvar_t *cMinFreq, *cMaxFreq;
+ int minFreq, maxFreq;
+ unsigned int colorDepth;
+
+ verbose = r_verbose->integer;
+
+ colorDepth = r_colorbits->integer;
+ if (colorDepth < 16 || !r_fullscreen->integer)
+ colorDepth = [[glw_state.desktopMode objectForKey: (id)kCGDisplayBitsPerPixel] intValue];
+
+ cMinFreq = ri.Cvar_Get("r_minDisplayRefresh", "0", CVAR_ARCHIVE);
+ cMaxFreq = ri.Cvar_Get("r_maxDisplayRefresh", "0", CVAR_ARCHIVE);
+
+ if (cMinFreq && cMaxFreq && cMinFreq->integer && cMaxFreq->integer &&
+ cMinFreq->integer > cMaxFreq->integer) {
+ ri.Error(ERR_FATAL, "r_minDisplayRefresh must be less than or equal to r_maxDisplayRefresh");
+ }
+
+ minFreq = cMinFreq ? cMinFreq->integer : 0;
+ maxFreq = cMaxFreq ? cMaxFreq->integer : 0;
+
+ displayModes = (NSArray *)CGDisplayAvailableModes(glw_state.display);
+ if (!displayModes) {
+ ri.Error(ERR_FATAL, "CGDisplayAvailableModes returned NULL -- 0x%0x is an invalid display", glw_state.display);
+ }
+
+ modeCount = [displayModes count];
+ if (verbose) {
+ ri.Printf(PRINT_ALL, "%d modes avaliable\n", modeCount);
+ ri.Printf(PRINT_ALL, "Current mode is %s\n", [[(id)CGDisplayCurrentMode(glw_state.display) description] cString]);
+ }
+
+ // Default to the current desktop mode
+ bestModeIndex = 0xFFFFFFFF;
+
+ for ( modeIndex = 0; modeIndex < modeCount; ++modeIndex ) {
+ id object;
+ int refresh;
+
+ mode = [displayModes objectAtIndex: modeIndex];
+ if (verbose) {
+ ri.Printf(PRINT_ALL, " mode %d -- %s\n", modeIndex, [[mode description] cString]);
+ }
+
+ // Make sure we get the right size
+ object = [mode objectForKey: (id)kCGDisplayWidth];
+
+ if ([[mode objectForKey: (id)kCGDisplayWidth] intValue] != glConfig.vidWidth ||
+ [[mode objectForKey: (id)kCGDisplayHeight] intValue] != glConfig.vidHeight) {
+ if (verbose)
+ ri.Printf(PRINT_ALL, " -- bad size\n");
+ continue;
+ }
+
+ if (!allowStretchedModes) {
+ if ([[mode objectForKey: (id)kCGDisplayIOFlags] intValue] & kDisplayModeStretchedFlag) {
+ if (verbose)
+ ri.Printf(PRINT_ALL, " -- stretched modes disallowed\n");
+ continue;
+ }
+ }
+
+ // Make sure that our frequency restrictions are observed
+ refresh = [[mode objectForKey: (id)kCGDisplayRefreshRate] intValue];
+ if (minFreq && refresh < minFreq) {
+ if (verbose)
+ ri.Printf(PRINT_ALL, " -- refresh too low\n");
+ continue;
+ }
+
+ if (maxFreq && refresh > maxFreq) {
+ if (verbose)
+ ri.Printf(PRINT_ALL, " -- refresh too high\n");
+ continue;
+ }
+
+ if ([[mode objectForKey: (id)kCGDisplayBitsPerPixel] intValue] != colorDepth) {
+ if (verbose)
+ ri.Printf(PRINT_ALL, " -- bad depth\n");
+ continue;
+ }
+
+ bestModeIndex = modeIndex;
+ if (verbose)
+ ri.Printf(PRINT_ALL, " -- OK\n", bestModeIndex);
+ }
+
+ if (verbose)
+ ri.Printf(PRINT_ALL, " bestModeIndex = %d\n", bestModeIndex);
+
+ if (bestModeIndex == 0xFFFFFFFF) {
+ ri.Printf(PRINT_ALL, "No suitable display mode available.\n");
+ return nil;
+ }
+
+ return [displayModes objectAtIndex: bestModeIndex];
+}
+
+
+#define MAX_DISPLAYS 128
+
+void Sys_GetGammaTable(glwgamma_t *table)
+{
+ CGTableCount tableSize = 512;
+ CGDisplayErr err;
+
+ table->tableSize = tableSize;
+ if (table->red)
+ free(table->red);
+ table->red = malloc(tableSize * sizeof(*table->red));
+ if (table->green)
+ free(table->green);
+ table->green = malloc(tableSize * sizeof(*table->green));
+ if (table->blue)
+ free(table->blue);
+ table->blue = malloc(tableSize * sizeof(*table->blue));
+
+ // TJW: We _could_ loop here if we get back the same size as our table, increasing the table size.
+ err = CGGetDisplayTransferByTable(table->display, tableSize, table->red, table->green, table->blue,
+&table->tableSize);
+ if (err != CGDisplayNoErr) {
+ Com_Printf("GLimp_Init: CGGetDisplayTransferByTable returned %d.\n", err);
+ table->tableSize = 0;
+ }
+}
+
+void Sys_SetGammaTable(glwgamma_t *table)
+{
+}
+
+
+void Sys_StoreGammaTables()
+{
+ // Store the original gamma for all monitors so that we can fade and unfade them all
+ CGDirectDisplayID displays[MAX_DISPLAYS];
+ CGDisplayCount displayIndex;
+ CGDisplayErr err;
+
+ err = CGGetActiveDisplayList(MAX_DISPLAYS, displays, &glw_state.displayCount);
+ if (err != CGDisplayNoErr)
+ Sys_Error("Cannot get display list -- CGGetActiveDisplayList returned %d.\n", err);
+
+ glw_state.originalDisplayGammaTables = calloc(glw_state.displayCount, sizeof(*glw_state.originalDisplayGammaTables));
+ for (displayIndex = 0; displayIndex < glw_state.displayCount; displayIndex++) {
+ glwgamma_t *table;
+
+ table = &glw_state.originalDisplayGammaTables[displayIndex];
+ table->display = displays[displayIndex];
+ Sys_GetGammaTable(table);
+ }
+}
+
+
+// This isn't a mathematically correct fade, but we don't care that much.
+void Sys_SetScreenFade(glwgamma_t *table, float fraction)
+{
+ CGTableCount tableSize;
+ CGGammaValue *red, *blue, *green;
+ CGTableCount gammaIndex;
+
+ if (!glConfig.deviceSupportsGamma)
+ return;
+
+ if (!(tableSize = table->tableSize))
+ // we couldn't get the table for this display for some reason
+ return;
+
+// Com_Printf("0x%08x %f\n", table->display, fraction);
+
+ red = glw_state.tempTable.red;
+ green = glw_state.tempTable.green;
+ blue = glw_state.tempTable.blue;
+ if (glw_state.tempTable.tableSize < tableSize) {
+ glw_state.tempTable.tableSize = tableSize;
+ red = realloc(red, sizeof(*red) * tableSize);
+ green = realloc(green, sizeof(*green) * tableSize);
+ blue = realloc(blue, sizeof(*blue) * tableSize);
+ glw_state.tempTable.red = red;
+ glw_state.tempTable.green = green;
+ glw_state.tempTable.blue = blue;
+ }
+
+ for (gammaIndex = 0; gammaIndex < table->tableSize; gammaIndex++) {
+ red[gammaIndex] = table->red[gammaIndex] * fraction;
+ blue[gammaIndex] = table->blue[gammaIndex] * fraction;
+ green[gammaIndex] = table->green[gammaIndex] * fraction;
+ }
+
+ CGSetDisplayTransferByTable(table->display, table->tableSize, red, green, blue);
+}
+
+// Fades all the active displays at the same time.
+
+#define FADE_DURATION 0.5
+void Sys_FadeScreens()
+{
+ CGDisplayCount displayIndex;
+ int stepIndex;
+ glwgamma_t *table;
+ NSTimeInterval start, current;
+ float time;
+
+ if (!glConfig.deviceSupportsGamma)
+ return;
+
+ Com_Printf("Fading all displays\n");
+
+ start = [NSDate timeIntervalSinceReferenceDate];
+ time = 0.0;
+ while (time != FADE_DURATION) {
+ current = [NSDate timeIntervalSinceReferenceDate];
+ time = current - start;
+ if (time > FADE_DURATION)
+ time = FADE_DURATION;
+
+ for (displayIndex = 0; displayIndex < glw_state.displayCount; displayIndex++) {
+ table = &glw_state.originalDisplayGammaTables[displayIndex];
+ Sys_SetScreenFade(table, 1.0 - time / FADE_DURATION);
+ }
+ }
+}
+
+void Sys_FadeScreen(CGDirectDisplayID display)
+{
+ CGDisplayCount displayIndex;
+ glwgamma_t *table;
+ int stepIndex;
+
+ if (!glConfig.deviceSupportsGamma)
+ return;
+
+ Com_Printf("Fading display 0x%08x\n", display);
+
+ for (displayIndex = 0; displayIndex < glw_state.displayCount; displayIndex++) {
+ if (display == glw_state.originalDisplayGammaTables[displayIndex].display) {
+ NSTimeInterval start, current;
+ float time;
+
+ start = [NSDate timeIntervalSinceReferenceDate];
+ time = 0.0;
+
+ table = &glw_state.originalDisplayGammaTables[displayIndex];
+ while (time != FADE_DURATION) {
+ current = [NSDate timeIntervalSinceReferenceDate];
+ time = current - start;
+ if (time > FADE_DURATION)
+ time = FADE_DURATION;
+
+ Sys_SetScreenFade(table, 1.0 - time / FADE_DURATION);
+ }
+ return;
+ }
+ }
+
+ Com_Printf("Unable to find display to fade it\n");
+}
+
+void Sys_UnfadeScreens()
+{
+ CGDisplayCount displayIndex;
+ int stepIndex;
+ glwgamma_t *table;
+ NSTimeInterval start, current;
+ float time;
+
+ if (!glConfig.deviceSupportsGamma)
+ return;
+
+ Com_Printf("Unfading all displays\n");
+
+ start = [NSDate timeIntervalSinceReferenceDate];
+ time = 0.0;
+ while (time != FADE_DURATION) {
+ current = [NSDate timeIntervalSinceReferenceDate];
+ time = current - start;
+ if (time > FADE_DURATION)
+ time = FADE_DURATION;
+
+ for (displayIndex = 0; displayIndex < glw_state.displayCount; displayIndex++) {
+ table = &glw_state.originalDisplayGammaTables[displayIndex];
+ Sys_SetScreenFade(table, time / FADE_DURATION);
+ }
+ }
+}
+
+void Sys_UnfadeScreen(CGDirectDisplayID display, glwgamma_t *table)
+{
+ CGDisplayCount displayIndex;
+ int stepIndex;
+
+ if (!glConfig.deviceSupportsGamma)
+ return;
+
+ Com_Printf("Unfading display 0x%08x\n", display);
+
+ if (table) {
+ CGTableCount i;
+
+ Com_Printf("Given table:\n");
+ for (i = 0; i < table->tableSize; i++) {
+ Com_Printf(" %f %f %f\n", table->red[i], table->blue[i], table->green[i]);
+ }
+ }
+
+ // Search for the original gamma table for the display
+ if (!table) {
+ for (displayIndex = 0; displayIndex < glw_state.displayCount; displayIndex++) {
+ if (display == glw_state.originalDisplayGammaTables[displayIndex].display) {
+ table = &glw_state.originalDisplayGammaTables[displayIndex];
+ break;
+ }
+ }
+ }
+
+ if (table) {
+ NSTimeInterval start, current;
+ float time;
+
+ start = [NSDate timeIntervalSinceReferenceDate];
+ time = 0.0;
+
+ while (time != FADE_DURATION) {
+ current = [NSDate timeIntervalSinceReferenceDate];
+ time = current - start;
+ if (time > FADE_DURATION)
+ time = FADE_DURATION;
+ Sys_SetScreenFade(table, time / FADE_DURATION);
+ }
+ return;
+ }
+
+ Com_Printf("Unable to find display to unfade it\n");
+}
+
+
+
diff --git a/code/macosx/macosx_glimp.h b/code/macosx/macosx_glimp.h
new file mode 100755
index 0000000..eeaf9f1
--- /dev/null
+++ b/code/macosx/macosx_glimp.h
@@ -0,0 +1,37 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+#include <OpenGL/OpenGL.h>
+#include <OpenGL/gl.h>
+#include <OpenGL/glu.h>
+#ifndef GL_EXT_abgr
+#include <OpenGL/glext.h>
+#endif
+
+// This can be defined to use the CGLMacro.h support which avoids looking up
+// the current context.
+//#define USE_CGLMACROS
+
+#ifdef USE_CGLMACROS
+#include "macosx_local.h"
+#define cgl_ctx glw_state._cgl_ctx
+#include <OpenGL/CGLMacro.h>
+#endif
diff --git a/code/macosx/macosx_glimp.m b/code/macosx/macosx_glimp.m
new file mode 100755
index 0000000..93e9675
--- /dev/null
+++ b/code/macosx/macosx_glimp.m
@@ -0,0 +1,1114 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+#import "macosx_glimp.h"
+
+#include "tr_local.h"
+#import "macosx_local.h"
+#import "macosx_display.h"
+#import "macosx_timers.h"
+
+#import <AppKit/AppKit.h>
+#import <Foundation/Foundation.h>
+
+#import <mach-o/dyld.h>
+#import <mach/mach.h>
+#import <mach/mach_error.h>
+
+cvar_t *r_allowSoftwareGL; // don't abort out if the pixelformat claims software
+cvar_t *r_enablerender; // Enable actual rendering
+cvar_t *r_appleTransformHint; // Enable Apple transform hint
+
+static void GLW_InitExtensions( void );
+static qboolean CreateGameWindow( qboolean isSecondTry );
+static unsigned long Sys_QueryVideoMemory();
+static CGDisplayErr Sys_CaptureActiveDisplays(void);
+
+
+glwstate_t glw_state;
+qboolean Sys_IsHidden = qfalse;
+
+#ifdef OMNI_TIMER
+OTStampList glThreadStampList;
+#endif
+
+@interface NSOpenGLContext (CGLContextAccess)
+- (CGLContextObj) cglContext;
+@end
+
+@implementation NSOpenGLContext (CGLContextAccess)
+- (CGLContextObj) cglContext;
+{
+ return _contextAuxiliary;
+}
+@end
+
+/*
+============
+CheckErrors
+============
+*/
+void CheckErrors( void )
+{
+ GLenum err;
+
+ err = qglGetError();
+ if ( err != GL_NO_ERROR ) {
+ ri.Error( ERR_FATAL, "glGetError: %s\n", qglGetString( err ) );
+ }
+}
+
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+
+unsigned int QGLBeginStarted = 0;
+
+void QGLErrorBreak(void)
+{
+}
+
+void QGLCheckError(const char *message)
+{
+ GLenum error;
+ static unsigned int errorCount = 0;
+
+ error = _glGetError();
+ if (error != GL_NO_ERROR) {
+ if (errorCount == 100) {
+ Com_Printf("100 GL errors printed ... disabling further error reporting.\n");
+ } else if (errorCount < 100) {
+ if (errorCount == 0) {
+ fprintf(stderr, "BREAK ON QGLErrorBreak to stop at the GL errors\n");
+ }
+ fprintf(stderr, "OpenGL Error(%s): 0x%04x -- %s\n", message, (int)error, gluErrorString(error));
+ QGLErrorBreak();
+ }
+ errorCount++;
+ }
+}
+#endif
+
+/*
+** GLimp_SetMode
+*/
+
+qboolean GLimp_SetMode( qboolean isSecondTry )
+{
+ if ( !CreateGameWindow(isSecondTry) ) {
+ ri.Printf( PRINT_ALL, "GLimp_Init: window could not be created!\n" );
+ return qfalse;
+ }
+
+ // draw something to show that GL is alive
+ if (r_enablerender->integer) {
+ qglClearColor( 0.5, 0.5, 0.7, 0 );
+ qglClear( GL_COLOR_BUFFER_BIT );
+ GLimp_EndFrame();
+
+ qglClearColor( 0.5, 0.5, 0.7, 0 );
+ qglClear( GL_COLOR_BUFFER_BIT );
+ GLimp_EndFrame();
+ }
+
+ Sys_UnfadeScreen(Sys_DisplayToUse(), NULL);
+
+ CheckErrors();
+
+ return qtrue;
+}
+
+/*
+ =================
+ GetPixelAttributes
+ =================
+ */
+
+#define ADD_ATTR(x) \
+do { \
+ if (attributeIndex >= attributeSize) { \
+ attributeSize *= 2; \
+ pixelAttributes = NSZoneRealloc(NULL, pixelAttributes, sizeof(*pixelAttributes) * attributeSize); \
+ } \
+ pixelAttributes[attributeIndex] = x; \
+ attributeIndex++; \
+ if (verbose) { \
+ ri.Printf(PRINT_ALL, "Adding pixel attribute: %d (%s)\n", x, #x); \
+ } \
+} while(0)
+
+static NSOpenGLPixelFormatAttribute *GetPixelAttributes()
+{
+ NSOpenGLPixelFormatAttribute *pixelAttributes;
+ unsigned int attributeIndex = 0;
+ unsigned int attributeSize = 128;
+ int verbose = 0;
+ unsigned int colorDepth;
+
+ verbose = r_verbose->integer;
+
+ pixelAttributes = NSZoneMalloc(NULL, sizeof(*pixelAttributes) * attributeSize);
+
+ if (r_fullscreen->integer) {
+ ADD_ATTR(NSOpenGLPFAFullScreen);
+
+ // Since we are fullscreen, specify the screen that we need.
+ ADD_ATTR(NSOpenGLPFAScreenMask);
+ ADD_ATTR(CGDisplayIDToOpenGLDisplayMask(Sys_DisplayToUse()));
+ }
+
+ // Require hardware acceleration unless otherwise directed
+ if (!r_allowSoftwareGL->integer) {
+ ADD_ATTR(NSOpenGLPFAAccelerated);
+ }
+
+ // Require double-buffer
+ ADD_ATTR(NSOpenGLPFADoubleBuffer);
+
+ // Specify the number of color bits. If we don't have a valid specified value or we are not full screen, use the current display mode's value.
+ ADD_ATTR(NSOpenGLPFAColorSize);
+ colorDepth = r_colorbits->integer;
+ if (colorDepth < 16)
+ colorDepth = 16;
+ else if (colorDepth > 16)
+ colorDepth = 32;
+ if (!r_fullscreen->integer)
+ colorDepth = [[glw_state.desktopMode objectForKey: (id)kCGDisplayBitsPerPixel] intValue];
+ ADD_ATTR(colorDepth);
+
+ // Specify the number of depth bits
+ ADD_ATTR(NSOpenGLPFADepthSize);
+ ADD_ATTR(r_depthbits->integer ? r_depthbits->integer : 16);
+
+ // Specify the number of stencil bits
+ if (r_stencilbits->integer) {
+ ADD_ATTR(NSOpenGLPFAStencilSize);
+ ADD_ATTR(r_stencilbits->integer);
+ }
+
+ // Terminate the list
+ ADD_ATTR(0);
+
+ return pixelAttributes;
+}
+
+// Needs to be visible to Q3Controller.m.
+void Sys_UpdateWindowMouseInputRect(void)
+{
+ NSRect windowRect, screenRect;
+ NSScreen *screen;
+
+ // It appears we need to flip the coordinate system here. This means we need
+ // to know the size of the screen.
+ screen = [glw_state.window screen];
+ screenRect = [screen frame];
+ windowRect = [glw_state.window frame];
+ windowRect.origin.y = screenRect.size.height - (windowRect.origin.y + windowRect.size.height);
+
+ Sys_SetMouseInputRect(CGRectMake(windowRect.origin.x, windowRect.origin.y,
+ windowRect.size.width, windowRect.size.height));
+}
+
+// This is needed since CGReleaseAllDisplays() restores the gamma on the displays and we want to fade it up rather than just flickering all the displays
+static void ReleaseAllDisplays()
+{
+ CGDisplayCount displayIndex;
+
+ Com_Printf("Releasing displays\n");
+ for (displayIndex = 0; displayIndex < glw_state.displayCount; displayIndex++) {
+ CGDisplayRelease(glw_state.originalDisplayGammaTables[displayIndex].display);
+ }
+}
+
+/*
+=================
+CreateGameWindow
+=================
+*/
+static qboolean CreateGameWindow( qboolean isSecondTry )
+{
+ const char *windowed[] = { "Windowed", "Fullscreen" };
+ int current_mode;
+ NSOpenGLPixelFormatAttribute *pixelAttributes;
+ NSOpenGLPixelFormat *pixelFormat;
+ CGDisplayErr err;
+
+
+ // get mode info
+ current_mode = r_mode->integer;
+ glConfig.isFullscreen = (r_fullscreen->integer != 0);
+
+ glw_state.desktopMode = (NSDictionary *)CGDisplayCurrentMode(glw_state.display);
+ if (!glw_state.desktopMode) {
+ ri.Error(ERR_FATAL, "Could not get current graphics mode for display 0x%08x\n", glw_state.display);
+ }
+
+#if 0
+ ri.Printf( PRINT_ALL, "... desktop mode %d = %dx%d %s\n", glw_state.desktopMode,
+ glw_state.desktopDesc.width, glw_state.desktopDesc.height,
+ depthStrings[glw_state.desktopDesc.depth]);
+#endif
+
+ ri.Printf( PRINT_ALL, "...setting mode %d:\n", current_mode );
+ if ( !R_GetModeInfo( &glConfig.vidWidth, &glConfig.vidHeight, &glConfig.windowAspect, current_mode ) ) {
+ ri.Printf( PRINT_ALL, " invalid mode\n" );
+ return qfalse;
+ }
+ ri.Printf( PRINT_ALL, " %d %d %s\n", glConfig.vidWidth, glConfig.vidHeight, windowed[glConfig.isFullscreen] );
+
+ if (glConfig.isFullscreen) {
+
+ // We'll set up the screen resolution first in case that effects the list of pixel
+ // formats that are available (for example, a smaller frame buffer might mean more
+ // bits for depth/stencil buffers). Allow stretched video modes if we are in fallback mode.
+ glw_state.gameMode = Sys_GetMatchingDisplayMode(isSecondTry);
+ if (!glw_state.gameMode) {
+ ri.Printf( PRINT_ALL, "Unable to find requested display mode.\n");
+ return qfalse;
+ }
+
+ // Fade all screens to black
+ Sys_FadeScreens();
+
+ err = Sys_CaptureActiveDisplays();
+ if ( err != CGDisplayNoErr ) {
+ CGDisplayRestoreColorSyncSettings();
+ ri.Printf( PRINT_ALL, " Unable to capture displays err = %d\n", err );
+ return qfalse;
+ }
+
+ err = CGDisplaySwitchToMode(glw_state.display, (CFDictionaryRef)glw_state.gameMode);
+ if ( err != CGDisplayNoErr ) {
+ CGDisplayRestoreColorSyncSettings();
+ ReleaseAllDisplays();
+ ri.Printf( PRINT_ALL, " Unable to set display mode, err = %d\n", err );
+ return qfalse;
+ }
+ } else {
+ glw_state.gameMode = glw_state.desktopMode;
+ }
+
+
+ // Get the GL pixel format
+ pixelAttributes = GetPixelAttributes();
+ pixelFormat = [[[NSOpenGLPixelFormat alloc] initWithAttributes: pixelAttributes] autorelease];
+ NSZoneFree(NULL, pixelAttributes);
+
+ if (!pixelFormat) {
+ CGDisplayRestoreColorSyncSettings();
+ CGDisplaySwitchToMode(glw_state.display, (CFDictionaryRef)glw_state.desktopMode);
+ ReleaseAllDisplays();
+ ri.Printf( PRINT_ALL, " No pixel format found\n");
+ return qfalse;
+ }
+
+ // Create a context with the desired pixel attributes
+ OSX_SetGLContext([[NSOpenGLContext alloc] initWithFormat: pixelFormat shareContext: nil]);
+ if (!OSX_GetNSGLContext()) {
+ CGDisplayRestoreColorSyncSettings();
+ CGDisplaySwitchToMode(glw_state.display, (CFDictionaryRef)glw_state.desktopMode);
+ ReleaseAllDisplays();
+ ri.Printf(PRINT_ALL, "... +[NSOpenGLContext createWithFormat:share:] failed.\n" );
+ return qfalse;
+ }
+
+ if (!glConfig.isFullscreen) {
+ cvar_t *vid_xpos;
+ cvar_t *vid_ypos;
+ NSRect windowRect;
+
+ vid_xpos = ri.Cvar_Get( "vid_xpos", "100", CVAR_ARCHIVE );
+ vid_ypos = ri.Cvar_Get( "vid_ypos", "100", CVAR_ARCHIVE );
+
+ // Create a window of the desired size
+ windowRect.origin.x = vid_xpos->integer;
+ windowRect.origin.y = vid_ypos->integer;
+ windowRect.size.width = glConfig.vidWidth;
+ windowRect.size.height = glConfig.vidHeight;
+
+ glw_state.window = [[NSWindow alloc] initWithContentRect:windowRect
+ styleMask:NSTitledWindowMask
+ backing:NSBackingStoreRetained
+ defer:NO];
+
+ [glw_state.window setTitle: @"Quake3"];
+
+ [glw_state.window orderFront: nil];
+
+ // Always get mouse moved events (if mouse support is turned off (rare)
+ // the event system will filter them out.
+ [glw_state.window setAcceptsMouseMovedEvents: YES];
+
+ // Direct the context to draw in this window
+ [OSX_GetNSGLContext() setView: [glw_state.window contentView]];
+
+ // Sync input rect with where the window actually is...
+ Sys_UpdateWindowMouseInputRect();
+ } else {
+ CGLError err;
+
+ err = CGLSetFullScreen(OSX_GetCGLContext());
+ if (err) {
+ CGDisplayRestoreColorSyncSettings();
+ CGDisplaySwitchToMode(glw_state.display, (CFDictionaryRef)glw_state.desktopMode);
+ ReleaseAllDisplays();
+ Com_Printf("CGLSetFullScreen -> %d (%s)\n", err, CGLErrorString(err));
+ return qfalse;
+ }
+
+ Sys_SetMouseInputRect(CGDisplayBounds(glw_state.display));
+ }
+
+
+#ifndef USE_CGLMACROS
+ // Make this the current context
+ OSX_GLContextSetCurrent();
+#endif
+
+ // Store off the pixel format attributes that we actually got
+ [pixelFormat getValues: (long *) &glConfig.colorBits forAttribute: NSOpenGLPFAColorSize forVirtualScreen: 0];
+ [pixelFormat getValues: (long *) &glConfig.depthBits forAttribute: NSOpenGLPFADepthSize forVirtualScreen: 0];
+ [pixelFormat getValues: (long *) &glConfig.stencilBits forAttribute: NSOpenGLPFAStencilSize forVirtualScreen: 0];
+
+ glConfig.displayFrequency = [[glw_state.gameMode objectForKey: (id)kCGDisplayRefreshRate] intValue];
+
+
+ ri.Printf(PRINT_ALL, "ok\n" );
+
+ return qtrue;
+}
+
+// This can be used to temporarily disassociate the GL context from the screen so that CoreGraphics can be used to draw to the screen.
+void Sys_PauseGL ()
+{
+ if (!glw_state.glPauseCount) {
+ qglFinish (); // must do this to ensure the queue is complete
+
+ // Have to call both to actually deallocate kernel resources and free the NSSurface
+ CGLClearDrawable(OSX_GetCGLContext());
+ [OSX_GetNSGLContext() clearDrawable];
+ }
+ glw_state.glPauseCount++;
+}
+
+// This can be used to reverse the pausing caused by Sys_PauseGL()
+void Sys_ResumeGL ()
+{
+ if (glw_state.glPauseCount) {
+ glw_state.glPauseCount--;
+ if (!glw_state.glPauseCount) {
+ if (!glConfig.isFullscreen) {
+ [OSX_GetNSGLContext() setView: [glw_state.window contentView]];
+ } else {
+ CGLError err;
+
+ err = CGLSetFullScreen(OSX_GetCGLContext());
+ if (err)
+ Com_Printf("CGLSetFullScreen -> %d (%s)\n", err, CGLErrorString(err));
+ }
+ }
+ }
+}
+
+/*
+===================
+GLimp_Init
+
+Don't return unless OpenGL has been properly initialized
+===================
+*/
+
+static void GLImp_Toggle_Renderer_f(void)
+{
+ ri.Cvar_Set("r_enablerender", r_enablerender->integer ? "0" : "1");
+}
+
+#ifdef OMNI_TIMER
+static void GLImp_Dump_Stamp_List_f(void)
+{
+ OTStampListDumpToFile(glThreadStampList, "/tmp/gl_stamps");
+}
+#endif
+
+void GLimp_Init( void )
+{
+ static BOOL addedCommands = NO;
+ cvar_t *lastValidRenderer = ri.Cvar_Get( "r_lastValidRenderer", "(uninitialized)", CVAR_ARCHIVE );
+ char *buf;
+
+ if (!addedCommands) {
+ addedCommands = YES;
+
+#ifdef OMNI_TIMER
+ glThreadStampList = OTStampListCreate(64);
+ Cmd_AddCommand ("dump_stamp_list", GLImp_Dump_Stamp_List_f);
+#endif
+ Cmd_AddCommand ("toggle_renderer", GLImp_Toggle_Renderer_f);
+ }
+
+ ri.Printf( PRINT_ALL, "Initializing OpenGL subsystem\n" );
+ ri.Printf( PRINT_ALL, " Last renderer was '%s'\n", lastValidRenderer->string);
+ ri.Printf( PRINT_ALL, " r_fullscreen = %d\n", r_fullscreen->integer);
+
+ memset( &glConfig, 0, sizeof( glConfig ) );
+
+ // We only allow changing the gamma if we are full screen
+ glConfig.deviceSupportsGamma = (r_fullscreen->integer != 0);
+ if (glConfig.deviceSupportsGamma) {
+ Sys_StoreGammaTables();
+ }
+
+ r_allowSoftwareGL = ri.Cvar_Get( "r_allowSoftwareGL", "0", CVAR_LATCH );
+ r_enablerender = ri.Cvar_Get("r_enablerender", "1", 0 );
+
+ if (Sys_QueryVideoMemory() == 0 && !r_allowSoftwareGL->integer) {
+ ri.Error( ERR_FATAL, "Could not initialize OpenGL. There does not appear to be an OpenGL-supported video card in your system.\n" );
+ }
+
+ if ( ! GLimp_SetMode(qfalse) ) {
+ // fall back to the known-good mode
+ ri.Cvar_Set( "r_fullscreen", "1" );
+ ri.Cvar_Set( "r_mode", "3" );
+ ri.Cvar_Set( "r_stereo", "0" );
+ ri.Cvar_Set( "r_depthBits", "16" );
+ ri.Cvar_Set( "r_colorBits", "16" );
+ ri.Cvar_Set( "r_stencilBits", "0" );
+ if ( GLimp_SetMode(qtrue) ) {
+ ri.Printf( PRINT_ALL, "------------------\n" );
+ return;
+ }
+
+ ri.Error( ERR_FATAL, "Could not initialize OpenGL\n" );
+ return;
+ }
+
+ ri.Printf( PRINT_ALL, "------------------\n" );
+
+ // get our config strings
+ Q_strncpyz( glConfig.vendor_string, (const char *)qglGetString (GL_VENDOR), sizeof( glConfig.vendor_string ) );
+ Q_strncpyz( glConfig.renderer_string, (const char *)qglGetString (GL_RENDERER), sizeof( glConfig.renderer_string ) );
+ Q_strncpyz( glConfig.version_string, (const char *)qglGetString (GL_VERSION), sizeof( glConfig.version_string ) );
+ Q_strncpyz( glConfig.extensions_string, (const char *)qglGetString (GL_EXTENSIONS), sizeof( glConfig.extensions_string ) );
+
+ //
+ // chipset specific configuration
+ //
+ buf = malloc(strlen(glConfig.renderer_string) + 1);
+ strcpy( buf, glConfig.renderer_string );
+ Q_strlwr( buf );
+
+ ri.Cvar_Set( "r_lastValidRenderer", glConfig.renderer_string );
+ free(buf);
+
+ GLW_InitExtensions();
+
+#ifndef USE_CGLMACROS
+ if (!r_enablerender->integer)
+ OSX_GLContextClearCurrent();
+#endif
+}
+
+
+/*
+** GLimp_EndFrame
+**
+** Responsible for doing a swapbuffers and possibly for other stuff
+** as yet to be determined. Probably better not to make this a GLimp
+** function and instead do a call to GLimp_SwapBuffers.
+*/
+void GLimp_EndFrame (void)
+{
+ GLSTAMP("GLimp_EndFrame start", 0);
+
+ //
+ // swapinterval stuff
+ //
+ if ( r_swapInterval->modified ) {
+ r_swapInterval->modified = qfalse;
+
+ if ( !glConfig.stereoEnabled ) { // why?
+ [[NSOpenGLContext currentContext] setValues: (long *)&r_swapInterval->integer
+ forParameter: NSOpenGLCPSwapInterval];
+ }
+ }
+
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ QGLCheckError("GLimp_EndFrame");
+#endif
+
+ if (!glw_state.glPauseCount && !Sys_IsHidden) {
+ glw_state.bufferSwapCount++;
+ [OSX_GetNSGLContext() flushBuffer];
+ }
+
+ // Enable turning off GL at any point for performance testing
+ if (OSX_GLContextIsCurrent() != r_enablerender->integer) {
+ if (r_enablerender->integer) {
+ Com_Printf("--- Enabling Renderer ---\n");
+ OSX_GLContextSetCurrent();
+ } else {
+ Com_Printf("--- Disabling Renderer ---\n");
+ OSX_GLContextClearCurrent();
+ }
+ }
+
+ GLSTAMP("GLimp_EndFrame end", 0);
+}
+
+/*
+** GLimp_Shutdown
+**
+** This routine does all OS specific shutdown procedures for the OpenGL
+** subsystem. Under OpenGL this means NULLing out the current DC and
+** HGLRC, deleting the rendering context, and releasing the DC acquired
+** for the window. The state structure is also nulled out.
+**
+*/
+
+static void _GLimp_RestoreOriginalVideoSettings()
+{
+ CGDisplayErr err;
+
+ // CGDisplayCurrentMode lies because we've captured the display and thus we won't
+ // get any notifications about what the current display mode really is. For now,
+ // we just always force it back to what mode we remember the desktop being in.
+ if (glConfig.isFullscreen) {
+ err = CGDisplaySwitchToMode(glw_state.display, (CFDictionaryRef)glw_state.desktopMode);
+ if ( err != CGDisplayNoErr )
+ ri.Printf( PRINT_ALL, " Unable to restore display mode!\n" );
+
+ ReleaseAllDisplays();
+ }
+}
+
+void GLimp_Shutdown( void )
+{
+ CGDisplayCount displayIndex;
+
+ Com_Printf("----- Shutting down GL -----\n");
+
+ Sys_FadeScreen(Sys_DisplayToUse());
+
+ if (OSX_GetNSGLContext()) {
+#ifndef USE_CGLMACROS
+ OSX_GLContextClearCurrent();
+#endif
+ // Have to call both to actually deallocate kernel resources and free the NSSurface
+ CGLClearDrawable(OSX_GetCGLContext());
+ [OSX_GetNSGLContext() clearDrawable];
+
+ [OSX_GetNSGLContext() release];
+ OSX_SetGLContext((id)nil);
+ }
+
+ _GLimp_RestoreOriginalVideoSettings();
+
+ Sys_UnfadeScreens();
+
+ // Restore the original gamma if needed.
+ if (glConfig.deviceSupportsGamma) {
+ Com_Printf("Restoring ColorSync settings\n");
+ CGDisplayRestoreColorSyncSettings();
+ }
+
+ if (glw_state.window) {
+ [glw_state.window release];
+ glw_state.window = nil;
+ }
+
+ if (glw_state.log_fp) {
+ fclose(glw_state.log_fp);
+ glw_state.log_fp = 0;
+ }
+
+ for (displayIndex = 0; displayIndex < glw_state.displayCount; displayIndex++) {
+ free(glw_state.originalDisplayGammaTables[displayIndex].red);
+ free(glw_state.originalDisplayGammaTables[displayIndex].blue);
+ free(glw_state.originalDisplayGammaTables[displayIndex].green);
+ }
+ free(glw_state.originalDisplayGammaTables);
+ if (glw_state.tempTable.red) {
+ free(glw_state.tempTable.red);
+ free(glw_state.tempTable.blue);
+ free(glw_state.tempTable.green);
+ }
+ if (glw_state.inGameTable.red) {
+ free(glw_state.inGameTable.red);
+ free(glw_state.inGameTable.blue);
+ free(glw_state.inGameTable.green);
+ }
+
+ memset(&glConfig, 0, sizeof(glConfig));
+ memset(&glState, 0, sizeof(glState));
+ memset(&glw_state, 0, sizeof(glw_state));
+
+ Com_Printf("----- Done shutting down GL -----\n");
+}
+
+/*
+===============
+GLimp_LogComment
+
+===============
+*/
+void GLimp_LogComment( char *comment ) {
+ }
+
+/*
+===============
+GLimp_SetGamma
+
+===============
+*/
+void GLimp_SetGamma(unsigned char red[256],
+ unsigned char green[256],
+ unsigned char blue[256])
+{
+ CGGammaValue redGamma[256], greenGamma[256], blueGamma[256];
+ CGTableCount i;
+ CGDisplayErr err;
+
+ if (!glConfig.deviceSupportsGamma)
+ return;
+
+ for (i = 0; i < 256; i++) {
+ redGamma[i] = red[i] / 255.0;
+ greenGamma[i] = green[i] / 255.0;
+ blueGamma[i] = blue[i] / 255.0;
+ }
+
+ err = CGSetDisplayTransferByTable(glw_state.display, 256, redGamma, greenGamma, blueGamma);
+ if (err != CGDisplayNoErr) {
+ Com_Printf("GLimp_SetGamma: CGSetDisplayTransferByByteTable returned %d.\n", err);
+ }
+
+ // Store the gamma table that we ended up using so we can reapply it later when unhiding or to work around the bug where if you leave the game sitting and the monitor sleeps, when it wakes, the gamma isn't reset.
+ glw_state.inGameTable.display = glw_state.display;
+ Sys_GetGammaTable(&glw_state.inGameTable);
+}
+
+qboolean GLimp_ChangeMode( int mode )
+{
+ qboolean result;
+ int oldvalue = r_mode->integer;
+
+ Com_Printf("*** GLimp_ChangeMode\n");
+ r_mode->integer = mode;
+ if (!(result = GLimp_SetMode(qfalse)))
+ r_mode->integer = oldvalue;
+
+ return result;
+}
+
+/*****************************************************************************/
+
+void *qwglGetProcAddress(const char *name)
+{
+ NSSymbol symbol;
+ char *symbolName;
+
+ // Prepend a '_' for the Unix C symbol mangling convention
+ symbolName = malloc(strlen(name) + 2);
+ strcpy(symbolName + 1, name);
+ symbolName[0] = '_';
+
+ if (NSIsSymbolNameDefined(symbolName))
+ symbol = NSLookupAndBindSymbol(symbolName);
+ else
+ symbol = NULL;
+
+ free(symbolName);
+
+ if (!symbol)
+ // shouldn't happen ...
+ return NULL;
+
+ return NSAddressOfSymbol(symbol);
+}
+
+/*
+** GLW_InitExtensions
+*/
+static void GLW_InitExtensions( void )
+{
+ if ( !r_allowExtensions->integer )
+ {
+ ri.Printf( PRINT_ALL, "*** IGNORING OPENGL EXTENSIONS ***\n" );
+ return;
+ }
+
+ ri.Printf( PRINT_ALL, "Initializing OpenGL extensions\n" );
+ ri.Printf( PRINT_ALL, "... Supported extensions are %s\n", glConfig.extensions_string);
+
+ // GL_S3_s3tc
+ glConfig.textureCompression = TC_NONE;
+ if ( strstr( glConfig.extensions_string, "GL_S3_s3tc" ) )
+ {
+ if ( r_ext_compressed_textures->integer )
+ {
+ glConfig.textureCompression = TC_S3TC;
+ ri.Printf( PRINT_ALL, "...using GL_S3_s3tc\n" );
+ }
+ else
+ {
+ glConfig.textureCompression = TC_NONE;
+ ri.Printf( PRINT_ALL, "...ignoring GL_S3_s3tc\n" );
+ }
+ }
+ else
+ {
+ ri.Printf( PRINT_ALL, "...GL_S3_s3tc not found\n" );
+ }
+
+
+#ifdef GL_EXT_texture_env_add
+ // GL_EXT_texture_env_add
+ glConfig.textureEnvAddAvailable = qfalse;
+ if ( strstr( glConfig.extensions_string, "GL_EXT_texture_env_add" ) )
+ {
+ if ( r_ext_texture_env_add->integer )
+ {
+ glConfig.textureEnvAddAvailable = qtrue;
+ ri.Printf( PRINT_ALL, "...using GL_EXT_texture_env_add\n" );
+ }
+ else
+ {
+ glConfig.textureEnvAddAvailable = qfalse;
+ ri.Printf( PRINT_ALL, "...ignoring GL_EXT_texture_env_add\n" );
+ }
+ }
+ else
+ {
+ ri.Printf( PRINT_ALL, "...GL_EXT_texture_env_add not found\n" );
+ }
+#endif
+
+#ifdef GL_ARB_texture_env_add
+ // GL_ARB_texture_env_add -- only if we didn't find GL_EXT_texture_env_add
+ if (!glConfig.textureEnvAddAvailable) {
+ if ( strstr( glConfig.extensions_string, "GL_ARB_texture_env_add" ) )
+ {
+ if ( r_ext_texture_env_add->integer )
+ {
+ glConfig.textureEnvAddAvailable = qtrue;
+ ri.Printf( PRINT_ALL, "...using GL_ARB_texture_env_add\n" );
+ }
+ else
+ {
+ glConfig.textureEnvAddAvailable = qfalse;
+ ri.Printf( PRINT_ALL, "...ignoring GL_ARB_texture_env_add\n" );
+ }
+ }
+ else
+ {
+ ri.Printf( PRINT_ALL, "...GL_ARB_texture_env_add not found\n" );
+ }
+ }
+#endif
+
+
+#if 0 // Win32 does this differently than we do -- I'll provide a C function that looks the same
+ // that will do the correct ObjC stuff
+ // WGL_EXT_swap_control
+ qwglSwapIntervalEXT = ( BOOL (WINAPI *)(int)) qwglGetProcAddress( "wglSwapIntervalEXT" );
+ if ( qwglSwapIntervalEXT )
+ {
+ ri.Printf( PRINT_ALL, "...using WGL_EXT_swap_control\n" );
+ r_swapInterval->modified = qtrue; // force a set next frame
+ }
+ else
+ {
+ ri.Printf( PRINT_ALL, "...WGL_EXT_swap_control not found\n" );
+ }
+#else
+ if (r_swapInterval) {
+ ri.Printf( PRINT_ALL, "...using +[NSOpenGLContext setParameter:] for qwglSwapIntervalEXT\n" );
+ r_swapInterval->modified = qtrue; // force a set next frame
+ }
+#endif
+
+ // GL_ARB_multitexture
+ qglMultiTexCoord2fARB = NULL;
+ qglActiveTextureARB = NULL;
+ qglClientActiveTextureARB = NULL;
+ if ( strstr( glConfig.extensions_string, "GL_ARB_multitexture" ) )
+ {
+ if ( r_ext_multitexture->integer )
+ {
+ qglMultiTexCoord2fARB = ( PFNGLMULTITEXCOORD2FARBPROC ) qwglGetProcAddress( "glMultiTexCoord2fARB" );
+ qglActiveTextureARB = ( PFNGLACTIVETEXTUREARBPROC ) qwglGetProcAddress( "glActiveTextureARB" );
+ qglClientActiveTextureARB = ( PFNGLCLIENTACTIVETEXTUREARBPROC ) qwglGetProcAddress( "glClientActiveTextureARB" );
+
+ if ( qglActiveTextureARB )
+ {
+ qglGetIntegerv( GL_MAX_ACTIVE_TEXTURES_ARB, (GLint *)&glConfig.maxActiveTextures );
+
+ if ( glConfig.maxActiveTextures > 1 )
+ {
+ ri.Printf( PRINT_ALL, "...using GL_ARB_multitexture\n" );
+ }
+ else
+ {
+ qglMultiTexCoord2fARB = NULL;
+ qglActiveTextureARB = NULL;
+ qglClientActiveTextureARB = NULL;
+ ri.Printf( PRINT_ALL, "...not using GL_ARB_multitexture, < 2 texture units\n" );
+ }
+ }
+ }
+ else
+ {
+ ri.Printf( PRINT_ALL, "...ignoring GL_ARB_multitexture\n" );
+ }
+ }
+ else
+ {
+ ri.Printf( PRINT_ALL, "...GL_ARB_multitexture not found\n" );
+ }
+
+ // GL_EXT_compiled_vertex_array
+ qglLockArraysEXT = NULL;
+ qglUnlockArraysEXT = NULL;
+ if ( strstr( glConfig.extensions_string, "GL_EXT_compiled_vertex_array" ) && ( glConfig.hardwareType != GLHW_RIVA128 ) )
+ {
+ if ( r_ext_compiled_vertex_array->integer )
+ {
+ ri.Printf( PRINT_ALL, "...using GL_EXT_compiled_vertex_array\n" );
+ qglLockArraysEXT = ( void ( APIENTRY * )( GLint, GLint ) ) qwglGetProcAddress( "glLockArraysEXT" );
+ qglUnlockArraysEXT = ( void ( APIENTRY * )( void ) ) qwglGetProcAddress( "glUnlockArraysEXT" );
+ if (!qglLockArraysEXT || !qglUnlockArraysEXT) {
+ ri.Error (ERR_FATAL, "bad getprocaddress\n");
+ }
+ }
+ else
+ {
+ ri.Printf( PRINT_ALL, "...ignoring GL_EXT_compiled_vertex_array\n" );
+ }
+ }
+ else
+ {
+ ri.Printf( PRINT_ALL, "...GL_EXT_compiled_vertex_array not found\n" );
+ }
+
+#ifdef GL_APPLE_transform_hint
+ if ( strstr( glConfig.extensions_string, "GL_APPLE_transform_hint" ) ) {
+ r_appleTransformHint = ri.Cvar_Get("r_appleTransformHint", "1", CVAR_ARCHIVE );
+ if (r_appleTransformHint->value) {
+ ri.Printf( PRINT_ALL, "...using GL_APPLE_transform_hint\n");
+ qglHint(GL_TRANSFORM_HINT_APPLE, GL_FASTEST);
+ CheckErrors();
+ } else {
+ ri.Printf( PRINT_ALL, "...ignoring using GL_APPLE_transform_hint\n");
+ }
+ } else {
+ ri.Printf( PRINT_ALL, "...GL_APPLE_transform_hint not found\n" );
+ }
+#endif
+}
+
+
+#define MAX_RENDERER_INFO_COUNT 128
+
+// Returns zero if there are no hardware renderers. Otherwise, returns the max memory across all renderers (on the presumption that the screen that we'll use has the most memory).
+static unsigned long Sys_QueryVideoMemory()
+{
+ CGLError err;
+ CGLRendererInfoObj rendererInfo, rendererInfos[MAX_RENDERER_INFO_COUNT];
+ long rendererInfoIndex, rendererInfoCount = MAX_RENDERER_INFO_COUNT;
+ long rendererIndex, rendererCount;
+ long maxVRAM = 0, vram;
+ long accelerated;
+ long rendererID;
+ long totalRenderers = 0;
+
+ err = CGLQueryRendererInfo(CGDisplayIDToOpenGLDisplayMask(Sys_DisplayToUse()), rendererInfos, &rendererInfoCount);
+ if (err) {
+ Com_Printf("CGLQueryRendererInfo -> %d\n", err);
+ return vram;
+ }
+
+ //Com_Printf("rendererInfoCount = %d\n", rendererInfoCount);
+ for (rendererInfoIndex = 0; rendererInfoIndex < rendererInfoCount && totalRenderers < rendererInfoCount; rendererInfoIndex++) {
+ rendererInfo = rendererInfos[rendererInfoIndex];
+ //Com_Printf("rendererInfo: 0x%08x\n", rendererInfo);
+
+
+ err = CGLDescribeRenderer(rendererInfo, 0, kCGLRPRendererCount, &rendererCount);
+ if (err) {
+ Com_Printf("CGLDescribeRenderer(kCGLRPRendererID) -> %d\n", err);
+ continue;
+ }
+ //Com_Printf(" rendererCount: %d\n", rendererCount);
+
+ for (rendererIndex = 0; rendererIndex < rendererCount; rendererIndex++) {
+ totalRenderers++;
+ //Com_Printf(" rendererIndex: %d\n", rendererIndex);
+
+ rendererID = 0xffffffff;
+ err = CGLDescribeRenderer(rendererInfo, rendererIndex, kCGLRPRendererID, &rendererID);
+ if (err) {
+ Com_Printf("CGLDescribeRenderer(kCGLRPRendererID) -> %d\n", err);
+ continue;
+ }
+ //Com_Printf(" rendererID: 0x%08x\n", rendererID);
+
+ accelerated = 0;
+ err = CGLDescribeRenderer(rendererInfo, rendererIndex, kCGLRPAccelerated, &accelerated);
+ if (err) {
+ Com_Printf("CGLDescribeRenderer(kCGLRPAccelerated) -> %d\n", err);
+ continue;
+ }
+ //Com_Printf(" accelerated: %d\n", accelerated);
+ if (!accelerated)
+ continue;
+
+ vram = 0;
+ err = CGLDescribeRenderer(rendererInfo, rendererIndex, kCGLRPVideoMemory, &vram);
+ if (err) {
+ Com_Printf("CGLDescribeRenderer -> %d\n", err);
+ continue;
+ }
+ //Com_Printf(" vram: 0x%08x\n", vram);
+
+ // presumably we'll be running on the best card, so we'll take the max of the vrams
+ if (vram > maxVRAM)
+ maxVRAM = vram;
+ }
+
+#if 0
+ err = CGLDestroyRendererInfo(rendererInfo);
+ if (err) {
+ Com_Printf("CGLDestroyRendererInfo -> %d\n", err);
+ }
+#endif
+ }
+
+ return maxVRAM;
+}
+
+
+// We will set the Sys_IsHidden global to cause input to be handle differently (we'll just let NSApp handle events in this case). We also will unbind the GL context and restore the video mode.
+qboolean Sys_Hide()
+{
+ if (Sys_IsHidden)
+ // Eh?
+ return qfalse;
+
+ if (!r_fullscreen->integer)
+ // We only support hiding in fullscreen mode right now
+ return qfalse;
+
+ Sys_IsHidden = qtrue;
+
+ // Don't need to store the current gamma since we always keep it around in glw_state.inGameTable.
+
+ Sys_FadeScreen(Sys_DisplayToUse());
+
+ // Disassociate the GL context from the screen
+ // Have to call both to actually deallocate kernel resources and free the NSSurface
+ CGLClearDrawable(OSX_GetCGLContext());
+ [OSX_GetNSGLContext() clearDrawable];
+
+ // Restore the original video mode
+ _GLimp_RestoreOriginalVideoSettings();
+
+ // Restore the original gamma if needed.
+ if (glConfig.deviceSupportsGamma) {
+ CGDisplayRestoreColorSyncSettings();
+ }
+
+ // Release the screen(s)
+ ReleaseAllDisplays();
+
+ Sys_UnfadeScreens();
+
+ // Shut down the input system so the mouse and keyboard settings are restore to normal
+ Sys_ShutdownInput();
+
+ // Hide the application so that when the user clicks on our app icon, we'll get an unhide notification
+ [NSApp hide: nil];
+
+ return qtrue;
+}
+
+static CGDisplayErr Sys_CaptureActiveDisplays(void)
+{
+ CGDisplayErr err;
+ CGDisplayCount displayIndex;
+ for (displayIndex = 0; displayIndex < glw_state.displayCount; displayIndex++) {
+ const glwgamma_t *table;
+ table = &glw_state.originalDisplayGammaTables[displayIndex];
+ err = CGDisplayCapture(table->display);
+ if (err != CGDisplayNoErr)
+ return err;
+ }
+ return CGDisplayNoErr;
+}
+
+qboolean Sys_Unhide()
+{
+ CGDisplayErr err;
+ CGLError glErr;
+
+ if (!Sys_IsHidden)
+ // Eh?
+ return qfalse;
+
+ Sys_FadeScreens();
+
+ // Capture the screen(s)
+ err = Sys_CaptureActiveDisplays();
+ if (err != CGDisplayNoErr) {
+ Sys_UnfadeScreens();
+ ri.Printf( PRINT_ALL, "Unhide failed -- cannot capture the display again.\n" );
+ return qfalse;
+ }
+
+ // Restore the game mode
+ err = CGDisplaySwitchToMode(glw_state.display, (CFDictionaryRef)glw_state.gameMode);
+ if ( err != CGDisplayNoErr ) {
+ ReleaseAllDisplays();
+ Sys_UnfadeScreens();
+ ri.Printf( PRINT_ALL, "Unhide failed -- Unable to set display mode\n" );
+ return qfalse;
+ }
+
+ // Reassociate the GL context and the screen
+ glErr = CGLSetFullScreen(OSX_GetCGLContext());
+ if (err) {
+ ReleaseAllDisplays();
+ Sys_UnfadeScreens();
+ ri.Printf( PRINT_ALL, "Unhide failed: CGLSetFullScreen -> %d (%s)\n", err, CGLErrorString(err));
+ return qfalse;
+ }
+
+ // Restore the current context
+ [OSX_GetNSGLContext() makeCurrentContext];
+
+ // Restore the gamma that the game had set
+ Sys_UnfadeScreen(Sys_DisplayToUse(), &glw_state.inGameTable);
+
+ // Restore the input system (last so if something goes wrong we don't eat the mouse)
+ Sys_InitInput();
+
+ Sys_IsHidden = qfalse;
+ return qtrue;
+}
+
+
diff --git a/code/macosx/macosx_glsmp_mutex.m b/code/macosx/macosx_glsmp_mutex.m
new file mode 100755
index 0000000..ad3e1ef
--- /dev/null
+++ b/code/macosx/macosx_glsmp_mutex.m
@@ -0,0 +1,176 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+#import "macosx_glimp.h"
+
+#include "tr_local.h"
+#import "macosx_local.h"
+#import "macosx_display.h"
+
+#import <AppKit/AppKit.h>
+#import <Foundation/Foundation.h>
+#import <pthread.h>
+
+//
+// The main Q3 SMP API
+//
+
+static pthread_mutex_t smpMutex;
+static pthread_cond_t mainThreadCondition;
+static pthread_cond_t renderThreadCondition;
+
+static volatile qboolean smpDataChanged;
+static volatile void *smpData;
+
+
+static void *GLimp_RenderThreadWrapper(void *arg)
+{
+ Com_Printf("Render thread starting\n");
+
+ ((void (*)())arg)();
+
+#ifndef USE_CGLMACROS
+ // Unbind the context before we die
+ OSX_GLContextClearCurrent();
+#endif
+
+ Com_Printf("Render thread terminating\n");
+
+ return arg;
+}
+
+qboolean GLimp_SpawnRenderThread( void (*function)( void ) )
+{
+ pthread_t renderThread;
+ int rc;
+
+ pthread_mutex_init(&smpMutex, NULL);
+ pthread_cond_init(&mainThreadCondition, NULL);
+ pthread_cond_init(&renderThreadCondition, NULL);
+
+ rc = pthread_create(&renderThread, NULL, GLimp_RenderThreadWrapper, function);
+ if (rc) {
+ ri.Printf(PRINT_ALL, "pthread_create returned %d: %s", rc, strerror(rc));
+ return qfalse;
+ } else {
+ rc = pthread_detach(renderThread);
+ if (rc) {
+ ri.Printf(PRINT_ALL, "pthread_detach returned %d: %s", rc, strerror(rc));
+ }
+ }
+
+ return qtrue;
+}
+
+// Called in the rendering thread to wait until a command buffer is ready.
+// The command buffer returned might be NULL, indicating that the rendering thread should exit.
+void *GLimp_RendererSleep(void)
+{
+ void *data;
+
+ GLSTAMP("GLimp_RendererSleep start", 0);
+
+#ifndef USE_CGLMACROS
+ // Clear the current context while we sleep so the main thread can access it
+ OSX_GLContextClearCurrent();
+#endif
+
+ pthread_mutex_lock(&smpMutex); {
+ // Clear out any data we had and signal the main thread that we are no longer busy
+ smpData = NULL;
+ smpDataChanged = qfalse;
+ pthread_cond_signal(&mainThreadCondition);
+
+ // Wait until we get something new to work on
+ while (!smpDataChanged)
+ pthread_cond_wait(&renderThreadCondition, &smpMutex);
+
+ // Record the data (if any).
+ data = smpData;
+ } pthread_mutex_unlock(&smpMutex);
+
+#ifndef USE_CGLMACROS
+ // We are going to render a frame... retake the context
+ OSX_GLContextSetCurrent();
+#endif
+
+ GLSTAMP("GLimp_RendererSleep end", 0);
+
+ return (void *)data;
+}
+
+// Called from the main thread to wait until the rendering thread is done with the command buffer.
+void GLimp_FrontEndSleep(void)
+{
+ GLSTAMP("GLimp_FrontEndSleep start", 0);
+
+ pthread_mutex_lock(&smpMutex); {
+ while (smpData) {
+#if 0
+ struct timespec ts;
+ int result;
+
+ ts.tv_sec = 1;
+ ts.tv_nsec = 0;
+ result = pthread_cond_timedwait_relative_np(&mainThreadCondition, &smpMutex, &ts);
+ if (result) {
+ Com_Printf("GLimp_FrontEndSleep timed out. Probably due to R_SyncRenderThread called due to Com_Error being called\n");
+ break;
+ }
+#else
+ pthread_cond_wait(&mainThreadCondition, &smpMutex);
+#endif
+ }
+ } pthread_mutex_unlock(&smpMutex);
+
+
+#ifndef USE_CGLMACROS
+ // We are done waiting for the background thread, take the current context back.
+ OSX_GLContextSetCurrent();
+#endif
+
+ GLSTAMP("GLimp_FrontEndSleep end", 0);
+}
+
+// This is called in the main thread to issue another command
+// buffer to the rendering thread. This is always called AFTER
+// GLimp_FrontEndSleep, so we know that there is no command
+// pending in 'smpData'.
+void GLimp_WakeRenderer( void *data )
+{
+ GLSTAMP("GLimp_WakeRenderer start", data);
+
+#ifndef USE_CGLMACROS
+ // We want the background thread to draw stuff. Give up the current context
+ OSX_GLContextClearCurrent();
+#endif
+
+ pthread_mutex_lock(&smpMutex); {
+ // Store the new data pointer and wake up the rendering thread
+ assert(smpData == NULL);
+ smpData = data;
+ smpDataChanged = qtrue;
+ pthread_cond_signal(&renderThreadCondition);
+ } pthread_mutex_unlock(&smpMutex);
+
+ GLSTAMP("GLimp_WakeRenderer end", data);
+}
+
diff --git a/code/macosx/macosx_glsmp_null.m b/code/macosx/macosx_glsmp_null.m
new file mode 100755
index 0000000..d189e3f
--- /dev/null
+++ b/code/macosx/macosx_glsmp_null.m
@@ -0,0 +1,46 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+#import "macosx_glimp.h"
+
+#include "tr_local.h"
+#import "macosx_local.h"
+
+qboolean GLimp_SpawnRenderThread( void (*function)( void ) )
+{
+ return qfalse;
+}
+
+void *GLimp_RendererSleep(void)
+{
+ return NULL;
+}
+
+void GLimp_FrontEndSleep(void)
+{
+
+}
+
+void GLimp_WakeRenderer( void *data )
+{
+
+}
+
diff --git a/code/macosx/macosx_glsmp_ports.m b/code/macosx/macosx_glsmp_ports.m
new file mode 100755
index 0000000..ce6dc9f
--- /dev/null
+++ b/code/macosx/macosx_glsmp_ports.m
@@ -0,0 +1,425 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+#import "macosx_glimp.h"
+
+#include "tr_local.h"
+#import "macosx_local.h"
+#import "macosx_display.h"
+
+#import <AppKit/AppKit.h>
+#import <Foundation/Foundation.h>
+#import <mach/mach.h>
+#import <mach/mach_error.h>
+
+
+#warning Using Mach Ports SMP acceleration implementation
+
+/*
+===========================================================
+
+SMP acceleration
+
+===========================================================
+*/
+
+#import <pthread.h>
+
+#define USE_MACH_PORTS 1
+
+// This is a small cover layer that makes for easier calling
+
+typedef struct _MsgPort {
+#if USE_MACH_PORTS
+ mach_port_t port;
+ id nsPort;
+#else
+ pthread_mutex_t mutex;
+ pthread_cond_t condition;
+ volatile unsigned int status;
+ unsigned int msgCode;
+ void *msgData;
+#endif
+} MsgPort;
+
+static BOOL portsInited = NO;
+static pthread_mutex_t logMutex;
+
+static unsigned int renderMsgOutstanding;
+static unsigned int rendererProcessingCommand;
+
+static MsgPort rendererMsgPort;
+static MsgPort frontEndMsgPort;
+
+enum {
+ MsgNone,
+ MsgPending,
+};
+
+enum {
+ MsgCodeInvalid = 0,
+ RenderCommandMsg = 1,
+ RenderCompletedMsg = 2,
+};
+
+static /*inline*/ void MsgPortInit(MsgPort *port)
+{
+#if USE_MACH_PORTS
+ port->nsPort = [[NSMachPort alloc] init];
+ port->port = [port->nsPort machPort];
+
+ //rc = mach_port_allocate(mach_task_self(), MACH_PORT_TYPE_SEND_RECEIVE, &port->port);
+ //if (rc) {
+ // fprintf(stderr, "MsgPortInit: mach_port_allocate returned: %d: %s \n",rc, mach_error_string(rc));
+ // }
+#else
+ int rc;
+ rc = pthread_mutex_init(&port->mutex, NULL);
+ if (rc) {
+ ri.Printf(PRINT_ALL, "MsgPortInit: pthread_mutex_init returned: %d: %s\n", rc, strerror(rc));
+ }
+ rc = pthread_cond_init(&port->condition, NULL);
+ if (rc) {
+ ri.Printf(PRINT_ALL, "EventInit: pthread_cond_init returned %d: %s\n", rc, strerror(rc));
+ }
+ port->status = MsgNone;
+ port->msgCode = MsgCodeInvalid;
+ port->msgData = NULL;
+#endif
+}
+
+static /*inline*/ void _SendMsg(MsgPort *port, unsigned int msgCode, void *msgData,
+ const char *functionName, const char *portName, const char *msgName)
+{
+ int rc;
+
+#if USE_MACH_PORTS
+ mach_msg_header_t msg;
+
+ //printf("SendMsg: %s %s %s (%d %08lx)\n",functionName, portName, msgName, msgCode, msgData);
+/*
+ typedef struct
+ {
+ mach_msg_bits_t msgh_bits;
+ mach_msg_size_t msgh_size;
+ mach_port_t msgh_remote_port;
+ mach_port_t msgh_local_port;
+ mach_msg_size_t msgh_reserved;
+ mach_msg_id_t msgh_id;
+ } mach_msg_header_t;
+*/
+ msg.msgh_bits = MACH_MSGH_BITS(MACH_MSG_TYPE_COPY_SEND,MACH_MSG_TYPE_MAKE_SEND_ONCE);
+ msg.msgh_size=sizeof(msg);
+ //msg.msg_type=MSG_TYPE_NORMAL;
+ msg.msgh_local_port=MACH_PORT_NULL;
+ msg.msgh_remote_port=port->port;
+ msg.msgh_reserved = 0;
+ msg.msgh_id=(mach_msg_id_t)msgData; // HACK
+
+ rc = mach_msg_send(&msg);
+ if(rc) {
+ fprintf(stderr,"SendMsg: mach_msg_send returned %d: %s\n", rc, mach_error_string(rc));
+ }
+#else
+ //printf("SendMsg: %s %s %s (%d %08lx)\n",functionName, portName, msgName, msgCode, msgData);
+ rc = pthread_mutex_lock(&port->mutex);
+ if(rc) {
+ fprintf(stderr,"SendMsg: pthread_mutex_lock returned %d: %s\n", rc, strerror(rc));
+ }
+
+ /* Block until port is empty */
+ while(port->status != MsgNone) {
+ //fprintf(stderr, "SendMsg: %s blocking until port %s is empty\n", functionName, portName);
+ rc = pthread_cond_wait(&port->condition, &port->mutex);
+ if(rc) {
+ fprintf(stderr, "SendMsg: pthread_cond_wait returned %d: %s\n", rc, strerror(rc));
+ }
+ }
+
+ /* Queue msg */
+ port->msgCode = msgCode;
+ port->msgData = msgData;
+ port->status = MsgPending;
+
+ /* Unlock port */
+ rc = pthread_mutex_unlock(&port->mutex);
+ if(rc) {
+ fprintf(stderr, "SendMsg: pthread_mutex_unlock returned %d: %s\n", rc, strerror(rc));
+ }
+
+ /* Wake up any threads blocked waiting for a message */
+ rc = pthread_cond_broadcast(&port->condition);
+ if(rc) {
+ fprintf(stderr, "SendMsg: pthread_cond_broadcast returned %d: %s\n", rc, strerror(rc));
+ }
+#endif
+}
+
+static /*inline*/ void _WaitMsg(MsgPort *port, unsigned int *msgCode, void **msgData,
+ const char *functionName, const char *portName)
+{
+ int rc;
+#if USE_MACH_PORTS
+ mach_msg_empty_rcv_t msg;
+
+ //printf("WaitMsg: %s %s\n",functionName, portName);
+
+ msg.header.msgh_bits = MACH_MSGH_BITS(MACH_MSG_TYPE_COPY_SEND,MACH_MSG_TYPE_MAKE_SEND_ONCE);
+ msg.header.msgh_size= sizeof(msg);
+ //msg.msg_type=MSG_TYPE_NORMAL;
+ msg.header.msgh_local_port=port->port;
+ msg.header.msgh_remote_port=MACH_PORT_NULL;
+ msg.header.msgh_reserved = 0;
+ msg.header.msgh_id=(mach_msg_id_t)msgData; // HACK
+
+ rc = mach_msg_receive(&msg.header);
+ if(rc) {
+ fprintf(stderr,"SendMsg: mach_msg_receive returned %d: %s\n", rc, mach_error_string(rc));
+ }
+
+ *msgData = (void *)msg.header.msgh_id;
+ //printf("WaitMsg: %s %s got %08lx\n",functionName, portName, *msgData);
+#else
+ //printf("WaitMsg: %s %s\n",functionName, portName);
+
+ rc = pthread_mutex_lock(&port->mutex);
+ if(rc) {
+ fprintf(stderr, "WaitMsg: pthread_mutex_lock returned %d: %s\n", rc, strerror(rc));
+ }
+
+ /* Block until port is empty */
+ while(port->status != MsgPending) {
+ rc = pthread_cond_wait(&port->condition, &port->mutex);
+ if(rc) {
+ fprintf(stderr, "WaitMsg: pthread_cond_wait returned %d: %s\n", rc, strerror(rc));
+ }
+ }
+
+ /* Remove msg */
+ *msgCode = port->msgCode;
+ *msgData = port->msgData;
+
+ //printf("WaitMsg: %s %s got %d %08lx\n",functionName, portName, *msgCode, *msgData);
+
+ port->status = MsgNone;
+ port->msgCode = 0;
+ port->msgData = NULL;
+
+ rc = pthread_mutex_unlock(&port->mutex);
+ if(rc) {
+ fprintf(stderr, "WaitMsg: pthread_mutex_unlock returned %d: %s\n", rc, strerror(rc));
+ }
+
+ /* Wake up any threads blocked waiting for port to be empty. */
+ rc = pthread_cond_broadcast(&port->condition);
+ if(rc) {
+ fprintf(stderr, "SendMsg: pthread_cond_broadcast returned %d: %s\n", rc, strerror(rc));
+ }
+#endif
+}
+
+
+#define SendMsg(p, c, d) _SendMsg(p, c, d, __PRETTY_FUNCTION__, #p, #c)
+#define WaitMsg(p, c, d) _WaitMsg(p, c, d, __PRETTY_FUNCTION__, #p)
+
+#if 0
+static void _Log(const char *msg)
+{
+ int rc;
+
+ rc = pthread_mutex_lock(&logMutex);
+ if (rc)
+ ri.Printf(PRINT_ALL, "_Log: pthread_mutex_lock returned %d: %s\n", rc, strerror(rc));
+
+ fputs(msg,stderr);
+ fflush(stderr);
+
+ rc = pthread_mutex_unlock(&logMutex);
+ if (rc)
+ ri.Printf(PRINT_ALL, "_Log: pthread_mutex_unlock returned %d: %s\n", rc, strerror(rc));
+}
+#endif
+
+
+//
+// The main Q3 SMP API
+//
+
+static void (*glimpRenderThread)( void ) = NULL;
+
+static void *GLimp_RenderThreadWrapper(void *arg)
+{
+ Com_Printf("Render thread starting\n");
+
+ glimpRenderThread();
+
+#ifndef USE_CGLMACROS
+ // Unbind the context before we die
+ OSX_GLContextClearCurrent();
+#endif
+
+ // Send one last message back to front end before we die...
+ // This is somewhat of a hack.. fixme.
+ if (rendererProcessingCommand) {
+ SendMsg(&frontEndMsgPort, RenderCompletedMsg, NULL);
+ rendererProcessingCommand = NO;
+ }
+
+ Com_Printf("Render thread terminating\n");
+
+ return arg;
+}
+
+qboolean GLimp_SpawnRenderThread( void (*function)( void ) )
+{
+ pthread_t renderThread;
+ int rc;
+
+ if (!portsInited) {
+ portsInited = YES;
+ MsgPortInit(&rendererMsgPort);
+ MsgPortInit(&frontEndMsgPort);
+ renderMsgOutstanding = NO;
+ rendererProcessingCommand = NO;
+ pthread_mutex_init(&logMutex, NULL);
+ }
+
+ glimpRenderThread = function;
+
+ rc = pthread_create(&renderThread,
+ NULL, // attributes
+ GLimp_RenderThreadWrapper,
+ NULL); // argument
+ if (rc) {
+ ri.Printf(PRINT_ALL, "pthread_create returned %d: %s", rc, strerror(rc));
+ return qfalse;
+ } else {
+ rc = pthread_detach(renderThread);
+ if (rc) {
+ ri.Printf(PRINT_ALL, "pthread_detach returned %d: %s", rc, strerror(rc));
+ }
+ }
+
+ return qtrue;
+}
+
+static volatile void *smpData;
+
+// TJW - This is calling in the rendering thread to wait until another
+// command buffer is ready. The command buffer returned might be NULL,
+// indicating that the rendering thread should exit.
+void *GLimp_RendererSleep(void)
+{
+ //_Log(__PRETTY_FUNCTION__ " entered");
+ unsigned int msgCode;
+ void *msgData;
+
+ GLSTAMP("GLimp_RendererSleep start", 0);
+
+#ifndef USE_CGLMACROS
+ // Clear the current context while we sleep so the main thread can access it
+ OSX_GLContextClearCurrent();
+#endif
+
+ // Let the main thread we are idle and that no work is queued
+ //_Log("rs0\n");
+ /* If we actually had some work to do, then tell the front end we completed it. */
+ if (rendererProcessingCommand) {
+ SendMsg(&frontEndMsgPort, RenderCompletedMsg, NULL);
+ rendererProcessingCommand = NO;
+ }
+
+ // Wait for new msg
+ for (;;) {
+ WaitMsg(&rendererMsgPort, &msgCode, &msgData);
+ if (1 || msgCode == RenderCommandMsg) {
+ smpData = msgData;
+ break;
+ } else {
+ printf("renderer received unknown message: %d\n",msgCode);
+ }
+ }
+
+#ifndef USE_CGLMACROS
+ // We are going to render a frame... retake the context
+ OSX_GLContextSetCurrent();
+#endif
+
+ rendererProcessingCommand = YES;
+
+ GLSTAMP("GLimp_RendererSleep end", 0);
+
+ return (void *)smpData;
+}
+
+
+// TJW - This is from the main thread to wait until the rendering thread
+// has completed the command buffer that it has
+void GLimp_FrontEndSleep(void)
+{
+ unsigned int msgCode;
+ void *msgData;
+
+ GLSTAMP("GLimp_FrontEndSleep start", 1);
+
+ if (renderMsgOutstanding) {
+ for (;;) {
+ WaitMsg(&frontEndMsgPort, &msgCode, &msgData);
+ if(1 || msgCode == RenderCompletedMsg) {
+ break;
+ } else {
+ printf("front end received unknown message: %d\n",msgCode);
+ }
+ }
+ renderMsgOutstanding = NO;
+ }
+
+#ifndef USE_CGLMACROS
+ // We are done waiting for the background thread, take the current context back.
+ OSX_GLContextSetCurrent();
+#endif
+
+ GLSTAMP("GLimp_FrontEndSleep end", 1);
+}
+
+
+// TJW - This is called in the main thread to issue another command
+// buffer to the rendering thread. This is always called AFTER
+// GLimp_FrontEndSleep, so we know that there is no command
+// pending in 'smpData'.
+void GLimp_WakeRenderer( void *data )
+{
+ GLSTAMP("GLimp_WakeRenderer start", 1);
+
+#ifndef USE_CGLMACROS
+ // We want the background thread to draw stuff. Give up the current context
+ OSX_GLContextClearCurrent();
+#endif
+
+ SendMsg(&rendererMsgPort, RenderCommandMsg, data);
+
+ // Don't set flag saying that the renderer is processing something if it's just
+ // being told to exit.
+ //if(data != NULL)
+ renderMsgOutstanding = YES;
+
+ GLSTAMP("GLimp_WakeRenderer end", 1);
+}
diff --git a/code/macosx/macosx_input.m b/code/macosx/macosx_input.m
new file mode 100755
index 0000000..0697a86
--- /dev/null
+++ b/code/macosx/macosx_input.m
@@ -0,0 +1,916 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+#import <AppKit/AppKit.h>
+#import <Foundation/Foundation.h>
+#include <ApplicationServices/ApplicationServices.h>
+
+#import "../client/client.h"
+#import "macosx_local.h"
+#import "../renderer/tr_local.h"
+
+#import "Q3Controller.h"
+//#import "CGMouseDeltaFix.h"
+#import "macosx_timers.h"
+#import "macosx_display.h" // For Sys_SetScreenFade
+
+#import <drivers/event_status_driver.h>
+#import <sys/types.h>
+#import <sys/time.h>
+#import <unistd.h>
+
+
+static qboolean inputActive;
+
+static NSDate *distantPast;
+
+static cvar_t *in_nomouse;
+static cvar_t *in_showevents;
+static cvar_t *in_mouseLowEndSlope;
+static cvar_t *in_mouseHighEndCutoff;
+static cvar_t *in_disableOSMouseScaling;
+
+static void Sys_StartMouseInput();
+static void Sys_StopMouseInput();
+static qboolean mouseactive = qfalse;
+static BOOL inputRectValid = NO;
+static CGRect inputRect;
+static NXMouseScaling originalScaling;
+
+static unsigned int currentModifierFlags;
+
+
+
+static void Sys_PreventMouseMovement(CGPoint point)
+{
+ CGEventErr err;
+
+ //Com_Printf("**** Calling CGAssociateMouseAndMouseCursorPosition(false)\n");
+ err = CGAssociateMouseAndMouseCursorPosition(false);
+ if (err != CGEventNoErr) {
+ Sys_Error("Could not disable mouse movement, CGAssociateMouseAndMouseCursorPosition returned %d\n", err);
+ }
+
+ // Put the mouse in the position we want to leave it at
+ err = CGWarpMouseCursorPosition(point);
+ if (err != CGEventNoErr) {
+ Sys_Error("Could not disable mouse movement, CGWarpMouseCursorPosition returned %d\n", err);
+ }
+}
+
+static void Sys_ReenableMouseMovement()
+{
+ CGEventErr err;
+
+ //Com_Printf("**** Calling CGAssociateMouseAndMouseCursorPosition(true)\n");
+
+ err = CGAssociateMouseAndMouseCursorPosition(true);
+ if (err != CGEventNoErr) {
+ Sys_Error("Could not reenable mouse movement, CGAssociateMouseAndMouseCursorPosition returned %d\n", err);
+ }
+
+ // Leave the mouse where it was -- don't warp here.
+}
+
+
+void Sys_InitInput(void)
+{
+ // no input with dedicated servers
+ if ( com_dedicated->integer ) {
+ return;
+ }
+
+ // The Cvars don't seem to work really early.
+ [(Q3Controller *)[NSApp delegate] showBanner];
+
+ Com_Printf( "------- Input Initialization -------\n" );
+
+ if (!distantPast)
+ distantPast = [[NSDate distantPast] retain];
+
+ // For hide support. If we don't do this, then the command key will get stuck on when we hide (since we won't get the flags changed event when it goes up).
+ currentModifierFlags = 0;
+
+ r_fullscreen = Cvar_Get( "r_fullscreen", "1", CVAR_ARCHIVE | CVAR_LATCH );
+ in_nomouse = Cvar_Get( "in_nomouse", "0", 0 );
+ in_showevents = Cvar_Get( "in_showevents", "0", 0 );
+
+ // these defaults were arrived at via emprical testing between a Windows box and a Mac OS X box
+#define ACT_LIKE_WINDOWS
+#ifdef ACT_LIKE_WINDOWS
+ in_mouseLowEndSlope = Cvar_Get("in_mouseLowEndSlope", "3.5", CVAR_ARCHIVE);
+ if (in_mouseLowEndSlope->value < 1) {
+ Cvar_Set("in_mouseLowEndSlope", "1");
+ }
+#else
+ in_mouseLowEndSlope = Cvar_Get("in_mouseLowEndSlope", "1", CVAR_ARCHIVE);
+ if (in_mouseLowEndSlope->value < 1) {
+ Cvar_Set("in_mouseLowEndSlope", "1");
+ }
+#endif
+
+ in_mouseHighEndCutoff = Cvar_Get("in_mouseHighEndCutoff", "20", CVAR_ARCHIVE);
+ if (in_mouseLowEndSlope->value < 1) {
+ Cvar_Set("in_mouseHighEndCutoff", "1");
+ }
+ in_disableOSMouseScaling = Cvar_Get("in_disableOSMouseScaling", "1", CVAR_ARCHIVE );
+
+ glw_state.display = Sys_DisplayToUse();
+
+ inputActive = qtrue;
+
+ if ( in_nomouse->integer == 0 )
+ Sys_StartMouseInput();
+ else
+ Com_Printf( " in_nomouse is set, skipping.\n" );
+
+ Com_Printf( "------------------------------------\n" );
+}
+
+void Sys_ShutdownInput(void)
+{
+ // no input with dedicated servers
+ if ( !com_dedicated || com_dedicated->integer ) {
+ return;
+ }
+
+ Com_Printf( "------- Input Shutdown -------\n" );
+ if ( !inputActive ) {
+ return;
+ }
+ inputActive = qfalse;
+
+ if (mouseactive)
+ Sys_StopMouseInput();
+
+ Com_Printf( "------------------------------\n" );
+}
+
+static void Sys_LockMouseInInputRect(CGRect rect)
+{
+ CGPoint center;
+
+ center.x = rect.origin.x + rect.size.width / 2.0;
+ center.y = rect.origin.y + rect.size.height / 2.0;
+
+ // Now, put the mouse in the middle of the input rect (anywhere over it would do)
+ // and don't allow it to move. This means that the user won't be able to accidentally
+ // select another application.
+ Sys_PreventMouseMovement(center);
+}
+
+extern void Sys_UpdateWindowMouseInputRect(void);
+
+static void Sys_StartMouseInput()
+{
+ NXEventHandle eventStatus;
+ CGMouseDelta dx, dy;
+
+ if (mouseactive) {
+ //Com_Printf("**** Attempted to start mouse input while already started\n");
+ return;
+ }
+
+ Com_Printf("Starting mouse input\n");
+
+ mouseactive = qtrue;
+ if (inputRectValid && !glConfig.isFullscreen)
+ // Make sure that if window moved we don't hose the user...
+ Sys_UpdateWindowMouseInputRect();
+
+ Sys_LockMouseInInputRect(inputRect);
+
+ // Grab any mouse delta information to reset the last delta buffer
+ CGGetLastMouseDelta(&dx, &dy);
+
+ // Turn off mouse scaling
+ if (in_disableOSMouseScaling->integer==0 && (eventStatus = NXOpenEventStatus())) {
+ NXMouseScaling newScaling;
+
+ NXGetMouseScaling(eventStatus, &originalScaling);
+ newScaling.numScaleLevels = 1;
+ newScaling.scaleThresholds[0] = 1;
+ newScaling.scaleFactors[0] = -1;
+ NXSetMouseScaling(eventStatus, &newScaling);
+ NXCloseEventStatus(eventStatus);
+ }
+
+ [NSCursor hide];
+}
+
+static void Sys_StopMouseInput()
+{
+ NXEventHandle eventStatus;
+ if (!mouseactive) {
+ //Com_Printf("**** Attempted to stop mouse input while already stopped\n");
+ return;
+ }
+
+ Com_Printf("Stopping mouse input\n");
+
+ // Restore mouse scaling
+ if (in_disableOSMouseScaling->integer == 0 && (eventStatus = NXOpenEventStatus())) {
+ NXSetMouseScaling(eventStatus, &originalScaling);
+ NXCloseEventStatus(eventStatus);
+ }
+
+ mouseactive = qfalse;
+ Sys_ReenableMouseMovement();
+
+ [NSCursor unhide];
+}
+
+//===========================================================================
+
+#include <sys/types.h>
+#include <sys/time.h>
+#include <unistd.h>
+
+static char *Sys_ConsoleInput(void)
+{
+ extern qboolean stdin_active;
+ static char text[256];
+ int len;
+ fd_set fdset;
+ struct timeval timeout;
+
+ if (!com_dedicated || !com_dedicated->integer)
+ return NULL;
+
+ if (!stdin_active)
+ return NULL;
+
+ FD_ZERO(&fdset);
+ FD_SET(fileno(stdin), &fdset);
+ timeout.tv_sec = 0;
+ timeout.tv_usec = 0;
+ if (select (1, &fdset, NULL, NULL, &timeout) == -1 || !FD_ISSET(fileno(stdin), &fdset))
+ return NULL;
+
+ len = read (fileno(stdin), text, sizeof(text));
+ if (len == 0) { // eof!
+ stdin_active = qfalse;
+ return NULL;
+ }
+
+ if (len < 1)
+ return NULL;
+ text[len-1] = 0; // rip off the /n and terminate
+
+ return text;
+}
+
+//===========================================================================
+// Mouse input
+//===========================================================================
+
+#define MAX_DISPLAYS 128
+
+CGDirectDisplayID Sys_DisplayToUse(void)
+{
+ static BOOL gotDisplay = NO;
+ static CGDirectDisplayID displayToUse;
+
+ cvar_t *vid_screen;
+ CGDisplayErr err;
+ CGDirectDisplayID displays[MAX_DISPLAYS];
+ CGDisplayCount displayCount;
+ int displayIndex;
+
+ if (gotDisplay)
+ return displayToUse;
+ gotDisplay = YES;
+
+ err = CGGetActiveDisplayList(MAX_DISPLAYS, displays, &displayCount);
+ if (err != CGDisplayNoErr)
+ Sys_Error("Cannot get display list -- CGGetActiveDisplayList returned %d.\n", err);
+
+ // -1, the default, means to use the main screen
+ if ((vid_screen = Cvar_Get("vid_screen", "-1", CVAR_ARCHIVE)))
+ displayIndex = vid_screen->integer;
+ else
+ displayIndex = -1;
+
+ if (displayIndex < 0 || displayIndex >= displayCount)
+ // This is documented (in CGDirectDisplay.h) to be the main display. We want to
+ // return this instead of kCGDirectMainDisplay since this will allow us to compare
+ // display IDs.
+ displayToUse = displays[0];
+ else
+ displayToUse = displays[displayIndex];
+
+ return displayToUse;
+}
+
+void Sys_SetMouseInputRect(CGRect newRect)
+{
+ inputRectValid = YES;
+ inputRect = newRect;
+ //Com_Printf("**** inputRect = (%f, %f, %f, %f)\n", newRect.origin.x, newRect.origin.y, newRect.size.width, newRect.size.height);
+
+ if (mouseactive)
+ Sys_LockMouseInInputRect(inputRect);
+}
+
+
+static void Sys_ProcessMouseMovedEvent(NSEvent *mouseMovedEvent, int currentTime)
+{
+ float dx, dy;
+
+ if (!mouseactive)
+ return;
+
+ dx = [mouseMovedEvent deltaX];
+ dy = [mouseMovedEvent deltaY];
+
+ if (in_showevents->integer)
+ Com_Printf("MOUSE MOVED: %d, %d\n", dx, dy);
+
+ Sys_QueEvent(currentTime, SE_MOUSE, dx, dy, 0, NULL );
+}
+
+// If we are 'paused' (i.e., in any state that our normal key bindings aren't in effect), then interpret cmd-h and cmd-tab as hiding the application.
+static qboolean maybeHide()
+{
+ if ((currentModifierFlags & NSCommandKeyMask) == 0)
+ return qfalse;
+
+ return Sys_Hide();
+}
+
+static inline void sendEventForCharacter(NSEvent *event, unichar character, qboolean keyDownFlag, int currentTime)
+{
+ if (in_showevents->integer)
+ Com_Printf("CHARACTER: 0x%02x down=%d\n", character, keyDownFlag);
+
+#ifdef OMNI_TIMER
+ if (character == NSF9FunctionKey && !keyDownFlag) {
+ // Log and reset the root timer. We should currently only have the root on the stack.
+ OTStackPopRoot();
+ OTStackReportResults(NULL);
+ OTStackReset();
+ OTStackPushRoot(rootNode);
+ }
+#endif
+
+ switch (character) {
+ case 0x03:
+ Sys_QueEvent(currentTime, SE_KEY, K_KP_ENTER, keyDownFlag, 0, NULL);
+ break;
+ case '\b':
+ case '\177':
+ Sys_QueEvent(currentTime, SE_KEY, K_BACKSPACE, keyDownFlag, 0, NULL);
+ if (keyDownFlag) {
+ Sys_QueEvent(currentTime, SE_CHAR, '\b', 0, 0, NULL);
+ }
+ break;
+ case '\t':
+ if (maybeHide())
+ return;
+ Sys_QueEvent(currentTime, SE_KEY, K_TAB, keyDownFlag, 0, NULL);
+ if (keyDownFlag) {
+ Sys_QueEvent(currentTime, SE_CHAR, '\t', 0, 0, NULL);
+ }
+ break;
+ case '\r':
+ case '\n':
+ Sys_QueEvent(currentTime, SE_KEY, K_ENTER, keyDownFlag, 0, NULL);
+ if (keyDownFlag) {
+ Sys_QueEvent(currentTime, SE_CHAR, '\r', 0, 0, NULL);
+ }
+ break;
+ case '\033':
+ Sys_QueEvent(currentTime, SE_KEY, K_ESCAPE, keyDownFlag, 0, NULL);
+ break;
+ case ' ':
+ Sys_QueEvent(currentTime, SE_KEY, K_SPACE, keyDownFlag, 0, NULL);
+ if (keyDownFlag) {
+ Sys_QueEvent(currentTime, SE_CHAR, ' ', 0, 0, NULL);
+ }
+ break;
+ case NSUpArrowFunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_UPARROW, keyDownFlag, 0, NULL);
+ break;
+ case NSDownArrowFunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_DOWNARROW, keyDownFlag, 0, NULL);
+ break;
+ case NSLeftArrowFunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_LEFTARROW, keyDownFlag, 0, NULL);
+ break;
+ case NSRightArrowFunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_RIGHTARROW, keyDownFlag, 0, NULL);
+ break;
+ case NSF1FunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_F1, keyDownFlag, 0, NULL);
+ break;
+ case NSF2FunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_F2, keyDownFlag, 0, NULL);
+ break;
+ case NSF3FunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_F3, keyDownFlag, 0, NULL);
+ break;
+ case NSF4FunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_F4, keyDownFlag, 0, NULL);
+ break;
+ case NSF5FunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_F5, keyDownFlag, 0, NULL);
+ break;
+ case NSF6FunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_F6, keyDownFlag, 0, NULL);
+ break;
+ case NSF7FunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_F7, keyDownFlag, 0, NULL);
+ break;
+ case NSF8FunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_F8, keyDownFlag, 0, NULL);
+ break;
+ case NSF9FunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_F9, keyDownFlag, 0, NULL);
+ break;
+ case NSF10FunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_F10, keyDownFlag, 0, NULL);
+ break;
+ case NSF11FunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_F11, keyDownFlag, 0, NULL);
+ break;
+ case NSF12FunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_F12, keyDownFlag, 0, NULL);
+ break;
+ case NSF13FunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, '`', keyDownFlag, 0, NULL);
+ if (keyDownFlag) {
+ Sys_QueEvent(currentTime, SE_CHAR, '`', 0, 0, NULL);
+ }
+ break;
+ case NSInsertFunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_INS, keyDownFlag, 0, NULL);
+ break;
+ case NSDeleteFunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_DEL, keyDownFlag, 0, NULL);
+ break;
+ case NSPageDownFunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_PGDN, keyDownFlag, 0, NULL);
+ break;
+ case NSPageUpFunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_PGUP, keyDownFlag, 0, NULL);
+ break;
+ case NSHomeFunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_HOME, keyDownFlag, 0, NULL);
+ break;
+ case NSEndFunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_END, keyDownFlag, 0, NULL);
+ break;
+ case NSPauseFunctionKey:
+ Sys_QueEvent(currentTime, SE_KEY, K_PAUSE, keyDownFlag, 0, NULL);
+ break;
+ default:
+ if ([event modifierFlags] & NSNumericPadKeyMask) {
+ switch (character) {
+ case '0':
+ Sys_QueEvent(currentTime, SE_KEY, K_KP_INS, keyDownFlag, 0, NULL);
+ break;
+ case '1':
+ Sys_QueEvent(currentTime, SE_KEY, K_KP_END, keyDownFlag, 0, NULL);
+ break;
+ case '2':
+ Sys_QueEvent(currentTime, SE_KEY, K_KP_DOWNARROW, keyDownFlag, 0, NULL);
+ break;
+ case '3':
+ Sys_QueEvent(currentTime, SE_KEY, K_KP_PGDN, keyDownFlag, 0, NULL);
+ break;
+ case '4':
+ Sys_QueEvent(currentTime, SE_KEY, K_KP_LEFTARROW, keyDownFlag, 0, NULL);
+ break;
+ case '5':
+ Sys_QueEvent(currentTime, SE_KEY, K_KP_5, keyDownFlag, 0, NULL);
+ break;
+ case '6':
+ Sys_QueEvent(currentTime, SE_KEY, K_KP_RIGHTARROW, keyDownFlag, 0, NULL);
+ break;
+ case '7':
+ Sys_QueEvent(currentTime, SE_KEY, K_KP_HOME, keyDownFlag, 0, NULL);
+ break;
+ case '8':
+ Sys_QueEvent(currentTime, SE_KEY, K_KP_UPARROW, keyDownFlag, 0, NULL);
+ break;
+ case '9':
+ Sys_QueEvent(currentTime, SE_KEY, K_KP_PGUP, keyDownFlag, 0, NULL);
+ break;
+ case '.':
+ case ',':
+ Sys_QueEvent(currentTime, SE_KEY, K_KP_DEL, keyDownFlag, 0, NULL);
+ break;
+ case '+':
+ Sys_QueEvent(currentTime, SE_KEY, K_KP_PLUS, keyDownFlag, 0, NULL);
+ break;
+ case '-':
+ Sys_QueEvent(currentTime, SE_KEY, K_KP_MINUS, keyDownFlag, 0, NULL);
+ break;
+ case '*':
+ Sys_QueEvent(currentTime, SE_KEY, K_KP_STAR, keyDownFlag, 0, NULL);
+ break;
+ case '/':
+ Sys_QueEvent(currentTime, SE_KEY, K_KP_SLASH, keyDownFlag, 0, NULL);
+ break;
+ case '=':
+ Sys_QueEvent(currentTime, SE_KEY, K_KP_EQUALS, keyDownFlag, 0, NULL);
+ break;
+ default:
+ //NSLog(@"TODO: Implement character %d", (int)character);
+ break;
+ }
+ } else if (character >= 'a' && character <= 'z') {
+ if (character == 'h') {
+ if (maybeHide())
+ return;
+ }
+ Sys_QueEvent(currentTime, SE_KEY, character, keyDownFlag, 0, NULL);
+ if (keyDownFlag) {
+ Sys_QueEvent(currentTime, SE_CHAR, (char)character, 0, 0, NULL);
+ }
+ } else if (character >= 'A' && character <= 'Z') {
+ Sys_QueEvent(currentTime, SE_KEY, 'a' + (character - 'A'), keyDownFlag, 0, NULL);
+ if (keyDownFlag) {
+ Sys_QueEvent(currentTime, SE_CHAR, character, 0, 0, NULL);
+ }
+ } else if (character >= 32 && character < 127) {
+ Sys_QueEvent(currentTime, SE_KEY, character, keyDownFlag, 0, NULL);
+ if (keyDownFlag) {
+ Sys_QueEvent(currentTime, SE_CHAR, (char)character, 0, 0, NULL);
+ }
+ } else {
+ //NSLog(@"TODO: Implement character %d", (int)character);
+ }
+ break;
+ }
+}
+
+static inline void processKeyEvent(NSEvent *keyEvent, qboolean keyDownFlag, int currentTime)
+{
+ NSEventType eventType;
+ NSString *characters;
+ unsigned int characterIndex, characterCount;
+
+ eventType = [keyEvent type];
+ characters = [keyEvent charactersIgnoringModifiers];
+ characterCount = [characters length];
+
+ for (characterIndex = 0; characterIndex < characterCount; characterIndex++) {
+ sendEventForCharacter(keyEvent, [characters characterAtIndex:characterIndex], keyDownFlag, currentTime);
+ }
+}
+
+static inline void sendEventForMaskChangeInFlags(int quakeKey, unsigned int modifierMask, unsigned int newModifierFlags, int currentTime)
+{
+ BOOL oldHadModifier, newHasModifier;
+
+ oldHadModifier = (currentModifierFlags & modifierMask) != 0;
+ newHasModifier = (newModifierFlags & modifierMask) != 0;
+ if (oldHadModifier != newHasModifier) {
+ // NSLog(@"Key %d posted for modifier mask modifierMask", quakeKey);
+ Sys_QueEvent(currentTime, SE_KEY, quakeKey, newHasModifier, 0, NULL);
+ }
+}
+
+static inline void processFlagsChangedEvent(NSEvent *flagsChangedEvent, int currentTime)
+{
+ int newModifierFlags;
+
+ newModifierFlags = [flagsChangedEvent modifierFlags];
+ sendEventForMaskChangeInFlags(K_COMMAND, NSCommandKeyMask, newModifierFlags, currentTime);
+ sendEventForMaskChangeInFlags(K_CAPSLOCK, NSAlphaShiftKeyMask, newModifierFlags, currentTime);
+ sendEventForMaskChangeInFlags(K_ALT, NSAlternateKeyMask, newModifierFlags, currentTime);
+ sendEventForMaskChangeInFlags(K_CTRL, NSControlKeyMask, newModifierFlags, currentTime);
+ sendEventForMaskChangeInFlags(K_SHIFT, NSShiftKeyMask, newModifierFlags, currentTime);
+ currentModifierFlags = newModifierFlags;
+}
+
+static inline void processSystemDefinedEvent(NSEvent *systemDefinedEvent, int currentTime)
+{
+ static int oldButtons = 0;
+ int buttonsDelta;
+ int buttons;
+ int isDown;
+
+ if ([systemDefinedEvent subtype] == 7) {
+
+ if (!mouseactive)
+ return;
+
+
+ buttons = [systemDefinedEvent data2];
+ buttonsDelta = oldButtons ^ buttons;
+
+ //Com_Printf("uberbuttons: %08lx %08lx\n",buttonsDelta,buttons);
+
+
+ if (buttonsDelta & 1) {
+ isDown = buttons & 1;
+ Sys_QueEvent(currentTime, SE_KEY, K_MOUSE1, isDown, 0, NULL);
+ if (in_showevents->integer) {
+ Com_Printf("MOUSE2: %s\n", isDown ? "down" : "up");
+ }
+ }
+
+ if (buttonsDelta & 2) {
+ isDown = buttons & 2;
+ Sys_QueEvent(currentTime, SE_KEY, K_MOUSE2, isDown, 0, NULL);
+ if (in_showevents->integer) {
+ Com_Printf("MOUSE3: %s\n", isDown ? "down" : "up");
+ }
+ }
+
+ if (buttonsDelta & 4) {
+ isDown = buttons & 4;
+ Sys_QueEvent(currentTime, SE_KEY, K_MOUSE3, isDown, 0, NULL);
+ if (in_showevents->integer) {
+ Com_Printf("MOUSE1: %s\n", isDown ? "down" : "up");
+ }
+ }
+
+ if (buttonsDelta & 8) {
+ isDown = buttons & 8;
+ Sys_QueEvent(currentTime, SE_KEY, K_MOUSE4, isDown, 0, NULL);
+ if (in_showevents->integer) {
+ Com_Printf("MOUSE4: %s\n", isDown ? "down" : "up");
+ }
+ }
+
+ if (buttonsDelta & 16) {
+ isDown = buttons & 16;
+ Sys_QueEvent(currentTime, SE_KEY, K_MOUSE5, isDown, 0, NULL);
+ if (in_showevents->integer) {
+ Com_Printf("MOUSE5: %s\n", isDown ? "down" : "up");
+ }
+ }
+
+ oldButtons = buttons;
+ }
+}
+
+static inline void processEvent(NSEvent *event, int currentTime)
+{
+ NSEventType eventType;
+
+ if (!inputActive)
+ return;
+
+ eventType = [event type];
+
+ if (in_showevents->integer)
+ NSLog(@"event = %@", event);
+
+ switch (eventType) {
+ // These six event types are ignored since we do all of our mouse down/up process via the uber-mouse system defined event. We have to accept these events however since they get enqueued and the queue will fill up if we don't.
+ case NSLeftMouseDown:
+ //Sys_QueEvent(currentTime, SE_KEY, K_MOUSE1, qtrue, 0, NULL);
+ return;
+ case NSLeftMouseUp:
+ //Sys_QueEvent(currentTime, SE_KEY, K_MOUSE1, qfalse, 0, NULL);
+ return;
+ case NSRightMouseDown:
+ //Sys_QueEvent(currentTime, SE_KEY, K_MOUSE2, qtrue, 0, NULL);
+ return;
+ case NSRightMouseUp:
+ //Sys_QueEvent(currentTime, SE_KEY, K_MOUSE2, qfalse, 0, NULL);
+ return;
+ case 25: // other mouse down
+ return;
+ case 26: // other mouse up
+ return;
+
+ case NSMouseMoved:
+ case NSLeftMouseDragged:
+ case NSRightMouseDragged:
+ case 27: // other mouse dragged
+ Sys_ProcessMouseMovedEvent(event, currentTime);
+ return;
+ case NSKeyDown:
+ case NSKeyUp:
+ processKeyEvent(event, eventType == NSKeyDown, currentTime);
+ return;
+ case NSFlagsChanged:
+ processFlagsChangedEvent(event, currentTime);
+ return;
+ case NSSystemDefined:
+ processSystemDefinedEvent(event, currentTime);
+ return;
+ case NSScrollWheel:
+ if ([event deltaY] < 0.0) {
+ Sys_QueEvent(currentTime, SE_KEY, K_MWHEELDOWN, qtrue, 0, NULL );
+ Sys_QueEvent(currentTime, SE_KEY, K_MWHEELDOWN, qfalse, 0, NULL );
+ } else {
+ Sys_QueEvent(currentTime, SE_KEY, K_MWHEELUP, qtrue, 0, NULL );
+ Sys_QueEvent(currentTime, SE_KEY, K_MWHEELUP, qfalse, 0, NULL );
+ }
+ return;
+ default:
+ break;
+ }
+ [NSApp sendEvent:event];
+}
+
+static void Sys_SendKeyEvents(int currentTime)
+{
+#ifndef DEDICATED
+ NSEvent *event;
+ NSDate *timeout;
+ extern float SNDDMA_GetBufferDuration();
+
+ timeout = distantPast;
+ if (Sys_IsHidden)
+ timeout = [NSDate dateWithTimeIntervalSinceNow: 0.25 * SNDDMA_GetBufferDuration()];
+
+ // This gets call regardless of whether inputActive is true or not. This is important since we need to be poking the event queue in order for the unhide event to make its way through the system. This means that when we hide, we can just shut down the input system and reeanbled it when we unhide.
+ while ((event = [NSApp nextEventMatchingMask: NSAnyEventMask
+ untilDate: timeout
+ inMode: NSDefaultRunLoopMode
+ dequeue:YES])) {
+ if (Sys_IsHidden) {
+ // Just let NSApp handle events so that we'll get the app activation event
+ [NSApp sendEvent: event];
+ timeout = [NSDate dateWithTimeIntervalSinceNow: 0.1];
+ } else {
+ static int lastEventTime = 0;
+ static BOOL lastEventTimeValid = NO;
+
+ // Mac OS X 10.0.3 has a bug where the if the monitor goes to sleep in fullscreen GL mode, the gamma won't be restored. We'll restore the gamma if there is a pause while in the game of more than 10 seconds. We don't do this on the 'Sys_IsHidden' branch since unhiding will restore the monitor gamma.
+ if ((currentTime - lastEventTime > 1 * 1000) && lastEventTimeValid) {
+ //Com_Printf("Restoring monitor gamma after being idle for %f seconds.\n", (currentTime - lastEventTime) / 1000.0);
+ [NSCursor hide];
+ Sys_SetScreenFade(&glw_state.inGameTable, 1.0);
+ }
+ lastEventTime = [event timestamp] * 1000.0; //currentTime;
+ lastEventTimeValid = YES;
+
+ processEvent(event, lastEventTime);
+ }
+ }
+#endif
+}
+
+/*
+========================================================================
+
+EVENT LOOP
+
+========================================================================
+*/
+
+extern qboolean Sys_GetPacket ( netadr_t *net_from, msg_t *net_message );
+
+#define MAX_QUED_EVENTS 256
+#define MASK_QUED_EVENTS ( MAX_QUED_EVENTS - 1 )
+
+static sysEvent_t eventQue[MAX_QUED_EVENTS];
+static int eventHead, eventTail;
+static byte sys_packetReceived[MAX_MSGLEN];
+
+/*
+================
+Sys_QueEvent
+
+A time of 0 will get the current time
+Ptr should either be null, or point to a block of data that can
+be freed by the game later.
+================
+*/
+void Sys_QueEvent( int time, sysEventType_t type, int value, int value2, int ptrLength, void *ptr ) {
+ sysEvent_t *ev;
+ int i,j;
+#ifndef DEDICATED
+ if (in_showevents->integer)
+ NSLog(@"EVENT ENQUEUE: time=%d type=%d value=0x%08x value2=0x%08x\n", time, type, value, value2);
+#endif
+
+ if ( eventHead - eventTail >= MAX_QUED_EVENTS ) {
+ Com_Printf("Sys_QueEvent: overflow\n");
+ }
+
+ if ( !time ) {
+ time = Sys_Milliseconds();
+ }
+
+ // insert it by time
+ for ( i = eventTail ; i < eventHead ; i++ ) {
+ ev = &eventQue[ i & MASK_QUED_EVENTS ];
+ if ( ev->evTime > time ) {
+ break;
+ }
+ }
+
+ // insert before i
+ for ( j = eventHead ; j > i ; j-- ) {
+ eventQue[ j & MASK_QUED_EVENTS ] = eventQue[ (j-1) & MASK_QUED_EVENTS ];
+ }
+ ev = &eventQue[ i & MASK_QUED_EVENTS ];
+
+ eventHead++;
+
+ ev->evTime = time;
+ ev->evType = type;
+ ev->evValue = value;
+ ev->evValue2 = value2;
+ ev->evPtrLength = ptrLength;
+ ev->evPtr = ptr;
+}
+
+/*
+================
+Sys_GetEvent
+
+================
+*/
+sysEvent_t Sys_GetEvent( void )
+{
+ sysEvent_t ev;
+ char *s;
+ msg_t netmsg;
+ netadr_t adr;
+ int currentTime;
+
+ // return if we have data
+ if (eventHead > eventTail) {
+ eventTail++;
+ return eventQue[ ( eventTail - 1 ) & MASK_QUED_EVENTS ];
+ }
+
+ // The queue must be empty. Check all of the event sources. If the events are
+ // already in the queue, we can't imply any real ordering, so we'll avoid extra
+ // system calls and give them all the same time.
+ currentTime = Sys_Milliseconds();
+
+ // Check for mouse and keyboard events
+ Sys_SendKeyEvents(currentTime);
+
+ // check for console commands
+ s = Sys_ConsoleInput();
+ if ( s ) {
+ char *b;
+ int len;
+
+ len = strlen( s ) + 1;
+ b = Z_Malloc( len );
+ strcpy( b, s );
+ Sys_QueEvent( currentTime, SE_CONSOLE, 0, 0, len, b );
+ }
+
+
+ // During debugging it is sometimes usefull to be able to start/stop mouse input.
+ // Don't turn on the input when we've disabled it because we're hidden, however.
+ if (!com_dedicated->integer) {
+ if (in_nomouse->integer == mouseactive && !Sys_IsHidden) {
+ if (in_nomouse->integer)
+ Sys_StopMouseInput();
+ else
+ Sys_StartMouseInput();
+ }
+ }
+
+ // check for network packets
+ MSG_Init( &netmsg, sys_packetReceived, sizeof( sys_packetReceived ) );
+ if ( Sys_GetPacket ( &adr, &netmsg ) ) {
+ netadr_t *buf;
+ int len;
+
+ // copy out to a seperate buffer for qeueing
+ len = sizeof( netadr_t ) + netmsg.cursize;
+ buf = Z_Malloc( len );
+ *buf = adr;
+ memcpy( buf+1, netmsg.data, netmsg.cursize );
+ Sys_QueEvent( currentTime, SE_PACKET, 0, 0, len, buf );
+ }
+
+ // If we got an event, return it
+ if (eventHead > eventTail) {
+ eventTail++;
+ return eventQue[ ( eventTail - 1 ) & MASK_QUED_EVENTS ];
+ }
+
+ // Otherwise, return an empty event to indicate that there are no events pending.
+ memset( &ev, 0, sizeof( ev ) );
+ ev.evTime = currentTime;
+
+ return ev;
+}
+
+
+
diff --git a/code/macosx/macosx_local.h b/code/macosx/macosx_local.h
new file mode 100755
index 0000000..c687c1a
--- /dev/null
+++ b/code/macosx/macosx_local.h
@@ -0,0 +1,129 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+#ifndef __macosx_local_h
+#define __macosx_local_h
+
+#include "qcommon.h"
+
+#ifdef __cplusplus
+typedef void NSDictionary;
+typedef void NSOpenGLContext;
+typedef void NSWindow;
+
+extern "C" {
+#else
+#import <Foundation/NSGeometry.h>
+@class NSEvent, NSOpenGLContext, NSWindow;
+#endif
+
+#include <ApplicationServices/ApplicationServices.h>
+#include <OpenGL/CGLTypes.h>
+
+// In macosx_input.m
+extern void Sys_InitInput(void);
+extern void Sys_ShutdownInput(void);
+extern void Sys_SetMouseInputRect(CGRect newRect);
+extern CGDirectDisplayID Sys_DisplayToUse(void);
+
+// In macosx_sys.m
+extern void Sys_QueEvent(int time, sysEventType_t type, int value, int value2, int ptrLength, void *ptr);
+extern void Sys_AnnoyingBanner();
+
+// In macosx_glimp.m
+extern qboolean Sys_IsHidden;
+extern qboolean Sys_Hide();
+extern qboolean Sys_Unhide();
+
+typedef struct {
+ CGDirectDisplayID display;
+ CGTableCount tableSize;
+ CGGammaValue *red;
+ CGGammaValue *blue;
+ CGGammaValue *green;
+} glwgamma_t;
+
+typedef struct
+{
+ CGDirectDisplayID display;
+ NSDictionary *desktopMode;
+ NSDictionary *gameMode;
+
+ CGDisplayCount displayCount;
+ glwgamma_t *originalDisplayGammaTables;
+ glwgamma_t inGameTable;
+ glwgamma_t tempTable;
+
+ NSOpenGLContext *_ctx;
+ CGLContextObj _cgl_ctx;
+ qboolean _ctx_is_current;
+ NSWindow *window;
+
+ FILE *log_fp;
+
+ unsigned int bufferSwapCount;
+ unsigned int glPauseCount;
+} glwstate_t;
+
+extern glwstate_t glw_state;
+
+#define OSX_SetGLContext(context) \
+do { \
+ NSOpenGLContext *_context = (context); \
+ glw_state._ctx = _context; \
+ glw_state._cgl_ctx = [_context cglContext]; \
+} while (0)
+
+#define OSX_GetNSGLContext() glw_state._ctx
+#define OSX_GetCGLContext() glw_state._cgl_ctx
+
+#define OSX_GLContextIsCurrent() glw_state._ctx_is_current
+#define OSX_GLContextSetCurrent() \
+do { \
+ [glw_state._ctx makeCurrentContext]; \
+ glw_state._ctx_is_current = (glw_state._ctx != nil); \
+} while (0)
+
+#define OSX_GLContextClearCurrent() \
+do { \
+ [NSOpenGLContext clearCurrentContext]; \
+ glw_state._ctx_is_current = NO; \
+} while (0)
+
+
+extern void Sys_PauseGL();
+extern void Sys_ResumeGL();
+
+
+#import "macosx_timers.h"
+
+#ifdef OMNI_TIMER
+extern OTStampList glThreadStampList;
+#define GLSTAMP(name, data) OTStampListAddStamp(glThreadStampList, name, data)
+#else
+#define GLSTAMP(name, data)
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // __macosx_local_h
diff --git a/code/macosx/macosx_qgl.h b/code/macosx/macosx_qgl.h
new file mode 100755
index 0000000..d11c971
--- /dev/null
+++ b/code/macosx/macosx_qgl.h
@@ -0,0 +1,5095 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+/**** This file is autogenerated. Run GenerateQGL.pl to update it ****/
+
+#ifdef QGL_LOG_GL_CALLS
+extern unsigned int QGLLogGLCalls;
+extern FILE *QGLDebugFile(void);
+#endif
+
+extern void QGLCheckError(const char *message);
+extern unsigned int QGLBeginStarted;
+
+// This has to be done to avoid infinite recursion between our glGetError wrapper and QGLCheckError()
+static inline GLenum _glGetError(void) {
+ return glGetError();
+}
+
+// void glAccum (GLenum op, GLfloat value);
+static inline void qglAccum(GLenum op, GLfloat value)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glAccum(op=%lu, value=%f)\n", op, value);
+#endif
+ glAccum(op, value);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glAccum");
+#endif
+}
+
+// void glAlphaFunc (GLenum func, GLclampf ref);
+static inline void qglAlphaFunc(GLenum func, GLclampf ref)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glAlphaFunc(func=%lu, ref=%f)\n", func, ref);
+#endif
+ glAlphaFunc(func, ref);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glAlphaFunc");
+#endif
+}
+
+// GLboolean glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences);
+static inline GLboolean qglAreTexturesResident(GLsizei n, const GLuint *textures, GLboolean *residences)
+{
+ GLboolean returnValue;
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glAreTexturesResident(n=%ld, textures=%p, residences=%p)\n", n, textures, residences);
+#endif
+ returnValue = glAreTexturesResident(n, textures, residences);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glAreTexturesResident");
+#endif
+ return returnValue;
+}
+
+// void glArrayElement (GLint i);
+static inline void qglArrayElement(GLint i)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glArrayElement(i=%ld)\n", i);
+#endif
+ glArrayElement(i);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glArrayElement");
+#endif
+}
+
+// void glBegin (GLenum mode);
+static inline void qglBegin(GLenum mode)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glBegin(mode=%lu)\n", mode);
+#endif
+ glBegin(mode);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ QGLBeginStarted++;
+ if (!QGLBeginStarted)
+ QGLCheckError("glBegin");
+#endif
+}
+
+// void glBindTexture (GLenum target, GLuint texture);
+static inline void qglBindTexture(GLenum target, GLuint texture)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glBindTexture(target=%lu, texture=%lu)\n", target, texture);
+#endif
+ glBindTexture(target, texture);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glBindTexture");
+#endif
+}
+
+// void glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
+static inline void qglBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glBitmap(width=%ld, height=%ld, xorig=%f, yorig=%f, xmove=%f, ymove=%f, bitmap=%p)\n", width, height, xorig, yorig, xmove, ymove, bitmap);
+#endif
+ glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glBitmap");
+#endif
+}
+
+// void glBlendFunc (GLenum sfactor, GLenum dfactor);
+static inline void qglBlendFunc(GLenum sfactor, GLenum dfactor)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glBlendFunc(sfactor=%lu, dfactor=%lu)\n", sfactor, dfactor);
+#endif
+ glBlendFunc(sfactor, dfactor);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glBlendFunc");
+#endif
+}
+
+// void glCallList (GLuint list);
+static inline void qglCallList(GLuint list)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glCallList(list=%lu)\n", list);
+#endif
+ glCallList(list);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glCallList");
+#endif
+}
+
+// void glCallLists (GLsizei n, GLenum type, const GLvoid *lists);
+static inline void qglCallLists(GLsizei n, GLenum type, const GLvoid *lists)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glCallLists(n=%ld, type=%lu, lists=%p)\n", n, type, lists);
+#endif
+ glCallLists(n, type, lists);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glCallLists");
+#endif
+}
+
+// void glClear (GLbitfield mask);
+static inline void qglClear(GLbitfield mask)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glClear(mask=%lu)\n", mask);
+#endif
+ glClear(mask);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glClear");
+#endif
+}
+
+// void glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+static inline void qglClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glClearAccum(red=%f, green=%f, blue=%f, alpha=%f)\n", red, green, blue, alpha);
+#endif
+ glClearAccum(red, green, blue, alpha);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glClearAccum");
+#endif
+}
+
+// void glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+static inline void qglClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glClearColor(red=%f, green=%f, blue=%f, alpha=%f)\n", red, green, blue, alpha);
+#endif
+ glClearColor(red, green, blue, alpha);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glClearColor");
+#endif
+}
+
+// void glClearDepth (GLclampd depth);
+static inline void qglClearDepth(GLclampd depth)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glClearDepth(depth=%f)\n", depth);
+#endif
+ glClearDepth(depth);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glClearDepth");
+#endif
+}
+
+// void glClearIndex (GLfloat c);
+static inline void qglClearIndex(GLfloat c)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glClearIndex(c=%f)\n", c);
+#endif
+ glClearIndex(c);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glClearIndex");
+#endif
+}
+
+// void glClearStencil (GLint s);
+static inline void qglClearStencil(GLint s)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glClearStencil(s=%ld)\n", s);
+#endif
+ glClearStencil(s);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glClearStencil");
+#endif
+}
+
+// void glClipPlane (GLenum plane, const GLdouble *equation);
+static inline void qglClipPlane(GLenum plane, const GLdouble *equation)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glClipPlane(plane=%lu, equation=%p)\n", plane, equation);
+#endif
+ glClipPlane(plane, equation);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glClipPlane");
+#endif
+}
+
+// void glColor3b (GLbyte red, GLbyte green, GLbyte blue);
+static inline void qglColor3b(GLbyte red, GLbyte green, GLbyte blue)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor3b(red=%d, green=%d, blue=%d)\n", red, green, blue);
+#endif
+ glColor3b(red, green, blue);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor3b");
+#endif
+}
+
+// void glColor3bv (const GLbyte *v);
+static inline void qglColor3bv(const GLbyte *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor3bv(v=%p)\n", v);
+#endif
+ glColor3bv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor3bv");
+#endif
+}
+
+// void glColor3d (GLdouble red, GLdouble green, GLdouble blue);
+static inline void qglColor3d(GLdouble red, GLdouble green, GLdouble blue)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor3d(red=%f, green=%f, blue=%f)\n", red, green, blue);
+#endif
+ glColor3d(red, green, blue);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor3d");
+#endif
+}
+
+// void glColor3dv (const GLdouble *v);
+static inline void qglColor3dv(const GLdouble *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor3dv(v=%p)\n", v);
+#endif
+ glColor3dv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor3dv");
+#endif
+}
+
+// void glColor3f (GLfloat red, GLfloat green, GLfloat blue);
+static inline void qglColor3f(GLfloat red, GLfloat green, GLfloat blue)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor3f(red=%f, green=%f, blue=%f)\n", red, green, blue);
+#endif
+ glColor3f(red, green, blue);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor3f");
+#endif
+}
+
+// void glColor3fv (const GLfloat *v);
+static inline void qglColor3fv(const GLfloat *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor3fv(v=%p)\n", v);
+#endif
+ glColor3fv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor3fv");
+#endif
+}
+
+// void glColor3i (GLint red, GLint green, GLint blue);
+static inline void qglColor3i(GLint red, GLint green, GLint blue)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor3i(red=%ld, green=%ld, blue=%ld)\n", red, green, blue);
+#endif
+ glColor3i(red, green, blue);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor3i");
+#endif
+}
+
+// void glColor3iv (const GLint *v);
+static inline void qglColor3iv(const GLint *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor3iv(v=%p)\n", v);
+#endif
+ glColor3iv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor3iv");
+#endif
+}
+
+// void glColor3s (GLshort red, GLshort green, GLshort blue);
+static inline void qglColor3s(GLshort red, GLshort green, GLshort blue)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor3s(red=%d, green=%d, blue=%d)\n", red, green, blue);
+#endif
+ glColor3s(red, green, blue);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor3s");
+#endif
+}
+
+// void glColor3sv (const GLshort *v);
+static inline void qglColor3sv(const GLshort *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor3sv(v=%p)\n", v);
+#endif
+ glColor3sv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor3sv");
+#endif
+}
+
+// void glColor3ub (GLubyte red, GLubyte green, GLubyte blue);
+static inline void qglColor3ub(GLubyte red, GLubyte green, GLubyte blue)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor3ub(red=%u, green=%u, blue=%u)\n", red, green, blue);
+#endif
+ glColor3ub(red, green, blue);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor3ub");
+#endif
+}
+
+// void glColor3ubv (const GLubyte *v);
+static inline void qglColor3ubv(const GLubyte *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor3ubv(v=%p)\n", v);
+#endif
+ glColor3ubv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor3ubv");
+#endif
+}
+
+// void glColor3ui (GLuint red, GLuint green, GLuint blue);
+static inline void qglColor3ui(GLuint red, GLuint green, GLuint blue)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor3ui(red=%lu, green=%lu, blue=%lu)\n", red, green, blue);
+#endif
+ glColor3ui(red, green, blue);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor3ui");
+#endif
+}
+
+// void glColor3uiv (const GLuint *v);
+static inline void qglColor3uiv(const GLuint *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor3uiv(v=%p)\n", v);
+#endif
+ glColor3uiv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor3uiv");
+#endif
+}
+
+// void glColor3us (GLushort red, GLushort green, GLushort blue);
+static inline void qglColor3us(GLushort red, GLushort green, GLushort blue)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor3us(red=%u, green=%u, blue=%u)\n", red, green, blue);
+#endif
+ glColor3us(red, green, blue);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor3us");
+#endif
+}
+
+// void glColor3usv (const GLushort *v);
+static inline void qglColor3usv(const GLushort *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor3usv(v=%p)\n", v);
+#endif
+ glColor3usv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor3usv");
+#endif
+}
+
+// void glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+static inline void qglColor4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor4b(red=%d, green=%d, blue=%d, alpha=%d)\n", red, green, blue, alpha);
+#endif
+ glColor4b(red, green, blue, alpha);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor4b");
+#endif
+}
+
+// void glColor4bv (const GLbyte *v);
+static inline void qglColor4bv(const GLbyte *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor4bv(v=%p)\n", v);
+#endif
+ glColor4bv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor4bv");
+#endif
+}
+
+// void glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+static inline void qglColor4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor4d(red=%f, green=%f, blue=%f, alpha=%f)\n", red, green, blue, alpha);
+#endif
+ glColor4d(red, green, blue, alpha);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor4d");
+#endif
+}
+
+// void glColor4dv (const GLdouble *v);
+static inline void qglColor4dv(const GLdouble *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor4dv(v=%p)\n", v);
+#endif
+ glColor4dv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor4dv");
+#endif
+}
+
+// void glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+static inline void qglColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor4f(red=%f, green=%f, blue=%f, alpha=%f)\n", red, green, blue, alpha);
+#endif
+ glColor4f(red, green, blue, alpha);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor4f");
+#endif
+}
+
+// void glColor4fv (const GLfloat *v);
+static inline void qglColor4fv(const GLfloat *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor4fv(v=%p)\n", v);
+#endif
+ glColor4fv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor4fv");
+#endif
+}
+
+// void glColor4i (GLint red, GLint green, GLint blue, GLint alpha);
+static inline void qglColor4i(GLint red, GLint green, GLint blue, GLint alpha)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor4i(red=%ld, green=%ld, blue=%ld, alpha=%ld)\n", red, green, blue, alpha);
+#endif
+ glColor4i(red, green, blue, alpha);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor4i");
+#endif
+}
+
+// void glColor4iv (const GLint *v);
+static inline void qglColor4iv(const GLint *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor4iv(v=%p)\n", v);
+#endif
+ glColor4iv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor4iv");
+#endif
+}
+
+// void glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha);
+static inline void qglColor4s(GLshort red, GLshort green, GLshort blue, GLshort alpha)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor4s(red=%d, green=%d, blue=%d, alpha=%d)\n", red, green, blue, alpha);
+#endif
+ glColor4s(red, green, blue, alpha);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor4s");
+#endif
+}
+
+// void glColor4sv (const GLshort *v);
+static inline void qglColor4sv(const GLshort *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor4sv(v=%p)\n", v);
+#endif
+ glColor4sv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor4sv");
+#endif
+}
+
+// void glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+static inline void qglColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor4ub(red=%u, green=%u, blue=%u, alpha=%u)\n", red, green, blue, alpha);
+#endif
+ glColor4ub(red, green, blue, alpha);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor4ub");
+#endif
+}
+
+// void glColor4ubv (const GLubyte *v);
+static inline void qglColor4ubv(const GLubyte *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor4ubv(v=%p)\n", v);
+#endif
+ glColor4ubv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor4ubv");
+#endif
+}
+
+// void glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha);
+static inline void qglColor4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor4ui(red=%lu, green=%lu, blue=%lu, alpha=%lu)\n", red, green, blue, alpha);
+#endif
+ glColor4ui(red, green, blue, alpha);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor4ui");
+#endif
+}
+
+// void glColor4uiv (const GLuint *v);
+static inline void qglColor4uiv(const GLuint *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor4uiv(v=%p)\n", v);
+#endif
+ glColor4uiv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor4uiv");
+#endif
+}
+
+// void glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha);
+static inline void qglColor4us(GLushort red, GLushort green, GLushort blue, GLushort alpha)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor4us(red=%u, green=%u, blue=%u, alpha=%u)\n", red, green, blue, alpha);
+#endif
+ glColor4us(red, green, blue, alpha);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor4us");
+#endif
+}
+
+// void glColor4usv (const GLushort *v);
+static inline void qglColor4usv(const GLushort *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColor4usv(v=%p)\n", v);
+#endif
+ glColor4usv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColor4usv");
+#endif
+}
+
+// void glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+static inline void qglColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColorMask(red=%u, green=%u, blue=%u, alpha=%u)\n", red, green, blue, alpha);
+#endif
+ glColorMask(red, green, blue, alpha);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColorMask");
+#endif
+}
+
+// void glColorMaterial (GLenum face, GLenum mode);
+static inline void qglColorMaterial(GLenum face, GLenum mode)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColorMaterial(face=%lu, mode=%lu)\n", face, mode);
+#endif
+ glColorMaterial(face, mode);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColorMaterial");
+#endif
+}
+
+// void glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+static inline void qglColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glColorPointer(size=%ld, type=%lu, stride=%ld, pointer=%p)\n", size, type, stride, pointer);
+#endif
+ glColorPointer(size, type, stride, pointer);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glColorPointer");
+#endif
+}
+
+// void glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
+static inline void qglCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glCopyPixels(x=%ld, y=%ld, width=%ld, height=%ld, type=%lu)\n", x, y, width, height, type);
+#endif
+ glCopyPixels(x, y, width, height, type);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glCopyPixels");
+#endif
+}
+
+// void glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+static inline void qglCopyTexImage1D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glCopyTexImage1D(target=%lu, level=%ld, internalFormat=%lu, x=%ld, y=%ld, width=%ld, border=%ld)\n", target, level, internalFormat, x, y, width, border);
+#endif
+ glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glCopyTexImage1D");
+#endif
+}
+
+// void glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+static inline void qglCopyTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glCopyTexImage2D(target=%lu, level=%ld, internalFormat=%lu, x=%ld, y=%ld, width=%ld, height=%ld, border=%ld)\n", target, level, internalFormat, x, y, width, height, border);
+#endif
+ glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glCopyTexImage2D");
+#endif
+}
+
+// void glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+static inline void qglCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glCopyTexSubImage1D(target=%lu, level=%ld, xoffset=%ld, x=%ld, y=%ld, width=%ld)\n", target, level, xoffset, x, y, width);
+#endif
+ glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glCopyTexSubImage1D");
+#endif
+}
+
+// void glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+static inline void qglCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glCopyTexSubImage2D(target=%lu, level=%ld, xoffset=%ld, yoffset=%ld, x=%ld, y=%ld, width=%ld, height=%ld)\n", target, level, xoffset, yoffset, x, y, width, height);
+#endif
+ glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glCopyTexSubImage2D");
+#endif
+}
+
+// void glCullFace (GLenum mode);
+static inline void qglCullFace(GLenum mode)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glCullFace(mode=%lu)\n", mode);
+#endif
+ glCullFace(mode);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glCullFace");
+#endif
+}
+
+// void glDeleteLists (GLuint list, GLsizei range);
+static inline void qglDeleteLists(GLuint list, GLsizei range)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glDeleteLists(list=%lu, range=%ld)\n", list, range);
+#endif
+ glDeleteLists(list, range);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glDeleteLists");
+#endif
+}
+
+// void glDeleteTextures (GLsizei n, const GLuint *textures);
+static inline void qglDeleteTextures(GLsizei n, const GLuint *textures)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glDeleteTextures(n=%ld, textures=%p)\n", n, textures);
+#endif
+ glDeleteTextures(n, textures);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glDeleteTextures");
+#endif
+}
+
+// void glDepthFunc (GLenum func);
+static inline void qglDepthFunc(GLenum func)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glDepthFunc(func=%lu)\n", func);
+#endif
+ glDepthFunc(func);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glDepthFunc");
+#endif
+}
+
+// void glDepthMask (GLboolean flag);
+static inline void qglDepthMask(GLboolean flag)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glDepthMask(flag=%u)\n", flag);
+#endif
+ glDepthMask(flag);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glDepthMask");
+#endif
+}
+
+// void glDepthRange (GLclampd zNear, GLclampd zFar);
+static inline void qglDepthRange(GLclampd zNear, GLclampd zFar)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glDepthRange(zNear=%f, zFar=%f)\n", zNear, zFar);
+#endif
+ glDepthRange(zNear, zFar);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glDepthRange");
+#endif
+}
+
+// void glDisable (GLenum cap);
+static inline void qglDisable(GLenum cap)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glDisable(cap=%lu)\n", cap);
+#endif
+ glDisable(cap);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glDisable");
+#endif
+}
+
+// void glDisableClientState (GLenum array);
+static inline void qglDisableClientState(GLenum array)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glDisableClientState(array=%lu)\n", array);
+#endif
+ glDisableClientState(array);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glDisableClientState");
+#endif
+}
+
+// void glDrawArrays (GLenum mode, GLint first, GLsizei count);
+static inline void qglDrawArrays(GLenum mode, GLint first, GLsizei count)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glDrawArrays(mode=%lu, first=%ld, count=%ld)\n", mode, first, count);
+#endif
+ glDrawArrays(mode, first, count);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glDrawArrays");
+#endif
+}
+
+// void glDrawBuffer (GLenum mode);
+static inline void qglDrawBuffer(GLenum mode)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glDrawBuffer(mode=%lu)\n", mode);
+#endif
+ glDrawBuffer(mode);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glDrawBuffer");
+#endif
+}
+
+// void glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
+static inline void qglDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glDrawElements(mode=%lu, count=%ld, type=%lu, indices=%p)\n", mode, count, type, indices);
+#endif
+ glDrawElements(mode, count, type, indices);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glDrawElements");
+#endif
+}
+
+// void glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
+static inline void qglDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glDrawPixels(width=%ld, height=%ld, format=%lu, type=%lu, pixels=%p)\n", width, height, format, type, pixels);
+#endif
+ glDrawPixels(width, height, format, type, pixels);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glDrawPixels");
+#endif
+}
+
+// void glEdgeFlag (GLboolean flag);
+static inline void qglEdgeFlag(GLboolean flag)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEdgeFlag(flag=%u)\n", flag);
+#endif
+ glEdgeFlag(flag);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glEdgeFlag");
+#endif
+}
+
+// void glEdgeFlagPointer (GLsizei stride, const GLvoid *pointer);
+static inline void qglEdgeFlagPointer(GLsizei stride, const GLvoid *pointer)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEdgeFlagPointer(stride=%ld, pointer=%p)\n", stride, pointer);
+#endif
+ glEdgeFlagPointer(stride, pointer);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glEdgeFlagPointer");
+#endif
+}
+
+// void glEdgeFlagv (const GLboolean *flag);
+static inline void qglEdgeFlagv(const GLboolean *flag)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEdgeFlagv(flag=%p)\n", flag);
+#endif
+ glEdgeFlagv(flag);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glEdgeFlagv");
+#endif
+}
+
+// void glEnable (GLenum cap);
+static inline void qglEnable(GLenum cap)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEnable(cap=%lu)\n", cap);
+#endif
+ glEnable(cap);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glEnable");
+#endif
+}
+
+// void glEnableClientState (GLenum array);
+static inline void qglEnableClientState(GLenum array)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEnableClientState(array=%lu)\n", array);
+#endif
+ glEnableClientState(array);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glEnableClientState");
+#endif
+}
+
+// void glEnd (void);
+static inline void qglEnd(void)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEnd(void)\n");
+#endif
+ glEnd();
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ QGLBeginStarted--;
+ if (!QGLBeginStarted)
+ QGLCheckError("glEnd");
+#endif
+}
+
+// void glEndList (void);
+static inline void qglEndList(void)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEndList(void)\n");
+#endif
+ glEndList();
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glEndList");
+#endif
+}
+
+// void glEvalCoord1d (GLdouble u);
+static inline void qglEvalCoord1d(GLdouble u)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEvalCoord1d(u=%f)\n", u);
+#endif
+ glEvalCoord1d(u);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glEvalCoord1d");
+#endif
+}
+
+// void glEvalCoord1dv (const GLdouble *u);
+static inline void qglEvalCoord1dv(const GLdouble *u)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEvalCoord1dv(u=%p)\n", u);
+#endif
+ glEvalCoord1dv(u);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glEvalCoord1dv");
+#endif
+}
+
+// void glEvalCoord1f (GLfloat u);
+static inline void qglEvalCoord1f(GLfloat u)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEvalCoord1f(u=%f)\n", u);
+#endif
+ glEvalCoord1f(u);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glEvalCoord1f");
+#endif
+}
+
+// void glEvalCoord1fv (const GLfloat *u);
+static inline void qglEvalCoord1fv(const GLfloat *u)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEvalCoord1fv(u=%p)\n", u);
+#endif
+ glEvalCoord1fv(u);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glEvalCoord1fv");
+#endif
+}
+
+// void glEvalCoord2d (GLdouble u, GLdouble v);
+static inline void qglEvalCoord2d(GLdouble u, GLdouble v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEvalCoord2d(u=%f, v=%f)\n", u, v);
+#endif
+ glEvalCoord2d(u, v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glEvalCoord2d");
+#endif
+}
+
+// void glEvalCoord2dv (const GLdouble *u);
+static inline void qglEvalCoord2dv(const GLdouble *u)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEvalCoord2dv(u=%p)\n", u);
+#endif
+ glEvalCoord2dv(u);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glEvalCoord2dv");
+#endif
+}
+
+// void glEvalCoord2f (GLfloat u, GLfloat v);
+static inline void qglEvalCoord2f(GLfloat u, GLfloat v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEvalCoord2f(u=%f, v=%f)\n", u, v);
+#endif
+ glEvalCoord2f(u, v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glEvalCoord2f");
+#endif
+}
+
+// void glEvalCoord2fv (const GLfloat *u);
+static inline void qglEvalCoord2fv(const GLfloat *u)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEvalCoord2fv(u=%p)\n", u);
+#endif
+ glEvalCoord2fv(u);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glEvalCoord2fv");
+#endif
+}
+
+// void glEvalMesh1 (GLenum mode, GLint i1, GLint i2);
+static inline void qglEvalMesh1(GLenum mode, GLint i1, GLint i2)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEvalMesh1(mode=%lu, i1=%ld, i2=%ld)\n", mode, i1, i2);
+#endif
+ glEvalMesh1(mode, i1, i2);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glEvalMesh1");
+#endif
+}
+
+// void glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+static inline void qglEvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEvalMesh2(mode=%lu, i1=%ld, i2=%ld, j1=%ld, j2=%ld)\n", mode, i1, i2, j1, j2);
+#endif
+ glEvalMesh2(mode, i1, i2, j1, j2);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glEvalMesh2");
+#endif
+}
+
+// void glEvalPoint1 (GLint i);
+static inline void qglEvalPoint1(GLint i)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEvalPoint1(i=%ld)\n", i);
+#endif
+ glEvalPoint1(i);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glEvalPoint1");
+#endif
+}
+
+// void glEvalPoint2 (GLint i, GLint j);
+static inline void qglEvalPoint2(GLint i, GLint j)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glEvalPoint2(i=%ld, j=%ld)\n", i, j);
+#endif
+ glEvalPoint2(i, j);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glEvalPoint2");
+#endif
+}
+
+// void glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer);
+static inline void qglFeedbackBuffer(GLsizei size, GLenum type, GLfloat *buffer)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glFeedbackBuffer(size=%ld, type=%lu, buffer=%p)\n", size, type, buffer);
+#endif
+ glFeedbackBuffer(size, type, buffer);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glFeedbackBuffer");
+#endif
+}
+
+// void glFinish (void);
+static inline void qglFinish(void)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glFinish(void)\n");
+#endif
+ glFinish();
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glFinish");
+#endif
+}
+
+// void glFlush (void);
+static inline void qglFlush(void)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glFlush(void)\n");
+#endif
+ glFlush();
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glFlush");
+#endif
+}
+
+// void glFogf (GLenum pname, GLfloat param);
+static inline void qglFogf(GLenum pname, GLfloat param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glFogf(pname=%lu, param=%f)\n", pname, param);
+#endif
+ glFogf(pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glFogf");
+#endif
+}
+
+// void glFogfv (GLenum pname, const GLfloat *params);
+static inline void qglFogfv(GLenum pname, const GLfloat *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glFogfv(pname=%lu, params=%p)\n", pname, params);
+#endif
+ glFogfv(pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glFogfv");
+#endif
+}
+
+// void glFogi (GLenum pname, GLint param);
+static inline void qglFogi(GLenum pname, GLint param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glFogi(pname=%lu, param=%ld)\n", pname, param);
+#endif
+ glFogi(pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glFogi");
+#endif
+}
+
+// void glFogiv (GLenum pname, const GLint *params);
+static inline void qglFogiv(GLenum pname, const GLint *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glFogiv(pname=%lu, params=%p)\n", pname, params);
+#endif
+ glFogiv(pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glFogiv");
+#endif
+}
+
+// void glFrontFace (GLenum mode);
+static inline void qglFrontFace(GLenum mode)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glFrontFace(mode=%lu)\n", mode);
+#endif
+ glFrontFace(mode);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glFrontFace");
+#endif
+}
+
+// void glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+static inline void qglFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glFrustum(left=%f, right=%f, bottom=%f, top=%f, zNear=%f, zFar=%f)\n", left, right, bottom, top, zNear, zFar);
+#endif
+ glFrustum(left, right, bottom, top, zNear, zFar);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glFrustum");
+#endif
+}
+
+// GLuint glGenLists (GLsizei range);
+static inline GLuint qglGenLists(GLsizei range)
+{
+ GLuint returnValue;
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGenLists(range=%ld)\n", range);
+#endif
+ returnValue = glGenLists(range);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGenLists");
+#endif
+ return returnValue;
+}
+
+// void glGenTextures (GLsizei n, GLuint *textures);
+static inline void qglGenTextures(GLsizei n, GLuint *textures)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGenTextures(n=%ld, textures=%p)\n", n, textures);
+#endif
+ glGenTextures(n, textures);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGenTextures");
+#endif
+}
+
+// void glGetBooleanv (GLenum pname, GLboolean *params);
+static inline void qglGetBooleanv(GLenum pname, GLboolean *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetBooleanv(pname=%lu, params=%p)\n", pname, params);
+#endif
+ glGetBooleanv(pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetBooleanv");
+#endif
+}
+
+// void glGetClipPlane (GLenum plane, GLdouble *equation);
+static inline void qglGetClipPlane(GLenum plane, GLdouble *equation)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetClipPlane(plane=%lu, equation=%p)\n", plane, equation);
+#endif
+ glGetClipPlane(plane, equation);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetClipPlane");
+#endif
+}
+
+// void glGetDoublev (GLenum pname, GLdouble *params);
+static inline void qglGetDoublev(GLenum pname, GLdouble *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetDoublev(pname=%lu, params=%p)\n", pname, params);
+#endif
+ glGetDoublev(pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetDoublev");
+#endif
+}
+
+// GLenum glGetError (void);
+static inline GLenum qglGetError(void)
+{
+ GLenum returnValue;
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetError(void)\n");
+#endif
+ returnValue = glGetError();
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetError");
+#endif
+ return returnValue;
+}
+
+// void glGetFloatv (GLenum pname, GLfloat *params);
+static inline void qglGetFloatv(GLenum pname, GLfloat *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetFloatv(pname=%lu, params=%p)\n", pname, params);
+#endif
+ glGetFloatv(pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetFloatv");
+#endif
+}
+
+// void glGetIntegerv (GLenum pname, GLint *params);
+static inline void qglGetIntegerv(GLenum pname, GLint *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetIntegerv(pname=%lu, params=%p)\n", pname, params);
+#endif
+ glGetIntegerv(pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetIntegerv");
+#endif
+}
+
+// void glGetLightfv (GLenum light, GLenum pname, GLfloat *params);
+static inline void qglGetLightfv(GLenum light, GLenum pname, GLfloat *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetLightfv(light=%lu, pname=%lu, params=%p)\n", light, pname, params);
+#endif
+ glGetLightfv(light, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetLightfv");
+#endif
+}
+
+// void glGetLightiv (GLenum light, GLenum pname, GLint *params);
+static inline void qglGetLightiv(GLenum light, GLenum pname, GLint *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetLightiv(light=%lu, pname=%lu, params=%p)\n", light, pname, params);
+#endif
+ glGetLightiv(light, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetLightiv");
+#endif
+}
+
+// void glGetMapdv (GLenum target, GLenum query, GLdouble *v);
+static inline void qglGetMapdv(GLenum target, GLenum query, GLdouble *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetMapdv(target=%lu, query=%lu, v=%p)\n", target, query, v);
+#endif
+ glGetMapdv(target, query, v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetMapdv");
+#endif
+}
+
+// void glGetMapfv (GLenum target, GLenum query, GLfloat *v);
+static inline void qglGetMapfv(GLenum target, GLenum query, GLfloat *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetMapfv(target=%lu, query=%lu, v=%p)\n", target, query, v);
+#endif
+ glGetMapfv(target, query, v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetMapfv");
+#endif
+}
+
+// void glGetMapiv (GLenum target, GLenum query, GLint *v);
+static inline void qglGetMapiv(GLenum target, GLenum query, GLint *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetMapiv(target=%lu, query=%lu, v=%p)\n", target, query, v);
+#endif
+ glGetMapiv(target, query, v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetMapiv");
+#endif
+}
+
+// void glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params);
+static inline void qglGetMaterialfv(GLenum face, GLenum pname, GLfloat *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetMaterialfv(face=%lu, pname=%lu, params=%p)\n", face, pname, params);
+#endif
+ glGetMaterialfv(face, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetMaterialfv");
+#endif
+}
+
+// void glGetMaterialiv (GLenum face, GLenum pname, GLint *params);
+static inline void qglGetMaterialiv(GLenum face, GLenum pname, GLint *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetMaterialiv(face=%lu, pname=%lu, params=%p)\n", face, pname, params);
+#endif
+ glGetMaterialiv(face, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetMaterialiv");
+#endif
+}
+
+// void glGetPixelMapfv (GLenum map, GLfloat *values);
+static inline void qglGetPixelMapfv(GLenum map, GLfloat *values)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetPixelMapfv(map=%lu, values=%p)\n", map, values);
+#endif
+ glGetPixelMapfv(map, values);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetPixelMapfv");
+#endif
+}
+
+// void glGetPixelMapuiv (GLenum map, GLuint *values);
+static inline void qglGetPixelMapuiv(GLenum map, GLuint *values)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetPixelMapuiv(map=%lu, values=%p)\n", map, values);
+#endif
+ glGetPixelMapuiv(map, values);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetPixelMapuiv");
+#endif
+}
+
+// void glGetPixelMapusv (GLenum map, GLushort *values);
+static inline void qglGetPixelMapusv(GLenum map, GLushort *values)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetPixelMapusv(map=%lu, values=%p)\n", map, values);
+#endif
+ glGetPixelMapusv(map, values);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetPixelMapusv");
+#endif
+}
+
+// void glGetPointerv (GLenum pname, GLvoid* *params);
+static inline void qglGetPointerv(GLenum pname, GLvoid* *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetPointerv(pname=%lu, params=%p)\n", pname, params);
+#endif
+ glGetPointerv(pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetPointerv");
+#endif
+}
+
+// void glGetPolygonStipple (GLubyte *mask);
+static inline void qglGetPolygonStipple(GLubyte *mask)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetPolygonStipple(mask=%p)\n", mask);
+#endif
+ glGetPolygonStipple(mask);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetPolygonStipple");
+#endif
+}
+
+// const GLubyte * glGetString (GLenum name);
+static inline const GLubyte * qglGetString(GLenum name)
+{
+ const GLubyte * returnValue;
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetString(name=%lu)\n", name);
+#endif
+ returnValue = glGetString(name);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetString");
+#endif
+ return returnValue;
+}
+
+// void glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params);
+static inline void qglGetTexEnvfv(GLenum target, GLenum pname, GLfloat *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetTexEnvfv(target=%lu, pname=%lu, params=%p)\n", target, pname, params);
+#endif
+ glGetTexEnvfv(target, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetTexEnvfv");
+#endif
+}
+
+// void glGetTexEnviv (GLenum target, GLenum pname, GLint *params);
+static inline void qglGetTexEnviv(GLenum target, GLenum pname, GLint *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetTexEnviv(target=%lu, pname=%lu, params=%p)\n", target, pname, params);
+#endif
+ glGetTexEnviv(target, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetTexEnviv");
+#endif
+}
+
+// void glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params);
+static inline void qglGetTexGendv(GLenum coord, GLenum pname, GLdouble *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetTexGendv(coord=%lu, pname=%lu, params=%p)\n", coord, pname, params);
+#endif
+ glGetTexGendv(coord, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetTexGendv");
+#endif
+}
+
+// void glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params);
+static inline void qglGetTexGenfv(GLenum coord, GLenum pname, GLfloat *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetTexGenfv(coord=%lu, pname=%lu, params=%p)\n", coord, pname, params);
+#endif
+ glGetTexGenfv(coord, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetTexGenfv");
+#endif
+}
+
+// void glGetTexGeniv (GLenum coord, GLenum pname, GLint *params);
+static inline void qglGetTexGeniv(GLenum coord, GLenum pname, GLint *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetTexGeniv(coord=%lu, pname=%lu, params=%p)\n", coord, pname, params);
+#endif
+ glGetTexGeniv(coord, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetTexGeniv");
+#endif
+}
+
+// void glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
+static inline void qglGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetTexImage(target=%lu, level=%ld, format=%lu, type=%lu, pixels=%p)\n", target, level, format, type, pixels);
+#endif
+ glGetTexImage(target, level, format, type, pixels);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetTexImage");
+#endif
+}
+
+// void glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params);
+static inline void qglGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetTexLevelParameterfv(target=%lu, level=%ld, pname=%lu, params=%p)\n", target, level, pname, params);
+#endif
+ glGetTexLevelParameterfv(target, level, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetTexLevelParameterfv");
+#endif
+}
+
+// void glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params);
+static inline void qglGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetTexLevelParameteriv(target=%lu, level=%ld, pname=%lu, params=%p)\n", target, level, pname, params);
+#endif
+ glGetTexLevelParameteriv(target, level, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetTexLevelParameteriv");
+#endif
+}
+
+// void glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
+static inline void qglGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetTexParameterfv(target=%lu, pname=%lu, params=%p)\n", target, pname, params);
+#endif
+ glGetTexParameterfv(target, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetTexParameterfv");
+#endif
+}
+
+// void glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
+static inline void qglGetTexParameteriv(GLenum target, GLenum pname, GLint *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glGetTexParameteriv(target=%lu, pname=%lu, params=%p)\n", target, pname, params);
+#endif
+ glGetTexParameteriv(target, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glGetTexParameteriv");
+#endif
+}
+
+// void glHint (GLenum target, GLenum mode);
+static inline void qglHint(GLenum target, GLenum mode)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glHint(target=%lu, mode=%lu)\n", target, mode);
+#endif
+ glHint(target, mode);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glHint");
+#endif
+}
+
+// void glIndexMask (GLuint mask);
+static inline void qglIndexMask(GLuint mask)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glIndexMask(mask=%lu)\n", mask);
+#endif
+ glIndexMask(mask);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glIndexMask");
+#endif
+}
+
+// void glIndexPointer (GLenum type, GLsizei stride, const GLvoid *pointer);
+static inline void qglIndexPointer(GLenum type, GLsizei stride, const GLvoid *pointer)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glIndexPointer(type=%lu, stride=%ld, pointer=%p)\n", type, stride, pointer);
+#endif
+ glIndexPointer(type, stride, pointer);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glIndexPointer");
+#endif
+}
+
+// void glIndexd (GLdouble c);
+static inline void qglIndexd(GLdouble c)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glIndexd(c=%f)\n", c);
+#endif
+ glIndexd(c);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glIndexd");
+#endif
+}
+
+// void glIndexdv (const GLdouble *c);
+static inline void qglIndexdv(const GLdouble *c)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glIndexdv(c=%p)\n", c);
+#endif
+ glIndexdv(c);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glIndexdv");
+#endif
+}
+
+// void glIndexf (GLfloat c);
+static inline void qglIndexf(GLfloat c)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glIndexf(c=%f)\n", c);
+#endif
+ glIndexf(c);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glIndexf");
+#endif
+}
+
+// void glIndexfv (const GLfloat *c);
+static inline void qglIndexfv(const GLfloat *c)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glIndexfv(c=%p)\n", c);
+#endif
+ glIndexfv(c);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glIndexfv");
+#endif
+}
+
+// void glIndexi (GLint c);
+static inline void qglIndexi(GLint c)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glIndexi(c=%ld)\n", c);
+#endif
+ glIndexi(c);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glIndexi");
+#endif
+}
+
+// void glIndexiv (const GLint *c);
+static inline void qglIndexiv(const GLint *c)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glIndexiv(c=%p)\n", c);
+#endif
+ glIndexiv(c);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glIndexiv");
+#endif
+}
+
+// void glIndexs (GLshort c);
+static inline void qglIndexs(GLshort c)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glIndexs(c=%d)\n", c);
+#endif
+ glIndexs(c);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glIndexs");
+#endif
+}
+
+// void glIndexsv (const GLshort *c);
+static inline void qglIndexsv(const GLshort *c)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glIndexsv(c=%p)\n", c);
+#endif
+ glIndexsv(c);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glIndexsv");
+#endif
+}
+
+// void glIndexub (GLubyte c);
+static inline void qglIndexub(GLubyte c)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glIndexub(c=%u)\n", c);
+#endif
+ glIndexub(c);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glIndexub");
+#endif
+}
+
+// void glIndexubv (const GLubyte *c);
+static inline void qglIndexubv(const GLubyte *c)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glIndexubv(c=%p)\n", c);
+#endif
+ glIndexubv(c);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glIndexubv");
+#endif
+}
+
+// void glInitNames (void);
+static inline void qglInitNames(void)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glInitNames(void)\n");
+#endif
+ glInitNames();
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glInitNames");
+#endif
+}
+
+// void glInterleavedArrays (GLenum format, GLsizei stride, const GLvoid *pointer);
+static inline void qglInterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glInterleavedArrays(format=%lu, stride=%ld, pointer=%p)\n", format, stride, pointer);
+#endif
+ glInterleavedArrays(format, stride, pointer);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glInterleavedArrays");
+#endif
+}
+
+// GLboolean glIsEnabled (GLenum cap);
+static inline GLboolean qglIsEnabled(GLenum cap)
+{
+ GLboolean returnValue;
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glIsEnabled(cap=%lu)\n", cap);
+#endif
+ returnValue = glIsEnabled(cap);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glIsEnabled");
+#endif
+ return returnValue;
+}
+
+// GLboolean glIsList (GLuint list);
+static inline GLboolean qglIsList(GLuint list)
+{
+ GLboolean returnValue;
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glIsList(list=%lu)\n", list);
+#endif
+ returnValue = glIsList(list);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glIsList");
+#endif
+ return returnValue;
+}
+
+// GLboolean glIsTexture (GLuint texture);
+static inline GLboolean qglIsTexture(GLuint texture)
+{
+ GLboolean returnValue;
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glIsTexture(texture=%lu)\n", texture);
+#endif
+ returnValue = glIsTexture(texture);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glIsTexture");
+#endif
+ return returnValue;
+}
+
+// void glLightModelf (GLenum pname, GLfloat param);
+static inline void qglLightModelf(GLenum pname, GLfloat param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glLightModelf(pname=%lu, param=%f)\n", pname, param);
+#endif
+ glLightModelf(pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glLightModelf");
+#endif
+}
+
+// void glLightModelfv (GLenum pname, const GLfloat *params);
+static inline void qglLightModelfv(GLenum pname, const GLfloat *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glLightModelfv(pname=%lu, params=%p)\n", pname, params);
+#endif
+ glLightModelfv(pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glLightModelfv");
+#endif
+}
+
+// void glLightModeli (GLenum pname, GLint param);
+static inline void qglLightModeli(GLenum pname, GLint param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glLightModeli(pname=%lu, param=%ld)\n", pname, param);
+#endif
+ glLightModeli(pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glLightModeli");
+#endif
+}
+
+// void glLightModeliv (GLenum pname, const GLint *params);
+static inline void qglLightModeliv(GLenum pname, const GLint *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glLightModeliv(pname=%lu, params=%p)\n", pname, params);
+#endif
+ glLightModeliv(pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glLightModeliv");
+#endif
+}
+
+// void glLightf (GLenum light, GLenum pname, GLfloat param);
+static inline void qglLightf(GLenum light, GLenum pname, GLfloat param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glLightf(light=%lu, pname=%lu, param=%f)\n", light, pname, param);
+#endif
+ glLightf(light, pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glLightf");
+#endif
+}
+
+// void glLightfv (GLenum light, GLenum pname, const GLfloat *params);
+static inline void qglLightfv(GLenum light, GLenum pname, const GLfloat *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glLightfv(light=%lu, pname=%lu, params=%p)\n", light, pname, params);
+#endif
+ glLightfv(light, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glLightfv");
+#endif
+}
+
+// void glLighti (GLenum light, GLenum pname, GLint param);
+static inline void qglLighti(GLenum light, GLenum pname, GLint param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glLighti(light=%lu, pname=%lu, param=%ld)\n", light, pname, param);
+#endif
+ glLighti(light, pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glLighti");
+#endif
+}
+
+// void glLightiv (GLenum light, GLenum pname, const GLint *params);
+static inline void qglLightiv(GLenum light, GLenum pname, const GLint *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glLightiv(light=%lu, pname=%lu, params=%p)\n", light, pname, params);
+#endif
+ glLightiv(light, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glLightiv");
+#endif
+}
+
+// void glLineStipple (GLint factor, GLushort pattern);
+static inline void qglLineStipple(GLint factor, GLushort pattern)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glLineStipple(factor=%ld, pattern=%u)\n", factor, pattern);
+#endif
+ glLineStipple(factor, pattern);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glLineStipple");
+#endif
+}
+
+// void glLineWidth (GLfloat width);
+static inline void qglLineWidth(GLfloat width)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glLineWidth(width=%f)\n", width);
+#endif
+ glLineWidth(width);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glLineWidth");
+#endif
+}
+
+// void glListBase (GLuint base);
+static inline void qglListBase(GLuint base)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glListBase(base=%lu)\n", base);
+#endif
+ glListBase(base);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glListBase");
+#endif
+}
+
+// void glLoadIdentity (void);
+static inline void qglLoadIdentity(void)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glLoadIdentity(void)\n");
+#endif
+ glLoadIdentity();
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glLoadIdentity");
+#endif
+}
+
+// void glLoadMatrixd (const GLdouble *m);
+static inline void qglLoadMatrixd(const GLdouble *m)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glLoadMatrixd(m=%p)\n", m);
+#endif
+ glLoadMatrixd(m);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glLoadMatrixd");
+#endif
+}
+
+// void glLoadMatrixf (const GLfloat *m);
+static inline void qglLoadMatrixf(const GLfloat *m)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glLoadMatrixf(m=%p)\n", m);
+#endif
+ glLoadMatrixf(m);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glLoadMatrixf");
+#endif
+}
+
+// void glLoadName (GLuint name);
+static inline void qglLoadName(GLuint name)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glLoadName(name=%lu)\n", name);
+#endif
+ glLoadName(name);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glLoadName");
+#endif
+}
+
+// void glLogicOp (GLenum opcode);
+static inline void qglLogicOp(GLenum opcode)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glLogicOp(opcode=%lu)\n", opcode);
+#endif
+ glLogicOp(opcode);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glLogicOp");
+#endif
+}
+
+// void glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
+static inline void qglMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glMap1d(target=%lu, u1=%f, u2=%f, stride=%ld, order=%ld, points=%p)\n", target, u1, u2, stride, order, points);
+#endif
+ glMap1d(target, u1, u2, stride, order, points);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glMap1d");
+#endif
+}
+
+// void glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
+static inline void qglMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glMap1f(target=%lu, u1=%f, u2=%f, stride=%ld, order=%ld, points=%p)\n", target, u1, u2, stride, order, points);
+#endif
+ glMap1f(target, u1, u2, stride, order, points);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glMap1f");
+#endif
+}
+
+// void glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
+static inline void qglMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glMap2d(target=%lu, u1=%f, u2=%f, ustride=%ld, uorder=%ld, v1=%f, v2=%f, vstride=%ld, vorder=%ld, points=%p)\n", target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+#endif
+ glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glMap2d");
+#endif
+}
+
+// void glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
+static inline void qglMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glMap2f(target=%lu, u1=%f, u2=%f, ustride=%ld, uorder=%ld, v1=%f, v2=%f, vstride=%ld, vorder=%ld, points=%p)\n", target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+#endif
+ glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glMap2f");
+#endif
+}
+
+// void glMapGrid1d (GLint un, GLdouble u1, GLdouble u2);
+static inline void qglMapGrid1d(GLint un, GLdouble u1, GLdouble u2)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glMapGrid1d(un=%ld, u1=%f, u2=%f)\n", un, u1, u2);
+#endif
+ glMapGrid1d(un, u1, u2);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glMapGrid1d");
+#endif
+}
+
+// void glMapGrid1f (GLint un, GLfloat u1, GLfloat u2);
+static inline void qglMapGrid1f(GLint un, GLfloat u1, GLfloat u2)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glMapGrid1f(un=%ld, u1=%f, u2=%f)\n", un, u1, u2);
+#endif
+ glMapGrid1f(un, u1, u2);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glMapGrid1f");
+#endif
+}
+
+// void glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+static inline void qglMapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glMapGrid2d(un=%ld, u1=%f, u2=%f, vn=%ld, v1=%f, v2=%f)\n", un, u1, u2, vn, v1, v2);
+#endif
+ glMapGrid2d(un, u1, u2, vn, v1, v2);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glMapGrid2d");
+#endif
+}
+
+// void glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+static inline void qglMapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glMapGrid2f(un=%ld, u1=%f, u2=%f, vn=%ld, v1=%f, v2=%f)\n", un, u1, u2, vn, v1, v2);
+#endif
+ glMapGrid2f(un, u1, u2, vn, v1, v2);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glMapGrid2f");
+#endif
+}
+
+// void glMaterialf (GLenum face, GLenum pname, GLfloat param);
+static inline void qglMaterialf(GLenum face, GLenum pname, GLfloat param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glMaterialf(face=%lu, pname=%lu, param=%f)\n", face, pname, param);
+#endif
+ glMaterialf(face, pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glMaterialf");
+#endif
+}
+
+// void glMaterialfv (GLenum face, GLenum pname, const GLfloat *params);
+static inline void qglMaterialfv(GLenum face, GLenum pname, const GLfloat *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glMaterialfv(face=%lu, pname=%lu, params=%p)\n", face, pname, params);
+#endif
+ glMaterialfv(face, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glMaterialfv");
+#endif
+}
+
+// void glMateriali (GLenum face, GLenum pname, GLint param);
+static inline void qglMateriali(GLenum face, GLenum pname, GLint param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glMateriali(face=%lu, pname=%lu, param=%ld)\n", face, pname, param);
+#endif
+ glMateriali(face, pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glMateriali");
+#endif
+}
+
+// void glMaterialiv (GLenum face, GLenum pname, const GLint *params);
+static inline void qglMaterialiv(GLenum face, GLenum pname, const GLint *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glMaterialiv(face=%lu, pname=%lu, params=%p)\n", face, pname, params);
+#endif
+ glMaterialiv(face, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glMaterialiv");
+#endif
+}
+
+// void glMatrixMode (GLenum mode);
+static inline void qglMatrixMode(GLenum mode)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glMatrixMode(mode=%lu)\n", mode);
+#endif
+ glMatrixMode(mode);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glMatrixMode");
+#endif
+}
+
+// void glMultMatrixd (const GLdouble *m);
+static inline void qglMultMatrixd(const GLdouble *m)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glMultMatrixd(m=%p)\n", m);
+#endif
+ glMultMatrixd(m);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glMultMatrixd");
+#endif
+}
+
+// void glMultMatrixf (const GLfloat *m);
+static inline void qglMultMatrixf(const GLfloat *m)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glMultMatrixf(m=%p)\n", m);
+#endif
+ glMultMatrixf(m);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glMultMatrixf");
+#endif
+}
+
+// void glNewList (GLuint list, GLenum mode);
+static inline void qglNewList(GLuint list, GLenum mode)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glNewList(list=%lu, mode=%lu)\n", list, mode);
+#endif
+ glNewList(list, mode);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glNewList");
+#endif
+}
+
+// void glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz);
+static inline void qglNormal3b(GLbyte nx, GLbyte ny, GLbyte nz)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glNormal3b(nx=%d, ny=%d, nz=%d)\n", nx, ny, nz);
+#endif
+ glNormal3b(nx, ny, nz);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glNormal3b");
+#endif
+}
+
+// void glNormal3bv (const GLbyte *v);
+static inline void qglNormal3bv(const GLbyte *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glNormal3bv(v=%p)\n", v);
+#endif
+ glNormal3bv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glNormal3bv");
+#endif
+}
+
+// void glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz);
+static inline void qglNormal3d(GLdouble nx, GLdouble ny, GLdouble nz)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glNormal3d(nx=%f, ny=%f, nz=%f)\n", nx, ny, nz);
+#endif
+ glNormal3d(nx, ny, nz);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glNormal3d");
+#endif
+}
+
+// void glNormal3dv (const GLdouble *v);
+static inline void qglNormal3dv(const GLdouble *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glNormal3dv(v=%p)\n", v);
+#endif
+ glNormal3dv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glNormal3dv");
+#endif
+}
+
+// void glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz);
+static inline void qglNormal3f(GLfloat nx, GLfloat ny, GLfloat nz)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glNormal3f(nx=%f, ny=%f, nz=%f)\n", nx, ny, nz);
+#endif
+ glNormal3f(nx, ny, nz);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glNormal3f");
+#endif
+}
+
+// void glNormal3fv (const GLfloat *v);
+static inline void qglNormal3fv(const GLfloat *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glNormal3fv(v=%p)\n", v);
+#endif
+ glNormal3fv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glNormal3fv");
+#endif
+}
+
+// void glNormal3i (GLint nx, GLint ny, GLint nz);
+static inline void qglNormal3i(GLint nx, GLint ny, GLint nz)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glNormal3i(nx=%ld, ny=%ld, nz=%ld)\n", nx, ny, nz);
+#endif
+ glNormal3i(nx, ny, nz);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glNormal3i");
+#endif
+}
+
+// void glNormal3iv (const GLint *v);
+static inline void qglNormal3iv(const GLint *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glNormal3iv(v=%p)\n", v);
+#endif
+ glNormal3iv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glNormal3iv");
+#endif
+}
+
+// void glNormal3s (GLshort nx, GLshort ny, GLshort nz);
+static inline void qglNormal3s(GLshort nx, GLshort ny, GLshort nz)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glNormal3s(nx=%d, ny=%d, nz=%d)\n", nx, ny, nz);
+#endif
+ glNormal3s(nx, ny, nz);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glNormal3s");
+#endif
+}
+
+// void glNormal3sv (const GLshort *v);
+static inline void qglNormal3sv(const GLshort *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glNormal3sv(v=%p)\n", v);
+#endif
+ glNormal3sv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glNormal3sv");
+#endif
+}
+
+// void glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer);
+static inline void qglNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glNormalPointer(type=%lu, stride=%ld, pointer=%p)\n", type, stride, pointer);
+#endif
+ glNormalPointer(type, stride, pointer);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glNormalPointer");
+#endif
+}
+
+// void glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+static inline void qglOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glOrtho(left=%f, right=%f, bottom=%f, top=%f, zNear=%f, zFar=%f)\n", left, right, bottom, top, zNear, zFar);
+#endif
+ glOrtho(left, right, bottom, top, zNear, zFar);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glOrtho");
+#endif
+}
+
+// void glPassThrough (GLfloat token);
+static inline void qglPassThrough(GLfloat token)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPassThrough(token=%f)\n", token);
+#endif
+ glPassThrough(token);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPassThrough");
+#endif
+}
+
+// void glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values);
+static inline void qglPixelMapfv(GLenum map, GLsizei mapsize, const GLfloat *values)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPixelMapfv(map=%lu, mapsize=%ld, values=%p)\n", map, mapsize, values);
+#endif
+ glPixelMapfv(map, mapsize, values);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPixelMapfv");
+#endif
+}
+
+// void glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values);
+static inline void qglPixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPixelMapuiv(map=%lu, mapsize=%ld, values=%p)\n", map, mapsize, values);
+#endif
+ glPixelMapuiv(map, mapsize, values);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPixelMapuiv");
+#endif
+}
+
+// void glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values);
+static inline void qglPixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPixelMapusv(map=%lu, mapsize=%ld, values=%p)\n", map, mapsize, values);
+#endif
+ glPixelMapusv(map, mapsize, values);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPixelMapusv");
+#endif
+}
+
+// void glPixelStoref (GLenum pname, GLfloat param);
+static inline void qglPixelStoref(GLenum pname, GLfloat param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPixelStoref(pname=%lu, param=%f)\n", pname, param);
+#endif
+ glPixelStoref(pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPixelStoref");
+#endif
+}
+
+// void glPixelStorei (GLenum pname, GLint param);
+static inline void qglPixelStorei(GLenum pname, GLint param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPixelStorei(pname=%lu, param=%ld)\n", pname, param);
+#endif
+ glPixelStorei(pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPixelStorei");
+#endif
+}
+
+// void glPixelTransferf (GLenum pname, GLfloat param);
+static inline void qglPixelTransferf(GLenum pname, GLfloat param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPixelTransferf(pname=%lu, param=%f)\n", pname, param);
+#endif
+ glPixelTransferf(pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPixelTransferf");
+#endif
+}
+
+// void glPixelTransferi (GLenum pname, GLint param);
+static inline void qglPixelTransferi(GLenum pname, GLint param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPixelTransferi(pname=%lu, param=%ld)\n", pname, param);
+#endif
+ glPixelTransferi(pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPixelTransferi");
+#endif
+}
+
+// void glPixelZoom (GLfloat xfactor, GLfloat yfactor);
+static inline void qglPixelZoom(GLfloat xfactor, GLfloat yfactor)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPixelZoom(xfactor=%f, yfactor=%f)\n", xfactor, yfactor);
+#endif
+ glPixelZoom(xfactor, yfactor);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPixelZoom");
+#endif
+}
+
+// void glPointSize (GLfloat size);
+static inline void qglPointSize(GLfloat size)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPointSize(size=%f)\n", size);
+#endif
+ glPointSize(size);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPointSize");
+#endif
+}
+
+// void glPolygonMode (GLenum face, GLenum mode);
+static inline void qglPolygonMode(GLenum face, GLenum mode)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPolygonMode(face=%lu, mode=%lu)\n", face, mode);
+#endif
+ glPolygonMode(face, mode);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPolygonMode");
+#endif
+}
+
+// void glPolygonOffset (GLfloat factor, GLfloat units);
+static inline void qglPolygonOffset(GLfloat factor, GLfloat units)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPolygonOffset(factor=%f, units=%f)\n", factor, units);
+#endif
+ glPolygonOffset(factor, units);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPolygonOffset");
+#endif
+}
+
+// void glPolygonStipple (const GLubyte *mask);
+static inline void qglPolygonStipple(const GLubyte *mask)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPolygonStipple(mask=%p)\n", mask);
+#endif
+ glPolygonStipple(mask);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPolygonStipple");
+#endif
+}
+
+// void glPopAttrib (void);
+static inline void qglPopAttrib(void)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPopAttrib(void)\n");
+#endif
+ glPopAttrib();
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPopAttrib");
+#endif
+}
+
+// void glPopClientAttrib (void);
+static inline void qglPopClientAttrib(void)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPopClientAttrib(void)\n");
+#endif
+ glPopClientAttrib();
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPopClientAttrib");
+#endif
+}
+
+// void glPopMatrix (void);
+static inline void qglPopMatrix(void)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPopMatrix(void)\n");
+#endif
+ glPopMatrix();
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPopMatrix");
+#endif
+}
+
+// void glPopName (void);
+static inline void qglPopName(void)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPopName(void)\n");
+#endif
+ glPopName();
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPopName");
+#endif
+}
+
+// void glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities);
+static inline void qglPrioritizeTextures(GLsizei n, const GLuint *textures, const GLclampf *priorities)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPrioritizeTextures(n=%ld, textures=%p, priorities=%p)\n", n, textures, priorities);
+#endif
+ glPrioritizeTextures(n, textures, priorities);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPrioritizeTextures");
+#endif
+}
+
+// void glPushAttrib (GLbitfield mask);
+static inline void qglPushAttrib(GLbitfield mask)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPushAttrib(mask=%lu)\n", mask);
+#endif
+ glPushAttrib(mask);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPushAttrib");
+#endif
+}
+
+// void glPushClientAttrib (GLbitfield mask);
+static inline void qglPushClientAttrib(GLbitfield mask)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPushClientAttrib(mask=%lu)\n", mask);
+#endif
+ glPushClientAttrib(mask);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPushClientAttrib");
+#endif
+}
+
+// void glPushMatrix (void);
+static inline void qglPushMatrix(void)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPushMatrix(void)\n");
+#endif
+ glPushMatrix();
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPushMatrix");
+#endif
+}
+
+// void glPushName (GLuint name);
+static inline void qglPushName(GLuint name)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glPushName(name=%lu)\n", name);
+#endif
+ glPushName(name);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glPushName");
+#endif
+}
+
+// void glRasterPos2d (GLdouble x, GLdouble y);
+static inline void qglRasterPos2d(GLdouble x, GLdouble y)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos2d(x=%f, y=%f)\n", x, y);
+#endif
+ glRasterPos2d(x, y);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos2d");
+#endif
+}
+
+// void glRasterPos2dv (const GLdouble *v);
+static inline void qglRasterPos2dv(const GLdouble *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos2dv(v=%p)\n", v);
+#endif
+ glRasterPos2dv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos2dv");
+#endif
+}
+
+// void glRasterPos2f (GLfloat x, GLfloat y);
+static inline void qglRasterPos2f(GLfloat x, GLfloat y)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos2f(x=%f, y=%f)\n", x, y);
+#endif
+ glRasterPos2f(x, y);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos2f");
+#endif
+}
+
+// void glRasterPos2fv (const GLfloat *v);
+static inline void qglRasterPos2fv(const GLfloat *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos2fv(v=%p)\n", v);
+#endif
+ glRasterPos2fv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos2fv");
+#endif
+}
+
+// void glRasterPos2i (GLint x, GLint y);
+static inline void qglRasterPos2i(GLint x, GLint y)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos2i(x=%ld, y=%ld)\n", x, y);
+#endif
+ glRasterPos2i(x, y);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos2i");
+#endif
+}
+
+// void glRasterPos2iv (const GLint *v);
+static inline void qglRasterPos2iv(const GLint *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos2iv(v=%p)\n", v);
+#endif
+ glRasterPos2iv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos2iv");
+#endif
+}
+
+// void glRasterPos2s (GLshort x, GLshort y);
+static inline void qglRasterPos2s(GLshort x, GLshort y)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos2s(x=%d, y=%d)\n", x, y);
+#endif
+ glRasterPos2s(x, y);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos2s");
+#endif
+}
+
+// void glRasterPos2sv (const GLshort *v);
+static inline void qglRasterPos2sv(const GLshort *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos2sv(v=%p)\n", v);
+#endif
+ glRasterPos2sv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos2sv");
+#endif
+}
+
+// void glRasterPos3d (GLdouble x, GLdouble y, GLdouble z);
+static inline void qglRasterPos3d(GLdouble x, GLdouble y, GLdouble z)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos3d(x=%f, y=%f, z=%f)\n", x, y, z);
+#endif
+ glRasterPos3d(x, y, z);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos3d");
+#endif
+}
+
+// void glRasterPos3dv (const GLdouble *v);
+static inline void qglRasterPos3dv(const GLdouble *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos3dv(v=%p)\n", v);
+#endif
+ glRasterPos3dv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos3dv");
+#endif
+}
+
+// void glRasterPos3f (GLfloat x, GLfloat y, GLfloat z);
+static inline void qglRasterPos3f(GLfloat x, GLfloat y, GLfloat z)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos3f(x=%f, y=%f, z=%f)\n", x, y, z);
+#endif
+ glRasterPos3f(x, y, z);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos3f");
+#endif
+}
+
+// void glRasterPos3fv (const GLfloat *v);
+static inline void qglRasterPos3fv(const GLfloat *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos3fv(v=%p)\n", v);
+#endif
+ glRasterPos3fv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos3fv");
+#endif
+}
+
+// void glRasterPos3i (GLint x, GLint y, GLint z);
+static inline void qglRasterPos3i(GLint x, GLint y, GLint z)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos3i(x=%ld, y=%ld, z=%ld)\n", x, y, z);
+#endif
+ glRasterPos3i(x, y, z);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos3i");
+#endif
+}
+
+// void glRasterPos3iv (const GLint *v);
+static inline void qglRasterPos3iv(const GLint *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos3iv(v=%p)\n", v);
+#endif
+ glRasterPos3iv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos3iv");
+#endif
+}
+
+// void glRasterPos3s (GLshort x, GLshort y, GLshort z);
+static inline void qglRasterPos3s(GLshort x, GLshort y, GLshort z)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos3s(x=%d, y=%d, z=%d)\n", x, y, z);
+#endif
+ glRasterPos3s(x, y, z);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos3s");
+#endif
+}
+
+// void glRasterPos3sv (const GLshort *v);
+static inline void qglRasterPos3sv(const GLshort *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos3sv(v=%p)\n", v);
+#endif
+ glRasterPos3sv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos3sv");
+#endif
+}
+
+// void glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+static inline void qglRasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos4d(x=%f, y=%f, z=%f, w=%f)\n", x, y, z, w);
+#endif
+ glRasterPos4d(x, y, z, w);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos4d");
+#endif
+}
+
+// void glRasterPos4dv (const GLdouble *v);
+static inline void qglRasterPos4dv(const GLdouble *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos4dv(v=%p)\n", v);
+#endif
+ glRasterPos4dv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos4dv");
+#endif
+}
+
+// void glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+static inline void qglRasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos4f(x=%f, y=%f, z=%f, w=%f)\n", x, y, z, w);
+#endif
+ glRasterPos4f(x, y, z, w);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos4f");
+#endif
+}
+
+// void glRasterPos4fv (const GLfloat *v);
+static inline void qglRasterPos4fv(const GLfloat *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos4fv(v=%p)\n", v);
+#endif
+ glRasterPos4fv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos4fv");
+#endif
+}
+
+// void glRasterPos4i (GLint x, GLint y, GLint z, GLint w);
+static inline void qglRasterPos4i(GLint x, GLint y, GLint z, GLint w)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos4i(x=%ld, y=%ld, z=%ld, w=%ld)\n", x, y, z, w);
+#endif
+ glRasterPos4i(x, y, z, w);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos4i");
+#endif
+}
+
+// void glRasterPos4iv (const GLint *v);
+static inline void qglRasterPos4iv(const GLint *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos4iv(v=%p)\n", v);
+#endif
+ glRasterPos4iv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos4iv");
+#endif
+}
+
+// void glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w);
+static inline void qglRasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos4s(x=%d, y=%d, z=%d, w=%d)\n", x, y, z, w);
+#endif
+ glRasterPos4s(x, y, z, w);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos4s");
+#endif
+}
+
+// void glRasterPos4sv (const GLshort *v);
+static inline void qglRasterPos4sv(const GLshort *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRasterPos4sv(v=%p)\n", v);
+#endif
+ glRasterPos4sv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRasterPos4sv");
+#endif
+}
+
+// void glReadBuffer (GLenum mode);
+static inline void qglReadBuffer(GLenum mode)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glReadBuffer(mode=%lu)\n", mode);
+#endif
+ glReadBuffer(mode);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glReadBuffer");
+#endif
+}
+
+// void glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
+static inline void qglReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glReadPixels(x=%ld, y=%ld, width=%ld, height=%ld, format=%lu, type=%lu, pixels=%p)\n", x, y, width, height, format, type, pixels);
+#endif
+ glReadPixels(x, y, width, height, format, type, pixels);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glReadPixels");
+#endif
+}
+
+// void glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+static inline void qglRectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRectd(x1=%f, y1=%f, x2=%f, y2=%f)\n", x1, y1, x2, y2);
+#endif
+ glRectd(x1, y1, x2, y2);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRectd");
+#endif
+}
+
+// void glRectdv (const GLdouble *v1, const GLdouble *v2);
+static inline void qglRectdv(const GLdouble *v1, const GLdouble *v2)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRectdv(v1=%p, v2=%p)\n", v1, v2);
+#endif
+ glRectdv(v1, v2);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRectdv");
+#endif
+}
+
+// void glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+static inline void qglRectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRectf(x1=%f, y1=%f, x2=%f, y2=%f)\n", x1, y1, x2, y2);
+#endif
+ glRectf(x1, y1, x2, y2);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRectf");
+#endif
+}
+
+// void glRectfv (const GLfloat *v1, const GLfloat *v2);
+static inline void qglRectfv(const GLfloat *v1, const GLfloat *v2)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRectfv(v1=%p, v2=%p)\n", v1, v2);
+#endif
+ glRectfv(v1, v2);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRectfv");
+#endif
+}
+
+// void glRecti (GLint x1, GLint y1, GLint x2, GLint y2);
+static inline void qglRecti(GLint x1, GLint y1, GLint x2, GLint y2)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRecti(x1=%ld, y1=%ld, x2=%ld, y2=%ld)\n", x1, y1, x2, y2);
+#endif
+ glRecti(x1, y1, x2, y2);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRecti");
+#endif
+}
+
+// void glRectiv (const GLint *v1, const GLint *v2);
+static inline void qglRectiv(const GLint *v1, const GLint *v2)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRectiv(v1=%p, v2=%p)\n", v1, v2);
+#endif
+ glRectiv(v1, v2);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRectiv");
+#endif
+}
+
+// void glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+static inline void qglRects(GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRects(x1=%d, y1=%d, x2=%d, y2=%d)\n", x1, y1, x2, y2);
+#endif
+ glRects(x1, y1, x2, y2);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRects");
+#endif
+}
+
+// void glRectsv (const GLshort *v1, const GLshort *v2);
+static inline void qglRectsv(const GLshort *v1, const GLshort *v2)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRectsv(v1=%p, v2=%p)\n", v1, v2);
+#endif
+ glRectsv(v1, v2);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRectsv");
+#endif
+}
+
+// GLint glRenderMode (GLenum mode);
+static inline GLint qglRenderMode(GLenum mode)
+{
+ GLint returnValue;
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRenderMode(mode=%lu)\n", mode);
+#endif
+ returnValue = glRenderMode(mode);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRenderMode");
+#endif
+ return returnValue;
+}
+
+// void glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+static inline void qglRotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRotated(angle=%f, x=%f, y=%f, z=%f)\n", angle, x, y, z);
+#endif
+ glRotated(angle, x, y, z);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRotated");
+#endif
+}
+
+// void glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+static inline void qglRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glRotatef(angle=%f, x=%f, y=%f, z=%f)\n", angle, x, y, z);
+#endif
+ glRotatef(angle, x, y, z);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glRotatef");
+#endif
+}
+
+// void glScaled (GLdouble x, GLdouble y, GLdouble z);
+static inline void qglScaled(GLdouble x, GLdouble y, GLdouble z)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glScaled(x=%f, y=%f, z=%f)\n", x, y, z);
+#endif
+ glScaled(x, y, z);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glScaled");
+#endif
+}
+
+// void glScalef (GLfloat x, GLfloat y, GLfloat z);
+static inline void qglScalef(GLfloat x, GLfloat y, GLfloat z)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glScalef(x=%f, y=%f, z=%f)\n", x, y, z);
+#endif
+ glScalef(x, y, z);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glScalef");
+#endif
+}
+
+// void glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
+static inline void qglScissor(GLint x, GLint y, GLsizei width, GLsizei height)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glScissor(x=%ld, y=%ld, width=%ld, height=%ld)\n", x, y, width, height);
+#endif
+ glScissor(x, y, width, height);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glScissor");
+#endif
+}
+
+// void glSelectBuffer (GLsizei size, GLuint *buffer);
+static inline void qglSelectBuffer(GLsizei size, GLuint *buffer)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glSelectBuffer(size=%ld, buffer=%p)\n", size, buffer);
+#endif
+ glSelectBuffer(size, buffer);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glSelectBuffer");
+#endif
+}
+
+// void glShadeModel (GLenum mode);
+static inline void qglShadeModel(GLenum mode)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glShadeModel(mode=%lu)\n", mode);
+#endif
+ glShadeModel(mode);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glShadeModel");
+#endif
+}
+
+// void glStencilFunc (GLenum func, GLint ref, GLuint mask);
+static inline void qglStencilFunc(GLenum func, GLint ref, GLuint mask)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glStencilFunc(func=%lu, ref=%ld, mask=%lu)\n", func, ref, mask);
+#endif
+ glStencilFunc(func, ref, mask);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glStencilFunc");
+#endif
+}
+
+// void glStencilMask (GLuint mask);
+static inline void qglStencilMask(GLuint mask)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glStencilMask(mask=%lu)\n", mask);
+#endif
+ glStencilMask(mask);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glStencilMask");
+#endif
+}
+
+// void glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
+static inline void qglStencilOp(GLenum fail, GLenum zfail, GLenum zpass)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glStencilOp(fail=%lu, zfail=%lu, zpass=%lu)\n", fail, zfail, zpass);
+#endif
+ glStencilOp(fail, zfail, zpass);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glStencilOp");
+#endif
+}
+
+// void glTexCoord1d (GLdouble s);
+static inline void qglTexCoord1d(GLdouble s)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord1d(s=%f)\n", s);
+#endif
+ glTexCoord1d(s);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord1d");
+#endif
+}
+
+// void glTexCoord1dv (const GLdouble *v);
+static inline void qglTexCoord1dv(const GLdouble *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord1dv(v=%p)\n", v);
+#endif
+ glTexCoord1dv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord1dv");
+#endif
+}
+
+// void glTexCoord1f (GLfloat s);
+static inline void qglTexCoord1f(GLfloat s)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord1f(s=%f)\n", s);
+#endif
+ glTexCoord1f(s);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord1f");
+#endif
+}
+
+// void glTexCoord1fv (const GLfloat *v);
+static inline void qglTexCoord1fv(const GLfloat *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord1fv(v=%p)\n", v);
+#endif
+ glTexCoord1fv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord1fv");
+#endif
+}
+
+// void glTexCoord1i (GLint s);
+static inline void qglTexCoord1i(GLint s)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord1i(s=%ld)\n", s);
+#endif
+ glTexCoord1i(s);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord1i");
+#endif
+}
+
+// void glTexCoord1iv (const GLint *v);
+static inline void qglTexCoord1iv(const GLint *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord1iv(v=%p)\n", v);
+#endif
+ glTexCoord1iv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord1iv");
+#endif
+}
+
+// void glTexCoord1s (GLshort s);
+static inline void qglTexCoord1s(GLshort s)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord1s(s=%d)\n", s);
+#endif
+ glTexCoord1s(s);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord1s");
+#endif
+}
+
+// void glTexCoord1sv (const GLshort *v);
+static inline void qglTexCoord1sv(const GLshort *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord1sv(v=%p)\n", v);
+#endif
+ glTexCoord1sv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord1sv");
+#endif
+}
+
+// void glTexCoord2d (GLdouble s, GLdouble t);
+static inline void qglTexCoord2d(GLdouble s, GLdouble t)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord2d(s=%f, t=%f)\n", s, t);
+#endif
+ glTexCoord2d(s, t);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord2d");
+#endif
+}
+
+// void glTexCoord2dv (const GLdouble *v);
+static inline void qglTexCoord2dv(const GLdouble *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord2dv(v=%p)\n", v);
+#endif
+ glTexCoord2dv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord2dv");
+#endif
+}
+
+// void glTexCoord2f (GLfloat s, GLfloat t);
+static inline void qglTexCoord2f(GLfloat s, GLfloat t)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord2f(s=%f, t=%f)\n", s, t);
+#endif
+ glTexCoord2f(s, t);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord2f");
+#endif
+}
+
+// void glTexCoord2fv (const GLfloat *v);
+static inline void qglTexCoord2fv(const GLfloat *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord2fv(v=%p)\n", v);
+#endif
+ glTexCoord2fv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord2fv");
+#endif
+}
+
+// void glTexCoord2i (GLint s, GLint t);
+static inline void qglTexCoord2i(GLint s, GLint t)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord2i(s=%ld, t=%ld)\n", s, t);
+#endif
+ glTexCoord2i(s, t);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord2i");
+#endif
+}
+
+// void glTexCoord2iv (const GLint *v);
+static inline void qglTexCoord2iv(const GLint *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord2iv(v=%p)\n", v);
+#endif
+ glTexCoord2iv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord2iv");
+#endif
+}
+
+// void glTexCoord2s (GLshort s, GLshort t);
+static inline void qglTexCoord2s(GLshort s, GLshort t)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord2s(s=%d, t=%d)\n", s, t);
+#endif
+ glTexCoord2s(s, t);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord2s");
+#endif
+}
+
+// void glTexCoord2sv (const GLshort *v);
+static inline void qglTexCoord2sv(const GLshort *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord2sv(v=%p)\n", v);
+#endif
+ glTexCoord2sv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord2sv");
+#endif
+}
+
+// void glTexCoord3d (GLdouble s, GLdouble t, GLdouble r);
+static inline void qglTexCoord3d(GLdouble s, GLdouble t, GLdouble r)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord3d(s=%f, t=%f, r=%f)\n", s, t, r);
+#endif
+ glTexCoord3d(s, t, r);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord3d");
+#endif
+}
+
+// void glTexCoord3dv (const GLdouble *v);
+static inline void qglTexCoord3dv(const GLdouble *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord3dv(v=%p)\n", v);
+#endif
+ glTexCoord3dv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord3dv");
+#endif
+}
+
+// void glTexCoord3f (GLfloat s, GLfloat t, GLfloat r);
+static inline void qglTexCoord3f(GLfloat s, GLfloat t, GLfloat r)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord3f(s=%f, t=%f, r=%f)\n", s, t, r);
+#endif
+ glTexCoord3f(s, t, r);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord3f");
+#endif
+}
+
+// void glTexCoord3fv (const GLfloat *v);
+static inline void qglTexCoord3fv(const GLfloat *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord3fv(v=%p)\n", v);
+#endif
+ glTexCoord3fv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord3fv");
+#endif
+}
+
+// void glTexCoord3i (GLint s, GLint t, GLint r);
+static inline void qglTexCoord3i(GLint s, GLint t, GLint r)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord3i(s=%ld, t=%ld, r=%ld)\n", s, t, r);
+#endif
+ glTexCoord3i(s, t, r);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord3i");
+#endif
+}
+
+// void glTexCoord3iv (const GLint *v);
+static inline void qglTexCoord3iv(const GLint *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord3iv(v=%p)\n", v);
+#endif
+ glTexCoord3iv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord3iv");
+#endif
+}
+
+// void glTexCoord3s (GLshort s, GLshort t, GLshort r);
+static inline void qglTexCoord3s(GLshort s, GLshort t, GLshort r)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord3s(s=%d, t=%d, r=%d)\n", s, t, r);
+#endif
+ glTexCoord3s(s, t, r);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord3s");
+#endif
+}
+
+// void glTexCoord3sv (const GLshort *v);
+static inline void qglTexCoord3sv(const GLshort *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord3sv(v=%p)\n", v);
+#endif
+ glTexCoord3sv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord3sv");
+#endif
+}
+
+// void glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+static inline void qglTexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord4d(s=%f, t=%f, r=%f, q=%f)\n", s, t, r, q);
+#endif
+ glTexCoord4d(s, t, r, q);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord4d");
+#endif
+}
+
+// void glTexCoord4dv (const GLdouble *v);
+static inline void qglTexCoord4dv(const GLdouble *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord4dv(v=%p)\n", v);
+#endif
+ glTexCoord4dv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord4dv");
+#endif
+}
+
+// void glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+static inline void qglTexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord4f(s=%f, t=%f, r=%f, q=%f)\n", s, t, r, q);
+#endif
+ glTexCoord4f(s, t, r, q);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord4f");
+#endif
+}
+
+// void glTexCoord4fv (const GLfloat *v);
+static inline void qglTexCoord4fv(const GLfloat *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord4fv(v=%p)\n", v);
+#endif
+ glTexCoord4fv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord4fv");
+#endif
+}
+
+// void glTexCoord4i (GLint s, GLint t, GLint r, GLint q);
+static inline void qglTexCoord4i(GLint s, GLint t, GLint r, GLint q)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord4i(s=%ld, t=%ld, r=%ld, q=%ld)\n", s, t, r, q);
+#endif
+ glTexCoord4i(s, t, r, q);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord4i");
+#endif
+}
+
+// void glTexCoord4iv (const GLint *v);
+static inline void qglTexCoord4iv(const GLint *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord4iv(v=%p)\n", v);
+#endif
+ glTexCoord4iv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord4iv");
+#endif
+}
+
+// void glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q);
+static inline void qglTexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord4s(s=%d, t=%d, r=%d, q=%d)\n", s, t, r, q);
+#endif
+ glTexCoord4s(s, t, r, q);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord4s");
+#endif
+}
+
+// void glTexCoord4sv (const GLshort *v);
+static inline void qglTexCoord4sv(const GLshort *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoord4sv(v=%p)\n", v);
+#endif
+ glTexCoord4sv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoord4sv");
+#endif
+}
+
+// void glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+static inline void qglTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexCoordPointer(size=%ld, type=%lu, stride=%ld, pointer=%p)\n", size, type, stride, pointer);
+#endif
+ glTexCoordPointer(size, type, stride, pointer);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexCoordPointer");
+#endif
+}
+
+// void glTexEnvf (GLenum target, GLenum pname, GLfloat param);
+static inline void qglTexEnvf(GLenum target, GLenum pname, GLfloat param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexEnvf(target=%lu, pname=%lu, param=%f)\n", target, pname, param);
+#endif
+ glTexEnvf(target, pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexEnvf");
+#endif
+}
+
+// void glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params);
+static inline void qglTexEnvfv(GLenum target, GLenum pname, const GLfloat *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexEnvfv(target=%lu, pname=%lu, params=%p)\n", target, pname, params);
+#endif
+ glTexEnvfv(target, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexEnvfv");
+#endif
+}
+
+// void glTexEnvi (GLenum target, GLenum pname, GLint param);
+static inline void qglTexEnvi(GLenum target, GLenum pname, GLint param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexEnvi(target=%lu, pname=%lu, param=%ld)\n", target, pname, param);
+#endif
+ glTexEnvi(target, pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexEnvi");
+#endif
+}
+
+// void glTexEnviv (GLenum target, GLenum pname, const GLint *params);
+static inline void qglTexEnviv(GLenum target, GLenum pname, const GLint *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexEnviv(target=%lu, pname=%lu, params=%p)\n", target, pname, params);
+#endif
+ glTexEnviv(target, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexEnviv");
+#endif
+}
+
+// void glTexGend (GLenum coord, GLenum pname, GLdouble param);
+static inline void qglTexGend(GLenum coord, GLenum pname, GLdouble param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexGend(coord=%lu, pname=%lu, param=%f)\n", coord, pname, param);
+#endif
+ glTexGend(coord, pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexGend");
+#endif
+}
+
+// void glTexGendv (GLenum coord, GLenum pname, const GLdouble *params);
+static inline void qglTexGendv(GLenum coord, GLenum pname, const GLdouble *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexGendv(coord=%lu, pname=%lu, params=%p)\n", coord, pname, params);
+#endif
+ glTexGendv(coord, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexGendv");
+#endif
+}
+
+// void glTexGenf (GLenum coord, GLenum pname, GLfloat param);
+static inline void qglTexGenf(GLenum coord, GLenum pname, GLfloat param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexGenf(coord=%lu, pname=%lu, param=%f)\n", coord, pname, param);
+#endif
+ glTexGenf(coord, pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexGenf");
+#endif
+}
+
+// void glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params);
+static inline void qglTexGenfv(GLenum coord, GLenum pname, const GLfloat *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexGenfv(coord=%lu, pname=%lu, params=%p)\n", coord, pname, params);
+#endif
+ glTexGenfv(coord, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexGenfv");
+#endif
+}
+
+// void glTexGeni (GLenum coord, GLenum pname, GLint param);
+static inline void qglTexGeni(GLenum coord, GLenum pname, GLint param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexGeni(coord=%lu, pname=%lu, param=%ld)\n", coord, pname, param);
+#endif
+ glTexGeni(coord, pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexGeni");
+#endif
+}
+
+// void glTexGeniv (GLenum coord, GLenum pname, const GLint *params);
+static inline void qglTexGeniv(GLenum coord, GLenum pname, const GLint *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexGeniv(coord=%lu, pname=%lu, params=%p)\n", coord, pname, params);
+#endif
+ glTexGeniv(coord, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexGeniv");
+#endif
+}
+
+// void glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+static inline void qglTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexImage1D(target=%lu, level=%ld, internalformat=%ld, width=%ld, border=%ld, format=%lu, type=%lu, pixels=%p)\n", target, level, internalformat, width, border, format, type, pixels);
+#endif
+ glTexImage1D(target, level, internalformat, width, border, format, type, pixels);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexImage1D");
+#endif
+}
+
+// void glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+static inline void qglTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexImage2D(target=%lu, level=%ld, internalformat=%ld, width=%ld, height=%ld, border=%ld, format=%lu, type=%lu, pixels=%p)\n", target, level, internalformat, width, height, border, format, type, pixels);
+#endif
+ glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexImage2D");
+#endif
+}
+
+// void glTexParameterf (GLenum target, GLenum pname, GLfloat param);
+static inline void qglTexParameterf(GLenum target, GLenum pname, GLfloat param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexParameterf(target=%lu, pname=%lu, param=%f)\n", target, pname, param);
+#endif
+ glTexParameterf(target, pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexParameterf");
+#endif
+}
+
+// void glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
+static inline void qglTexParameterfv(GLenum target, GLenum pname, const GLfloat *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexParameterfv(target=%lu, pname=%lu, params=%p)\n", target, pname, params);
+#endif
+ glTexParameterfv(target, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexParameterfv");
+#endif
+}
+
+// void glTexParameteri (GLenum target, GLenum pname, GLint param);
+static inline void qglTexParameteri(GLenum target, GLenum pname, GLint param)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexParameteri(target=%lu, pname=%lu, param=%ld)\n", target, pname, param);
+#endif
+ glTexParameteri(target, pname, param);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexParameteri");
+#endif
+}
+
+// void glTexParameteriv (GLenum target, GLenum pname, const GLint *params);
+static inline void qglTexParameteriv(GLenum target, GLenum pname, const GLint *params)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexParameteriv(target=%lu, pname=%lu, params=%p)\n", target, pname, params);
+#endif
+ glTexParameteriv(target, pname, params);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexParameteriv");
+#endif
+}
+
+// void glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
+static inline void qglTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexSubImage1D(target=%lu, level=%ld, xoffset=%ld, width=%ld, format=%lu, type=%lu, pixels=%p)\n", target, level, xoffset, width, format, type, pixels);
+#endif
+ glTexSubImage1D(target, level, xoffset, width, format, type, pixels);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexSubImage1D");
+#endif
+}
+
+// void glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
+static inline void qglTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTexSubImage2D(target=%lu, level=%ld, xoffset=%ld, yoffset=%ld, width=%ld, height=%ld, format=%lu, type=%lu, pixels=%p)\n", target, level, xoffset, yoffset, width, height, format, type, pixels);
+#endif
+ glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTexSubImage2D");
+#endif
+}
+
+// void glTranslated (GLdouble x, GLdouble y, GLdouble z);
+static inline void qglTranslated(GLdouble x, GLdouble y, GLdouble z)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTranslated(x=%f, y=%f, z=%f)\n", x, y, z);
+#endif
+ glTranslated(x, y, z);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTranslated");
+#endif
+}
+
+// void glTranslatef (GLfloat x, GLfloat y, GLfloat z);
+static inline void qglTranslatef(GLfloat x, GLfloat y, GLfloat z)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glTranslatef(x=%f, y=%f, z=%f)\n", x, y, z);
+#endif
+ glTranslatef(x, y, z);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glTranslatef");
+#endif
+}
+
+// void glVertex2d (GLdouble x, GLdouble y);
+static inline void qglVertex2d(GLdouble x, GLdouble y)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex2d(x=%f, y=%f)\n", x, y);
+#endif
+ glVertex2d(x, y);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex2d");
+#endif
+}
+
+// void glVertex2dv (const GLdouble *v);
+static inline void qglVertex2dv(const GLdouble *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex2dv(v=%p)\n", v);
+#endif
+ glVertex2dv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex2dv");
+#endif
+}
+
+// void glVertex2f (GLfloat x, GLfloat y);
+static inline void qglVertex2f(GLfloat x, GLfloat y)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex2f(x=%f, y=%f)\n", x, y);
+#endif
+ glVertex2f(x, y);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex2f");
+#endif
+}
+
+// void glVertex2fv (const GLfloat *v);
+static inline void qglVertex2fv(const GLfloat *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex2fv(v=%p)\n", v);
+#endif
+ glVertex2fv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex2fv");
+#endif
+}
+
+// void glVertex2i (GLint x, GLint y);
+static inline void qglVertex2i(GLint x, GLint y)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex2i(x=%ld, y=%ld)\n", x, y);
+#endif
+ glVertex2i(x, y);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex2i");
+#endif
+}
+
+// void glVertex2iv (const GLint *v);
+static inline void qglVertex2iv(const GLint *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex2iv(v=%p)\n", v);
+#endif
+ glVertex2iv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex2iv");
+#endif
+}
+
+// void glVertex2s (GLshort x, GLshort y);
+static inline void qglVertex2s(GLshort x, GLshort y)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex2s(x=%d, y=%d)\n", x, y);
+#endif
+ glVertex2s(x, y);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex2s");
+#endif
+}
+
+// void glVertex2sv (const GLshort *v);
+static inline void qglVertex2sv(const GLshort *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex2sv(v=%p)\n", v);
+#endif
+ glVertex2sv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex2sv");
+#endif
+}
+
+// void glVertex3d (GLdouble x, GLdouble y, GLdouble z);
+static inline void qglVertex3d(GLdouble x, GLdouble y, GLdouble z)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex3d(x=%f, y=%f, z=%f)\n", x, y, z);
+#endif
+ glVertex3d(x, y, z);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex3d");
+#endif
+}
+
+// void glVertex3dv (const GLdouble *v);
+static inline void qglVertex3dv(const GLdouble *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex3dv(v=%p)\n", v);
+#endif
+ glVertex3dv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex3dv");
+#endif
+}
+
+// void glVertex3f (GLfloat x, GLfloat y, GLfloat z);
+static inline void qglVertex3f(GLfloat x, GLfloat y, GLfloat z)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex3f(x=%f, y=%f, z=%f)\n", x, y, z);
+#endif
+ glVertex3f(x, y, z);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex3f");
+#endif
+}
+
+// void glVertex3fv (const GLfloat *v);
+static inline void qglVertex3fv(const GLfloat *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex3fv(v=%p)\n", v);
+#endif
+ glVertex3fv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex3fv");
+#endif
+}
+
+// void glVertex3i (GLint x, GLint y, GLint z);
+static inline void qglVertex3i(GLint x, GLint y, GLint z)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex3i(x=%ld, y=%ld, z=%ld)\n", x, y, z);
+#endif
+ glVertex3i(x, y, z);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex3i");
+#endif
+}
+
+// void glVertex3iv (const GLint *v);
+static inline void qglVertex3iv(const GLint *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex3iv(v=%p)\n", v);
+#endif
+ glVertex3iv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex3iv");
+#endif
+}
+
+// void glVertex3s (GLshort x, GLshort y, GLshort z);
+static inline void qglVertex3s(GLshort x, GLshort y, GLshort z)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex3s(x=%d, y=%d, z=%d)\n", x, y, z);
+#endif
+ glVertex3s(x, y, z);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex3s");
+#endif
+}
+
+// void glVertex3sv (const GLshort *v);
+static inline void qglVertex3sv(const GLshort *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex3sv(v=%p)\n", v);
+#endif
+ glVertex3sv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex3sv");
+#endif
+}
+
+// void glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+static inline void qglVertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex4d(x=%f, y=%f, z=%f, w=%f)\n", x, y, z, w);
+#endif
+ glVertex4d(x, y, z, w);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex4d");
+#endif
+}
+
+// void glVertex4dv (const GLdouble *v);
+static inline void qglVertex4dv(const GLdouble *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex4dv(v=%p)\n", v);
+#endif
+ glVertex4dv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex4dv");
+#endif
+}
+
+// void glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+static inline void qglVertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex4f(x=%f, y=%f, z=%f, w=%f)\n", x, y, z, w);
+#endif
+ glVertex4f(x, y, z, w);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex4f");
+#endif
+}
+
+// void glVertex4fv (const GLfloat *v);
+static inline void qglVertex4fv(const GLfloat *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex4fv(v=%p)\n", v);
+#endif
+ glVertex4fv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex4fv");
+#endif
+}
+
+// void glVertex4i (GLint x, GLint y, GLint z, GLint w);
+static inline void qglVertex4i(GLint x, GLint y, GLint z, GLint w)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex4i(x=%ld, y=%ld, z=%ld, w=%ld)\n", x, y, z, w);
+#endif
+ glVertex4i(x, y, z, w);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex4i");
+#endif
+}
+
+// void glVertex4iv (const GLint *v);
+static inline void qglVertex4iv(const GLint *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex4iv(v=%p)\n", v);
+#endif
+ glVertex4iv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex4iv");
+#endif
+}
+
+// void glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w);
+static inline void qglVertex4s(GLshort x, GLshort y, GLshort z, GLshort w)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex4s(x=%d, y=%d, z=%d, w=%d)\n", x, y, z, w);
+#endif
+ glVertex4s(x, y, z, w);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex4s");
+#endif
+}
+
+// void glVertex4sv (const GLshort *v);
+static inline void qglVertex4sv(const GLshort *v)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertex4sv(v=%p)\n", v);
+#endif
+ glVertex4sv(v);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertex4sv");
+#endif
+}
+
+// void glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+static inline void qglVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glVertexPointer(size=%ld, type=%lu, stride=%ld, pointer=%p)\n", size, type, stride, pointer);
+#endif
+ glVertexPointer(size, type, stride, pointer);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glVertexPointer");
+#endif
+}
+
+// void glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
+static inline void qglViewport(GLint x, GLint y, GLsizei width, GLsizei height)
+{
+#if !defined(NDEBUG) && defined(QGL_LOG_GL_CALLS)
+ if (QGLLogGLCalls)
+ fprintf(QGLDebugFile(), "glViewport(x=%ld, y=%ld, width=%ld, height=%ld)\n", x, y, width, height);
+#endif
+ glViewport(x, y, width, height);
+#if !defined(NDEBUG) && defined(QGL_CHECK_GL_ERRORS)
+ if (!QGLBeginStarted)
+ QGLCheckError("glViewport");
+#endif
+}
+
+// Prevent calls to the 'normal' GL functions
+#define glAccum CALL_THE_QGL_VERSION_OF_glAccum
+#define glAlphaFunc CALL_THE_QGL_VERSION_OF_glAlphaFunc
+#define glAreTexturesResident CALL_THE_QGL_VERSION_OF_glAreTexturesResident
+#define glArrayElement CALL_THE_QGL_VERSION_OF_glArrayElement
+#define glBegin CALL_THE_QGL_VERSION_OF_glBegin
+#define glBindTexture CALL_THE_QGL_VERSION_OF_glBindTexture
+#define glBitmap CALL_THE_QGL_VERSION_OF_glBitmap
+#define glBlendFunc CALL_THE_QGL_VERSION_OF_glBlendFunc
+#define glCallList CALL_THE_QGL_VERSION_OF_glCallList
+#define glCallLists CALL_THE_QGL_VERSION_OF_glCallLists
+#define glClear CALL_THE_QGL_VERSION_OF_glClear
+#define glClearAccum CALL_THE_QGL_VERSION_OF_glClearAccum
+#define glClearColor CALL_THE_QGL_VERSION_OF_glClearColor
+#define glClearDepth CALL_THE_QGL_VERSION_OF_glClearDepth
+#define glClearIndex CALL_THE_QGL_VERSION_OF_glClearIndex
+#define glClearStencil CALL_THE_QGL_VERSION_OF_glClearStencil
+#define glClipPlane CALL_THE_QGL_VERSION_OF_glClipPlane
+#define glColor3b CALL_THE_QGL_VERSION_OF_glColor3b
+#define glColor3bv CALL_THE_QGL_VERSION_OF_glColor3bv
+#define glColor3d CALL_THE_QGL_VERSION_OF_glColor3d
+#define glColor3dv CALL_THE_QGL_VERSION_OF_glColor3dv
+#define glColor3f CALL_THE_QGL_VERSION_OF_glColor3f
+#define glColor3fv CALL_THE_QGL_VERSION_OF_glColor3fv
+#define glColor3i CALL_THE_QGL_VERSION_OF_glColor3i
+#define glColor3iv CALL_THE_QGL_VERSION_OF_glColor3iv
+#define glColor3s CALL_THE_QGL_VERSION_OF_glColor3s
+#define glColor3sv CALL_THE_QGL_VERSION_OF_glColor3sv
+#define glColor3ub CALL_THE_QGL_VERSION_OF_glColor3ub
+#define glColor3ubv CALL_THE_QGL_VERSION_OF_glColor3ubv
+#define glColor3ui CALL_THE_QGL_VERSION_OF_glColor3ui
+#define glColor3uiv CALL_THE_QGL_VERSION_OF_glColor3uiv
+#define glColor3us CALL_THE_QGL_VERSION_OF_glColor3us
+#define glColor3usv CALL_THE_QGL_VERSION_OF_glColor3usv
+#define glColor4b CALL_THE_QGL_VERSION_OF_glColor4b
+#define glColor4bv CALL_THE_QGL_VERSION_OF_glColor4bv
+#define glColor4d CALL_THE_QGL_VERSION_OF_glColor4d
+#define glColor4dv CALL_THE_QGL_VERSION_OF_glColor4dv
+#define glColor4f CALL_THE_QGL_VERSION_OF_glColor4f
+#define glColor4fv CALL_THE_QGL_VERSION_OF_glColor4fv
+#define glColor4i CALL_THE_QGL_VERSION_OF_glColor4i
+#define glColor4iv CALL_THE_QGL_VERSION_OF_glColor4iv
+#define glColor4s CALL_THE_QGL_VERSION_OF_glColor4s
+#define glColor4sv CALL_THE_QGL_VERSION_OF_glColor4sv
+#define glColor4ub CALL_THE_QGL_VERSION_OF_glColor4ub
+#define glColor4ubv CALL_THE_QGL_VERSION_OF_glColor4ubv
+#define glColor4ui CALL_THE_QGL_VERSION_OF_glColor4ui
+#define glColor4uiv CALL_THE_QGL_VERSION_OF_glColor4uiv
+#define glColor4us CALL_THE_QGL_VERSION_OF_glColor4us
+#define glColor4usv CALL_THE_QGL_VERSION_OF_glColor4usv
+#define glColorMask CALL_THE_QGL_VERSION_OF_glColorMask
+#define glColorMaterial CALL_THE_QGL_VERSION_OF_glColorMaterial
+#define glColorPointer CALL_THE_QGL_VERSION_OF_glColorPointer
+#define glCopyPixels CALL_THE_QGL_VERSION_OF_glCopyPixels
+#define glCopyTexImage1D CALL_THE_QGL_VERSION_OF_glCopyTexImage1D
+#define glCopyTexImage2D CALL_THE_QGL_VERSION_OF_glCopyTexImage2D
+#define glCopyTexSubImage1D CALL_THE_QGL_VERSION_OF_glCopyTexSubImage1D
+#define glCopyTexSubImage2D CALL_THE_QGL_VERSION_OF_glCopyTexSubImage2D
+#define glCullFace CALL_THE_QGL_VERSION_OF_glCullFace
+#define glDeleteLists CALL_THE_QGL_VERSION_OF_glDeleteLists
+#define glDeleteTextures CALL_THE_QGL_VERSION_OF_glDeleteTextures
+#define glDepthFunc CALL_THE_QGL_VERSION_OF_glDepthFunc
+#define glDepthMask CALL_THE_QGL_VERSION_OF_glDepthMask
+#define glDepthRange CALL_THE_QGL_VERSION_OF_glDepthRange
+#define glDisable CALL_THE_QGL_VERSION_OF_glDisable
+#define glDisableClientState CALL_THE_QGL_VERSION_OF_glDisableClientState
+#define glDrawArrays CALL_THE_QGL_VERSION_OF_glDrawArrays
+#define glDrawBuffer CALL_THE_QGL_VERSION_OF_glDrawBuffer
+#define glDrawElements CALL_THE_QGL_VERSION_OF_glDrawElements
+#define glDrawPixels CALL_THE_QGL_VERSION_OF_glDrawPixels
+#define glEdgeFlag CALL_THE_QGL_VERSION_OF_glEdgeFlag
+#define glEdgeFlagPointer CALL_THE_QGL_VERSION_OF_glEdgeFlagPointer
+#define glEdgeFlagv CALL_THE_QGL_VERSION_OF_glEdgeFlagv
+#define glEnable CALL_THE_QGL_VERSION_OF_glEnable
+#define glEnableClientState CALL_THE_QGL_VERSION_OF_glEnableClientState
+#define glEnd CALL_THE_QGL_VERSION_OF_glEnd
+#define glEndList CALL_THE_QGL_VERSION_OF_glEndList
+#define glEvalCoord1d CALL_THE_QGL_VERSION_OF_glEvalCoord1d
+#define glEvalCoord1dv CALL_THE_QGL_VERSION_OF_glEvalCoord1dv
+#define glEvalCoord1f CALL_THE_QGL_VERSION_OF_glEvalCoord1f
+#define glEvalCoord1fv CALL_THE_QGL_VERSION_OF_glEvalCoord1fv
+#define glEvalCoord2d CALL_THE_QGL_VERSION_OF_glEvalCoord2d
+#define glEvalCoord2dv CALL_THE_QGL_VERSION_OF_glEvalCoord2dv
+#define glEvalCoord2f CALL_THE_QGL_VERSION_OF_glEvalCoord2f
+#define glEvalCoord2fv CALL_THE_QGL_VERSION_OF_glEvalCoord2fv
+#define glEvalMesh1 CALL_THE_QGL_VERSION_OF_glEvalMesh1
+#define glEvalMesh2 CALL_THE_QGL_VERSION_OF_glEvalMesh2
+#define glEvalPoint1 CALL_THE_QGL_VERSION_OF_glEvalPoint1
+#define glEvalPoint2 CALL_THE_QGL_VERSION_OF_glEvalPoint2
+#define glFeedbackBuffer CALL_THE_QGL_VERSION_OF_glFeedbackBuffer
+#define glFinish CALL_THE_QGL_VERSION_OF_glFinish
+#define glFlush CALL_THE_QGL_VERSION_OF_glFlush
+#define glFogf CALL_THE_QGL_VERSION_OF_glFogf
+#define glFogfv CALL_THE_QGL_VERSION_OF_glFogfv
+#define glFogi CALL_THE_QGL_VERSION_OF_glFogi
+#define glFogiv CALL_THE_QGL_VERSION_OF_glFogiv
+#define glFrontFace CALL_THE_QGL_VERSION_OF_glFrontFace
+#define glFrustum CALL_THE_QGL_VERSION_OF_glFrustum
+#define glGenLists CALL_THE_QGL_VERSION_OF_glGenLists
+#define glGenTextures CALL_THE_QGL_VERSION_OF_glGenTextures
+#define glGetBooleanv CALL_THE_QGL_VERSION_OF_glGetBooleanv
+#define glGetClipPlane CALL_THE_QGL_VERSION_OF_glGetClipPlane
+#define glGetDoublev CALL_THE_QGL_VERSION_OF_glGetDoublev
+#define glGetError CALL_THE_QGL_VERSION_OF_glGetError
+#define glGetFloatv CALL_THE_QGL_VERSION_OF_glGetFloatv
+#define glGetIntegerv CALL_THE_QGL_VERSION_OF_glGetIntegerv
+#define glGetLightfv CALL_THE_QGL_VERSION_OF_glGetLightfv
+#define glGetLightiv CALL_THE_QGL_VERSION_OF_glGetLightiv
+#define glGetMapdv CALL_THE_QGL_VERSION_OF_glGetMapdv
+#define glGetMapfv CALL_THE_QGL_VERSION_OF_glGetMapfv
+#define glGetMapiv CALL_THE_QGL_VERSION_OF_glGetMapiv
+#define glGetMaterialfv CALL_THE_QGL_VERSION_OF_glGetMaterialfv
+#define glGetMaterialiv CALL_THE_QGL_VERSION_OF_glGetMaterialiv
+#define glGetPixelMapfv CALL_THE_QGL_VERSION_OF_glGetPixelMapfv
+#define glGetPixelMapuiv CALL_THE_QGL_VERSION_OF_glGetPixelMapuiv
+#define glGetPixelMapusv CALL_THE_QGL_VERSION_OF_glGetPixelMapusv
+#define glGetPointerv CALL_THE_QGL_VERSION_OF_glGetPointerv
+#define glGetPolygonStipple CALL_THE_QGL_VERSION_OF_glGetPolygonStipple
+#define glGetString CALL_THE_QGL_VERSION_OF_glGetString
+#define glGetTexEnvfv CALL_THE_QGL_VERSION_OF_glGetTexEnvfv
+#define glGetTexEnviv CALL_THE_QGL_VERSION_OF_glGetTexEnviv
+#define glGetTexGendv CALL_THE_QGL_VERSION_OF_glGetTexGendv
+#define glGetTexGenfv CALL_THE_QGL_VERSION_OF_glGetTexGenfv
+#define glGetTexGeniv CALL_THE_QGL_VERSION_OF_glGetTexGeniv
+#define glGetTexImage CALL_THE_QGL_VERSION_OF_glGetTexImage
+#define glGetTexLevelParameterfv CALL_THE_QGL_VERSION_OF_glGetTexLevelParameterfv
+#define glGetTexLevelParameteriv CALL_THE_QGL_VERSION_OF_glGetTexLevelParameteriv
+#define glGetTexParameterfv CALL_THE_QGL_VERSION_OF_glGetTexParameterfv
+#define glGetTexParameteriv CALL_THE_QGL_VERSION_OF_glGetTexParameteriv
+#define glHint CALL_THE_QGL_VERSION_OF_glHint
+#define glIndexMask CALL_THE_QGL_VERSION_OF_glIndexMask
+#define glIndexPointer CALL_THE_QGL_VERSION_OF_glIndexPointer
+#define glIndexd CALL_THE_QGL_VERSION_OF_glIndexd
+#define glIndexdv CALL_THE_QGL_VERSION_OF_glIndexdv
+#define glIndexf CALL_THE_QGL_VERSION_OF_glIndexf
+#define glIndexfv CALL_THE_QGL_VERSION_OF_glIndexfv
+#define glIndexi CALL_THE_QGL_VERSION_OF_glIndexi
+#define glIndexiv CALL_THE_QGL_VERSION_OF_glIndexiv
+#define glIndexs CALL_THE_QGL_VERSION_OF_glIndexs
+#define glIndexsv CALL_THE_QGL_VERSION_OF_glIndexsv
+#define glIndexub CALL_THE_QGL_VERSION_OF_glIndexub
+#define glIndexubv CALL_THE_QGL_VERSION_OF_glIndexubv
+#define glInitNames CALL_THE_QGL_VERSION_OF_glInitNames
+#define glInterleavedArrays CALL_THE_QGL_VERSION_OF_glInterleavedArrays
+#define glIsEnabled CALL_THE_QGL_VERSION_OF_glIsEnabled
+#define glIsList CALL_THE_QGL_VERSION_OF_glIsList
+#define glIsTexture CALL_THE_QGL_VERSION_OF_glIsTexture
+#define glLightModelf CALL_THE_QGL_VERSION_OF_glLightModelf
+#define glLightModelfv CALL_THE_QGL_VERSION_OF_glLightModelfv
+#define glLightModeli CALL_THE_QGL_VERSION_OF_glLightModeli
+#define glLightModeliv CALL_THE_QGL_VERSION_OF_glLightModeliv
+#define glLightf CALL_THE_QGL_VERSION_OF_glLightf
+#define glLightfv CALL_THE_QGL_VERSION_OF_glLightfv
+#define glLighti CALL_THE_QGL_VERSION_OF_glLighti
+#define glLightiv CALL_THE_QGL_VERSION_OF_glLightiv
+#define glLineStipple CALL_THE_QGL_VERSION_OF_glLineStipple
+#define glLineWidth CALL_THE_QGL_VERSION_OF_glLineWidth
+#define glListBase CALL_THE_QGL_VERSION_OF_glListBase
+#define glLoadIdentity CALL_THE_QGL_VERSION_OF_glLoadIdentity
+#define glLoadMatrixd CALL_THE_QGL_VERSION_OF_glLoadMatrixd
+#define glLoadMatrixf CALL_THE_QGL_VERSION_OF_glLoadMatrixf
+#define glLoadName CALL_THE_QGL_VERSION_OF_glLoadName
+#define glLogicOp CALL_THE_QGL_VERSION_OF_glLogicOp
+#define glMap1d CALL_THE_QGL_VERSION_OF_glMap1d
+#define glMap1f CALL_THE_QGL_VERSION_OF_glMap1f
+#define glMap2d CALL_THE_QGL_VERSION_OF_glMap2d
+#define glMap2f CALL_THE_QGL_VERSION_OF_glMap2f
+#define glMapGrid1d CALL_THE_QGL_VERSION_OF_glMapGrid1d
+#define glMapGrid1f CALL_THE_QGL_VERSION_OF_glMapGrid1f
+#define glMapGrid2d CALL_THE_QGL_VERSION_OF_glMapGrid2d
+#define glMapGrid2f CALL_THE_QGL_VERSION_OF_glMapGrid2f
+#define glMaterialf CALL_THE_QGL_VERSION_OF_glMaterialf
+#define glMaterialfv CALL_THE_QGL_VERSION_OF_glMaterialfv
+#define glMateriali CALL_THE_QGL_VERSION_OF_glMateriali
+#define glMaterialiv CALL_THE_QGL_VERSION_OF_glMaterialiv
+#define glMatrixMode CALL_THE_QGL_VERSION_OF_glMatrixMode
+#define glMultMatrixd CALL_THE_QGL_VERSION_OF_glMultMatrixd
+#define glMultMatrixf CALL_THE_QGL_VERSION_OF_glMultMatrixf
+#define glNewList CALL_THE_QGL_VERSION_OF_glNewList
+#define glNormal3b CALL_THE_QGL_VERSION_OF_glNormal3b
+#define glNormal3bv CALL_THE_QGL_VERSION_OF_glNormal3bv
+#define glNormal3d CALL_THE_QGL_VERSION_OF_glNormal3d
+#define glNormal3dv CALL_THE_QGL_VERSION_OF_glNormal3dv
+#define glNormal3f CALL_THE_QGL_VERSION_OF_glNormal3f
+#define glNormal3fv CALL_THE_QGL_VERSION_OF_glNormal3fv
+#define glNormal3i CALL_THE_QGL_VERSION_OF_glNormal3i
+#define glNormal3iv CALL_THE_QGL_VERSION_OF_glNormal3iv
+#define glNormal3s CALL_THE_QGL_VERSION_OF_glNormal3s
+#define glNormal3sv CALL_THE_QGL_VERSION_OF_glNormal3sv
+#define glNormalPointer CALL_THE_QGL_VERSION_OF_glNormalPointer
+#define glOrtho CALL_THE_QGL_VERSION_OF_glOrtho
+#define glPassThrough CALL_THE_QGL_VERSION_OF_glPassThrough
+#define glPixelMapfv CALL_THE_QGL_VERSION_OF_glPixelMapfv
+#define glPixelMapuiv CALL_THE_QGL_VERSION_OF_glPixelMapuiv
+#define glPixelMapusv CALL_THE_QGL_VERSION_OF_glPixelMapusv
+#define glPixelStoref CALL_THE_QGL_VERSION_OF_glPixelStoref
+#define glPixelStorei CALL_THE_QGL_VERSION_OF_glPixelStorei
+#define glPixelTransferf CALL_THE_QGL_VERSION_OF_glPixelTransferf
+#define glPixelTransferi CALL_THE_QGL_VERSION_OF_glPixelTransferi
+#define glPixelZoom CALL_THE_QGL_VERSION_OF_glPixelZoom
+#define glPointSize CALL_THE_QGL_VERSION_OF_glPointSize
+#define glPolygonMode CALL_THE_QGL_VERSION_OF_glPolygonMode
+#define glPolygonOffset CALL_THE_QGL_VERSION_OF_glPolygonOffset
+#define glPolygonStipple CALL_THE_QGL_VERSION_OF_glPolygonStipple
+#define glPopAttrib CALL_THE_QGL_VERSION_OF_glPopAttrib
+#define glPopClientAttrib CALL_THE_QGL_VERSION_OF_glPopClientAttrib
+#define glPopMatrix CALL_THE_QGL_VERSION_OF_glPopMatrix
+#define glPopName CALL_THE_QGL_VERSION_OF_glPopName
+#define glPrioritizeTextures CALL_THE_QGL_VERSION_OF_glPrioritizeTextures
+#define glPushAttrib CALL_THE_QGL_VERSION_OF_glPushAttrib
+#define glPushClientAttrib CALL_THE_QGL_VERSION_OF_glPushClientAttrib
+#define glPushMatrix CALL_THE_QGL_VERSION_OF_glPushMatrix
+#define glPushName CALL_THE_QGL_VERSION_OF_glPushName
+#define glRasterPos2d CALL_THE_QGL_VERSION_OF_glRasterPos2d
+#define glRasterPos2dv CALL_THE_QGL_VERSION_OF_glRasterPos2dv
+#define glRasterPos2f CALL_THE_QGL_VERSION_OF_glRasterPos2f
+#define glRasterPos2fv CALL_THE_QGL_VERSION_OF_glRasterPos2fv
+#define glRasterPos2i CALL_THE_QGL_VERSION_OF_glRasterPos2i
+#define glRasterPos2iv CALL_THE_QGL_VERSION_OF_glRasterPos2iv
+#define glRasterPos2s CALL_THE_QGL_VERSION_OF_glRasterPos2s
+#define glRasterPos2sv CALL_THE_QGL_VERSION_OF_glRasterPos2sv
+#define glRasterPos3d CALL_THE_QGL_VERSION_OF_glRasterPos3d
+#define glRasterPos3dv CALL_THE_QGL_VERSION_OF_glRasterPos3dv
+#define glRasterPos3f CALL_THE_QGL_VERSION_OF_glRasterPos3f
+#define glRasterPos3fv CALL_THE_QGL_VERSION_OF_glRasterPos3fv
+#define glRasterPos3i CALL_THE_QGL_VERSION_OF_glRasterPos3i
+#define glRasterPos3iv CALL_THE_QGL_VERSION_OF_glRasterPos3iv
+#define glRasterPos3s CALL_THE_QGL_VERSION_OF_glRasterPos3s
+#define glRasterPos3sv CALL_THE_QGL_VERSION_OF_glRasterPos3sv
+#define glRasterPos4d CALL_THE_QGL_VERSION_OF_glRasterPos4d
+#define glRasterPos4dv CALL_THE_QGL_VERSION_OF_glRasterPos4dv
+#define glRasterPos4f CALL_THE_QGL_VERSION_OF_glRasterPos4f
+#define glRasterPos4fv CALL_THE_QGL_VERSION_OF_glRasterPos4fv
+#define glRasterPos4i CALL_THE_QGL_VERSION_OF_glRasterPos4i
+#define glRasterPos4iv CALL_THE_QGL_VERSION_OF_glRasterPos4iv
+#define glRasterPos4s CALL_THE_QGL_VERSION_OF_glRasterPos4s
+#define glRasterPos4sv CALL_THE_QGL_VERSION_OF_glRasterPos4sv
+#define glReadBuffer CALL_THE_QGL_VERSION_OF_glReadBuffer
+#define glReadPixels CALL_THE_QGL_VERSION_OF_glReadPixels
+#define glRectd CALL_THE_QGL_VERSION_OF_glRectd
+#define glRectdv CALL_THE_QGL_VERSION_OF_glRectdv
+#define glRectf CALL_THE_QGL_VERSION_OF_glRectf
+#define glRectfv CALL_THE_QGL_VERSION_OF_glRectfv
+#define glRecti CALL_THE_QGL_VERSION_OF_glRecti
+#define glRectiv CALL_THE_QGL_VERSION_OF_glRectiv
+#define glRects CALL_THE_QGL_VERSION_OF_glRects
+#define glRectsv CALL_THE_QGL_VERSION_OF_glRectsv
+#define glRenderMode CALL_THE_QGL_VERSION_OF_glRenderMode
+#define glRotated CALL_THE_QGL_VERSION_OF_glRotated
+#define glRotatef CALL_THE_QGL_VERSION_OF_glRotatef
+#define glScaled CALL_THE_QGL_VERSION_OF_glScaled
+#define glScalef CALL_THE_QGL_VERSION_OF_glScalef
+#define glScissor CALL_THE_QGL_VERSION_OF_glScissor
+#define glSelectBuffer CALL_THE_QGL_VERSION_OF_glSelectBuffer
+#define glShadeModel CALL_THE_QGL_VERSION_OF_glShadeModel
+#define glStencilFunc CALL_THE_QGL_VERSION_OF_glStencilFunc
+#define glStencilMask CALL_THE_QGL_VERSION_OF_glStencilMask
+#define glStencilOp CALL_THE_QGL_VERSION_OF_glStencilOp
+#define glTexCoord1d CALL_THE_QGL_VERSION_OF_glTexCoord1d
+#define glTexCoord1dv CALL_THE_QGL_VERSION_OF_glTexCoord1dv
+#define glTexCoord1f CALL_THE_QGL_VERSION_OF_glTexCoord1f
+#define glTexCoord1fv CALL_THE_QGL_VERSION_OF_glTexCoord1fv
+#define glTexCoord1i CALL_THE_QGL_VERSION_OF_glTexCoord1i
+#define glTexCoord1iv CALL_THE_QGL_VERSION_OF_glTexCoord1iv
+#define glTexCoord1s CALL_THE_QGL_VERSION_OF_glTexCoord1s
+#define glTexCoord1sv CALL_THE_QGL_VERSION_OF_glTexCoord1sv
+#define glTexCoord2d CALL_THE_QGL_VERSION_OF_glTexCoord2d
+#define glTexCoord2dv CALL_THE_QGL_VERSION_OF_glTexCoord2dv
+#define glTexCoord2f CALL_THE_QGL_VERSION_OF_glTexCoord2f
+#define glTexCoord2fv CALL_THE_QGL_VERSION_OF_glTexCoord2fv
+#define glTexCoord2i CALL_THE_QGL_VERSION_OF_glTexCoord2i
+#define glTexCoord2iv CALL_THE_QGL_VERSION_OF_glTexCoord2iv
+#define glTexCoord2s CALL_THE_QGL_VERSION_OF_glTexCoord2s
+#define glTexCoord2sv CALL_THE_QGL_VERSION_OF_glTexCoord2sv
+#define glTexCoord3d CALL_THE_QGL_VERSION_OF_glTexCoord3d
+#define glTexCoord3dv CALL_THE_QGL_VERSION_OF_glTexCoord3dv
+#define glTexCoord3f CALL_THE_QGL_VERSION_OF_glTexCoord3f
+#define glTexCoord3fv CALL_THE_QGL_VERSION_OF_glTexCoord3fv
+#define glTexCoord3i CALL_THE_QGL_VERSION_OF_glTexCoord3i
+#define glTexCoord3iv CALL_THE_QGL_VERSION_OF_glTexCoord3iv
+#define glTexCoord3s CALL_THE_QGL_VERSION_OF_glTexCoord3s
+#define glTexCoord3sv CALL_THE_QGL_VERSION_OF_glTexCoord3sv
+#define glTexCoord4d CALL_THE_QGL_VERSION_OF_glTexCoord4d
+#define glTexCoord4dv CALL_THE_QGL_VERSION_OF_glTexCoord4dv
+#define glTexCoord4f CALL_THE_QGL_VERSION_OF_glTexCoord4f
+#define glTexCoord4fv CALL_THE_QGL_VERSION_OF_glTexCoord4fv
+#define glTexCoord4i CALL_THE_QGL_VERSION_OF_glTexCoord4i
+#define glTexCoord4iv CALL_THE_QGL_VERSION_OF_glTexCoord4iv
+#define glTexCoord4s CALL_THE_QGL_VERSION_OF_glTexCoord4s
+#define glTexCoord4sv CALL_THE_QGL_VERSION_OF_glTexCoord4sv
+#define glTexCoordPointer CALL_THE_QGL_VERSION_OF_glTexCoordPointer
+#define glTexEnvf CALL_THE_QGL_VERSION_OF_glTexEnvf
+#define glTexEnvfv CALL_THE_QGL_VERSION_OF_glTexEnvfv
+#define glTexEnvi CALL_THE_QGL_VERSION_OF_glTexEnvi
+#define glTexEnviv CALL_THE_QGL_VERSION_OF_glTexEnviv
+#define glTexGend CALL_THE_QGL_VERSION_OF_glTexGend
+#define glTexGendv CALL_THE_QGL_VERSION_OF_glTexGendv
+#define glTexGenf CALL_THE_QGL_VERSION_OF_glTexGenf
+#define glTexGenfv CALL_THE_QGL_VERSION_OF_glTexGenfv
+#define glTexGeni CALL_THE_QGL_VERSION_OF_glTexGeni
+#define glTexGeniv CALL_THE_QGL_VERSION_OF_glTexGeniv
+#define glTexImage1D CALL_THE_QGL_VERSION_OF_glTexImage1D
+#define glTexImage2D CALL_THE_QGL_VERSION_OF_glTexImage2D
+#define glTexParameterf CALL_THE_QGL_VERSION_OF_glTexParameterf
+#define glTexParameterfv CALL_THE_QGL_VERSION_OF_glTexParameterfv
+#define glTexParameteri CALL_THE_QGL_VERSION_OF_glTexParameteri
+#define glTexParameteriv CALL_THE_QGL_VERSION_OF_glTexParameteriv
+#define glTexSubImage1D CALL_THE_QGL_VERSION_OF_glTexSubImage1D
+#define glTexSubImage2D CALL_THE_QGL_VERSION_OF_glTexSubImage2D
+#define glTranslated CALL_THE_QGL_VERSION_OF_glTranslated
+#define glTranslatef CALL_THE_QGL_VERSION_OF_glTranslatef
+#define glVertex2d CALL_THE_QGL_VERSION_OF_glVertex2d
+#define glVertex2dv CALL_THE_QGL_VERSION_OF_glVertex2dv
+#define glVertex2f CALL_THE_QGL_VERSION_OF_glVertex2f
+#define glVertex2fv CALL_THE_QGL_VERSION_OF_glVertex2fv
+#define glVertex2i CALL_THE_QGL_VERSION_OF_glVertex2i
+#define glVertex2iv CALL_THE_QGL_VERSION_OF_glVertex2iv
+#define glVertex2s CALL_THE_QGL_VERSION_OF_glVertex2s
+#define glVertex2sv CALL_THE_QGL_VERSION_OF_glVertex2sv
+#define glVertex3d CALL_THE_QGL_VERSION_OF_glVertex3d
+#define glVertex3dv CALL_THE_QGL_VERSION_OF_glVertex3dv
+#define glVertex3f CALL_THE_QGL_VERSION_OF_glVertex3f
+#define glVertex3fv CALL_THE_QGL_VERSION_OF_glVertex3fv
+#define glVertex3i CALL_THE_QGL_VERSION_OF_glVertex3i
+#define glVertex3iv CALL_THE_QGL_VERSION_OF_glVertex3iv
+#define glVertex3s CALL_THE_QGL_VERSION_OF_glVertex3s
+#define glVertex3sv CALL_THE_QGL_VERSION_OF_glVertex3sv
+#define glVertex4d CALL_THE_QGL_VERSION_OF_glVertex4d
+#define glVertex4dv CALL_THE_QGL_VERSION_OF_glVertex4dv
+#define glVertex4f CALL_THE_QGL_VERSION_OF_glVertex4f
+#define glVertex4fv CALL_THE_QGL_VERSION_OF_glVertex4fv
+#define glVertex4i CALL_THE_QGL_VERSION_OF_glVertex4i
+#define glVertex4iv CALL_THE_QGL_VERSION_OF_glVertex4iv
+#define glVertex4s CALL_THE_QGL_VERSION_OF_glVertex4s
+#define glVertex4sv CALL_THE_QGL_VERSION_OF_glVertex4sv
+#define glVertexPointer CALL_THE_QGL_VERSION_OF_glVertexPointer
+#define glViewport CALL_THE_QGL_VERSION_OF_glViewport
diff --git a/code/macosx/macosx_sndcore.m b/code/macosx/macosx_sndcore.m
new file mode 100755
index 0000000..a37ab0e
--- /dev/null
+++ b/code/macosx/macosx_sndcore.m
@@ -0,0 +1,325 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+
+// mac_snddma.c
+// all other sound mixing is portable
+
+#include "../client/snd_local.h"
+
+#include <CoreServices/CoreServices.h>
+#include <CoreAudio/AudioHardware.h>
+#include <QuickTime/QuickTime.h>
+
+// For 'ri'
+#include "../renderer/tr_local.h"
+
+#import <Foundation/NSData.h>
+#import <Foundation/NSString.h>
+
+static unsigned int submissionChunk;
+static unsigned int maxMixedSamples;
+static short *s_mixedSamples;
+static int s_chunkCount; // number of chunks submitted
+static qboolean s_isRunning;
+
+static AudioDeviceID outputDeviceID;
+static AudioStreamBasicDescription outputStreamBasicDescription;
+
+/*
+===============
+audioDeviceIOProc
+===============
+*/
+
+OSStatus audioDeviceIOProc(AudioDeviceID inDevice,
+ const AudioTimeStamp *inNow,
+ const AudioBufferList *inInputData,
+ const AudioTimeStamp *inInputTime,
+ AudioBufferList *outOutputData,
+ const AudioTimeStamp *inOutputTime,
+ void *inClientData)
+{
+ int offset;
+ short *samples;
+ unsigned int sampleIndex;
+ float *outBuffer;
+ float scale, temp;
+
+ offset = ( s_chunkCount * submissionChunk ) % maxMixedSamples;
+ samples = s_mixedSamples + offset;
+
+ assert(outOutputData->mNumberBuffers == 1);
+ assert(outOutputData->mBuffers[0].mNumberChannels == 2);
+ //assert(outOutputData->mBuffers[0].mDataByteSize == (dma.submission_chunk * sizeof(float)));
+
+ outBuffer = (float *)outOutputData->mBuffers[0].mData;
+
+ // If we have run out of samples, return silence
+ if (s_chunkCount * submissionChunk > dma.channels * s_paintedtime) {
+ memset(outBuffer, 0, sizeof(*outBuffer) * dma.submission_chunk);
+ } else {
+ scale = (1.0f / SHRT_MAX);
+ if (outputStreamBasicDescription.mSampleRate == 44100 && dma.speed == 22050) {
+ for (sampleIndex = 0; sampleIndex < dma.submission_chunk; sampleIndex+=2) {
+ // Convert the samples from shorts to floats. Scale the floats to be [-1..1].
+ temp = samples[sampleIndex + 0] * scale;
+ outBuffer[(sampleIndex<<1)+0] = temp;
+ outBuffer[(sampleIndex<<1)+2] = temp;
+
+ temp = samples[sampleIndex + 1] * scale;
+ outBuffer[(sampleIndex<<1)+1] = temp;
+ outBuffer[(sampleIndex<<1)+3] = temp;
+ }
+ } else if (outputStreamBasicDescription.mSampleRate == 44100 && dma.speed == 11025) {
+ for (sampleIndex = 0; sampleIndex < dma.submission_chunk; sampleIndex+=4) {
+ // Convert the samples from shorts to floats. Scale the floats to be [-1..1].
+ temp = samples[sampleIndex + 0] * scale;
+ outBuffer[(sampleIndex<<1)+0] = temp;
+ outBuffer[(sampleIndex<<1)+2] = temp;
+ outBuffer[(sampleIndex<<1)+4] = temp;
+ outBuffer[(sampleIndex<<1)+6] = temp;
+
+ temp = samples[sampleIndex + 1] * scale;
+ outBuffer[(sampleIndex<<1)+1] = temp;
+ outBuffer[(sampleIndex<<1)+3] = temp;
+ outBuffer[(sampleIndex<<1)+5] = temp;
+ outBuffer[(sampleIndex<<1)+7] = temp;
+ }
+ } else {
+ for (sampleIndex = 0; sampleIndex < dma.submission_chunk; sampleIndex++) {
+ // Convert the samples from shorts to floats. Scale the floats to be [-1..1].
+ outBuffer[sampleIndex] = samples[sampleIndex] * scale;
+ }
+ }
+ }
+
+ s_chunkCount++; // this is the next buffer we will submit
+ return 0;
+}
+
+
+/*
+===============
+S_MakeTestPattern
+===============
+*/
+void S_MakeTestPattern( void ) {
+ int i;
+ float v;
+ int sample;
+
+ for ( i = 0 ; i < dma.samples / 2 ; i ++ ) {
+ v = sin( M_PI * 2 * i / 64 );
+ sample = v * 0x4000;
+ ((short *)dma.buffer)[i*2] = sample;
+ ((short *)dma.buffer)[i*2+1] = sample;
+ }
+}
+
+/*
+===============
+SNDDMA_Init
+===============
+*/
+qboolean SNDDMA_Init(void)
+{
+ cvar_t *bufferSize;
+ cvar_t *chunkSize;
+ OSStatus status;
+ UInt32 propertySize, bufferByteCount;
+
+ if (s_isRunning)
+ return qtrue;
+
+ chunkSize = ri.Cvar_Get( "s_chunksize", "2048", CVAR_ARCHIVE );
+ bufferSize = ri.Cvar_Get( "s_buffersize", "16384", CVAR_ARCHIVE );
+ Com_Printf(" Chunk size = %d\n", chunkSize->integer);
+ Com_Printf("Buffer size = %d\n", bufferSize->integer);
+
+ if (!chunkSize->integer)
+ ri.Error(ERR_FATAL, "s_chunksize must be non-zero\n");
+ if (!bufferSize->integer)
+ ri.Error(ERR_FATAL, "s_buffersize must be non-zero\n");
+ if (chunkSize->integer >= bufferSize->integer)
+ ri.Error(ERR_FATAL, "s_chunksize must be less than s_buffersize\n");
+ if (bufferSize->integer % chunkSize->integer)
+ ri.Error(ERR_FATAL, "s_buffersize must be an even multiple of s_chunksize\n");
+
+ // Get the output device
+ propertySize = sizeof(outputDeviceID);
+ status = AudioHardwareGetProperty(kAudioHardwarePropertyDefaultOutputDevice, &propertySize, &outputDeviceID);
+ if (status) {
+ Com_Printf("AudioHardwareGetProperty returned %d\n", status);
+ return qfalse;
+ }
+
+ if (outputDeviceID == kAudioDeviceUnknown) {
+ Com_Printf("AudioHardwareGetProperty: outputDeviceID is kAudioDeviceUnknown\n");
+ return qfalse;
+ }
+
+ // Configure the output device
+ propertySize = sizeof(bufferByteCount);
+ bufferByteCount = chunkSize->integer * sizeof(float);
+ status = AudioDeviceSetProperty(outputDeviceID, NULL, 0, NO, kAudioDevicePropertyBufferSize, propertySize, &bufferByteCount);
+ if (status) {
+ Com_Printf("AudioDeviceSetProperty: returned %d when setting kAudioDevicePropertyBufferSize to %d\n", status, chunkSize->integer);
+ return qfalse;
+ }
+
+ propertySize = sizeof(bufferByteCount);
+ status = AudioDeviceGetProperty(outputDeviceID, 0, NO, kAudioDevicePropertyBufferSize, &propertySize, &bufferByteCount);
+ if (status) {
+ Com_Printf("AudioDeviceGetProperty: returned %d when setting kAudioDevicePropertyBufferSize\n", status);
+ return qfalse;
+ }
+
+ // Print out the device status
+ propertySize = sizeof(outputStreamBasicDescription);
+ status = AudioDeviceGetProperty(outputDeviceID, 0, NO, kAudioDevicePropertyStreamFormat, &propertySize, &outputStreamBasicDescription);
+ if (status) {
+ Com_Printf("AudioDeviceGetProperty: returned %d when getting kAudioDevicePropertyStreamFormat\n", status);
+ return qfalse;
+ }
+
+ Com_Printf("Hardware format:\n");
+ Com_Printf(" %f mSampleRate\n", outputStreamBasicDescription.mSampleRate);
+ Com_Printf(" %c%c%c%c mFormatID\n",
+ (outputStreamBasicDescription.mFormatID & 0xff000000) >> 24,
+ (outputStreamBasicDescription.mFormatID & 0x00ff0000) >> 16,
+ (outputStreamBasicDescription.mFormatID & 0x0000ff00) >> 8,
+ (outputStreamBasicDescription.mFormatID & 0x000000ff) >> 0);
+ Com_Printf(" %5d mBytesPerPacket\n", outputStreamBasicDescription.mBytesPerPacket);
+ Com_Printf(" %5d mFramesPerPacket\n", outputStreamBasicDescription.mFramesPerPacket);
+ Com_Printf(" %5d mBytesPerFrame\n", outputStreamBasicDescription.mBytesPerFrame);
+ Com_Printf(" %5d mChannelsPerFrame\n", outputStreamBasicDescription.mChannelsPerFrame);
+ Com_Printf(" %5d mBitsPerChannel\n", outputStreamBasicDescription.mBitsPerChannel);
+
+ if(outputStreamBasicDescription.mFormatID != kAudioFormatLinearPCM) {
+ Com_Printf("Default Audio Device doesn't support Linear PCM!");
+ return qfalse;
+ }
+
+ // Start sound running
+ status = AudioDeviceAddIOProc(outputDeviceID, audioDeviceIOProc, NULL);
+ if (status) {
+ Com_Printf("AudioDeviceAddIOProc: returned %d\n", status);
+ return qfalse;
+ }
+
+ submissionChunk = chunkSize->integer;
+ if (outputStreamBasicDescription.mSampleRate == 44100) {
+ submissionChunk = chunkSize->integer/2;
+ }
+ maxMixedSamples = bufferSize->integer;
+ s_mixedSamples = calloc(1, sizeof(*s_mixedSamples) * maxMixedSamples);
+ Com_Printf("Chunk Count = %d\n", (maxMixedSamples / submissionChunk));
+
+ // Tell the main app what we expect from it
+ dma.samples = maxMixedSamples;
+ dma.submission_chunk = submissionChunk;
+ dma.samplebits = 16;
+ dma.buffer = (byte *)s_mixedSamples;
+ dma.channels = outputStreamBasicDescription.mChannelsPerFrame;
+ dma.speed = 22050; //(unsigned long)outputStreamBasicDescription.mSampleRate;
+
+ // We haven't enqueued anything yet
+ s_chunkCount = 0;
+
+ status = AudioDeviceStart(outputDeviceID, audioDeviceIOProc);
+ if (status) {
+ Com_Printf("AudioDeviceStart: returned %d\n", status);
+ return qfalse;
+ }
+
+ s_isRunning = qtrue;
+
+ return qtrue;
+}
+
+/*
+===============
+SNDDMA_GetBufferDuration
+===============
+*/
+float SNDDMA_GetBufferDuration(void)
+{
+ return (float)dma.samples / (float)(dma.channels * dma.speed);
+}
+
+/*
+===============
+SNDDMA_GetDMAPos
+===============
+*/
+int SNDDMA_GetDMAPos(void)
+{
+ return s_chunkCount * dma.submission_chunk;
+}
+
+/*
+===============
+SNDDMA_Shutdown
+===============
+*/
+void SNDDMA_Shutdown(void)
+{
+ OSStatus status;
+
+ if (!s_isRunning)
+ return;
+
+ status = AudioDeviceStop(outputDeviceID, audioDeviceIOProc);
+ if (status) {
+ Com_Printf("AudioDeviceStop: returned %d\n", status);
+ return;
+ }
+
+ s_isRunning = qfalse;
+
+ status = AudioDeviceRemoveIOProc(outputDeviceID, audioDeviceIOProc);
+ if (status) {
+ Com_Printf("AudioDeviceRemoveIOProc: returned %d\n", status);
+ return;
+ }
+
+ free(s_mixedSamples);
+ s_mixedSamples = NULL;
+ dma.samples = NULL;
+}
+
+/*
+===============
+SNDDMA_BeginPainting
+===============
+*/
+void SNDDMA_BeginPainting(void) {
+}
+
+/*
+===============
+SNDDMA_Submit
+===============
+*/
+void SNDDMA_Submit(void) {
+}
+
diff --git a/code/macosx/macosx_snddma.m b/code/macosx/macosx_snddma.m
new file mode 100755
index 0000000..670a447
--- /dev/null
+++ b/code/macosx/macosx_snddma.m
@@ -0,0 +1,205 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+
+// mac_snddma.c
+// all other sound mixing is portable
+
+#include "../client/snd_local.h"
+#include <Carbon/Carbon.h>
+
+// For 'ri'
+#include "../renderer/tr_local.h"
+
+#import <Foundation/NSZone.h>
+
+// TJW - Different versions of SoundManager have different DMA buffer sizes. On MacOS X DP2,
+// the buffer size is 8K. On MacOS 9 it is much smaller. The SoundManager guy at Apple says
+// that the size of the buffer will be decreasing for final release to help get rid of latency.
+//#define MAX_MIXED_SAMPLES (0x8000 * 64)
+//#define SUBMISSION_CHUNK (0x100 * 64)
+
+// Original MacOS 9 sizes
+//#define MAX_MIXED_SAMPLES 0x8000
+//#define SUBMISSION_CHUNK 0x100
+
+
+static unsigned int submissionChunk;
+static unsigned int maxMixedSamples;
+
+static short *s_mixedSamples;
+static int s_chunkCount; // number of chunks submitted
+static SndChannel *s_sndChan;
+static ExtSoundHeader s_sndHeader;
+
+/*
+===============
+S_Callback
+===============
+*/
+void S_Callback( SndChannel *sc, SndCommand *cmd )
+{
+ SndCommand mySndCmd;
+ SndCommand mySndCmd2;
+ int offset;
+
+ offset = ( s_chunkCount * submissionChunk ) & (maxMixedSamples-1);
+
+ // queue up another sound buffer
+ memset( &s_sndHeader, 0, sizeof( s_sndHeader ) );
+ s_sndHeader.samplePtr = (void *)(s_mixedSamples + offset);
+ s_sndHeader.numChannels = 2;
+ s_sndHeader.sampleRate = rate22khz;
+ s_sndHeader.loopStart = 0;
+ s_sndHeader.loopEnd = 0;
+ s_sndHeader.encode = extSH;
+ s_sndHeader.baseFrequency = 1;
+ s_sndHeader.numFrames = submissionChunk / 2;
+ s_sndHeader.markerChunk = NULL;
+ s_sndHeader.instrumentChunks = NULL;
+ s_sndHeader.AESRecording = NULL;
+ s_sndHeader.sampleSize = 16;
+
+ mySndCmd.cmd = bufferCmd;
+ mySndCmd.param1 = 0;
+ mySndCmd.param2 = (int)&s_sndHeader;
+ SndDoCommand( sc, &mySndCmd, true );
+
+ // and another callback
+ mySndCmd2.cmd = callBackCmd;
+ mySndCmd2.param1 = 0;
+ mySndCmd2.param2 = 0;
+ SndDoCommand( sc, &mySndCmd2, true );
+
+ s_chunkCount++; // this is the next buffer we will submit
+}
+
+/*
+===============
+S_MakeTestPattern
+===============
+*/
+void S_MakeTestPattern( void ) {
+ int i;
+ float v;
+ int sample;
+
+ for ( i = 0 ; i < dma.samples / 2 ; i ++ ) {
+ v = sin( M_PI * 2 * i / 64 );
+ sample = v * 0x4000;
+ ((short *)dma.buffer)[i*2] = sample;
+ ((short *)dma.buffer)[i*2+1] = sample;
+ }
+}
+
+/*
+===============
+SNDDMA_Init
+===============
+*/
+qboolean SNDDMA_Init(void)
+{
+ int err;
+ cvar_t *bufferSize;
+ cvar_t *chunkSize;
+
+ chunkSize = ri.Cvar_Get( "s_chunksize", "8192", CVAR_ARCHIVE );
+ bufferSize = ri.Cvar_Get( "s_buffersize", "65536", CVAR_ARCHIVE );
+
+ if (!chunkSize->integer) {
+ ri.Error(ERR_FATAL, "snd_chunkSize must be non-zero\n");
+ }
+
+ if (!bufferSize->integer) {
+ ri.Error(ERR_FATAL, "snd_bufferSize must be non-zero\n");
+ }
+
+ if (chunkSize->integer >= bufferSize->integer) {
+ ri.Error(ERR_FATAL, "snd_chunkSize must be less than snd_bufferSize\n");
+ }
+
+ if (bufferSize->integer % chunkSize->integer) {
+ ri.Error(ERR_FATAL, "snd_bufferSize must be an even multiple of snd_chunkSize\n");
+ }
+
+ // create a sound channel
+ s_sndChan = NULL;
+ err = SndNewChannel( &s_sndChan, sampledSynth, initStereo, NewSndCallBackProc(S_Callback) );
+ if ( err ) {
+ return false;
+ }
+
+ submissionChunk = chunkSize->integer;
+ maxMixedSamples = bufferSize->integer;
+
+ s_mixedSamples = NSZoneMalloc(NULL, sizeof(*s_mixedSamples) * maxMixedSamples);
+
+ dma.channels = 2;
+ dma.samples = maxMixedSamples;
+ dma.submission_chunk = submissionChunk;
+ dma.samplebits = 16;
+ dma.speed = 22050;
+ dma.buffer = (byte *)s_mixedSamples;
+
+ // que up the first submission-chunk sized buffer
+ s_chunkCount = 0;
+
+ S_Callback( s_sndChan, NULL );
+
+ return qtrue;
+}
+
+/*
+===============
+SNDDMA_GetDMAPos
+===============
+*/
+int SNDDMA_GetDMAPos(void) {
+ return s_chunkCount * submissionChunk;
+}
+
+/*
+===============
+SNDDMA_Shutdown
+===============
+*/
+void SNDDMA_Shutdown(void) {
+ if ( s_sndChan ) {
+ SndDisposeChannel( s_sndChan, true );
+ s_sndChan = NULL;
+ }
+}
+
+/*
+===============
+SNDDMA_BeginPainting
+===============
+*/
+void SNDDMA_BeginPainting(void) {
+}
+
+/*
+===============
+SNDDMA_Submit
+===============
+*/
+void SNDDMA_Submit(void) {
+}
diff --git a/code/macosx/macosx_sys.m b/code/macosx/macosx_sys.m
new file mode 100755
index 0000000..0d8d035
--- /dev/null
+++ b/code/macosx/macosx_sys.m
@@ -0,0 +1,537 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+#import "../client/client.h"
+#import "macosx_local.h"
+
+#import "dlfcn.h"
+#import "Q3Controller.h"
+
+#import <AppKit/AppKit.h>
+#import <IOKit/IOKitLib.h>
+#import <IOKit/IOBSD.h>
+#import <IOKit/storage/IOCDMedia.h>
+#import <mach/mach_error.h>
+
+#import <sys/types.h>
+#import <unistd.h>
+#import <sys/param.h>
+#import <sys/mount.h>
+#import <sys/sysctl.h>
+
+#ifdef OMNI_TIMER
+#import "macosx_timers.h"
+#endif
+
+qboolean stdin_active = qfalse;
+
+//===========================================================================
+
+int main(int argc, const char *argv[]) {
+#ifdef DEDICATED
+ Q3Controller *controller;
+
+ stdin_active = qtrue;
+ controller = [[Q3Controller alloc] init];
+ [controller quakeMain];
+ return 0;
+#else
+ return NSApplicationMain(argc, argv);
+#endif
+}
+
+//===========================================================================
+
+/*
+=================
+Sys_UnloadDll
+
+=================
+*/
+void Sys_UnloadDll( void *dllHandle ) {
+ if ( !dllHandle ) {
+ return;
+ }
+ dlclose( dllHandle );
+}
+
+/*
+=================
+Sys_LoadDll
+
+Used to load a development dll instead of a virtual machine
+=================
+*/
+extern char *FS_BuildOSPath( const char *base, const char *game, const char *qpath );
+
+void * QDECL Sys_LoadDll( const char *name, char *fqpath , int (QDECL **entryPoint)(int, ...),
+ int (QDECL *systemcalls)(int, ...) ) {
+ void *libHandle;
+ void (*dllEntry)( int (*syscallptr)(int, ...) );
+ NSString *bundlePath, *libraryPath;
+ const char *path;
+
+ // TTimo
+ // I don't understand the search strategy here. How can the Quake3 bundle know about the location
+ // of the other bundles? is that configured somewhere in XCode?
+ /*
+ bundlePath = [[NSBundle mainBundle] pathForResource: [NSString stringWithCString: name] ofType: @"bundle"];
+ libraryPath = [NSString stringWithFormat: @"%@/Contents/MacOS/%s", bundlePath, name];
+ */
+ libraryPath = [NSString stringWithFormat: @"%s.bundle/Contents/MacOS/%s", name, name];
+ if (!libraryPath)
+ return NULL;
+
+ path = [libraryPath cString];
+ Com_Printf("Loading '%s'.\n", path);
+ libHandle = dlopen( [libraryPath cString], RTLD_LAZY );
+ if (!libHandle) {
+ libHandle = dlopen( name, RTLD_LAZY );
+ if (!libHandle) {
+ Com_Printf("Error loading dll: %s\n", dlerror());
+ return NULL;
+ }
+ }
+
+ dllEntry = dlsym( libHandle, "_dllEntry" );
+ if (!dllEntry) {
+ Com_Printf("Error loading dll: No dllEntry symbol.\n");
+ dlclose(libHandle);
+ return NULL;
+ }
+
+ *entryPoint = dlsym( libHandle, "_vmMain" );
+ if (!*entryPoint) {
+ Com_Printf("Error loading dll: No vmMain symbol.\n");
+ dlclose(libHandle);
+ return NULL;
+ }
+
+ dllEntry(systemcalls);
+ return libHandle;
+}
+
+//===========================================================================
+
+char *Sys_GetClipboardData(void) // FIXME
+{
+ NSPasteboard *pasteboard;
+ NSArray *pasteboardTypes;
+
+ pasteboard = [NSPasteboard generalPasteboard];
+ pasteboardTypes = [pasteboard types];
+ if ([pasteboardTypes containsObject:NSStringPboardType]) {
+ NSString *clipboardString;
+
+ clipboardString = [pasteboard stringForType:NSStringPboardType];
+ if (clipboardString && [clipboardString length] > 0) {
+ return strdup([clipboardString cString]);
+ }
+ }
+ return NULL;
+}
+
+char *Sys_GetWholeClipboard ( void )
+{
+ return NULL;
+}
+
+void Sys_SetClipboard (const char *contents)
+{
+}
+
+
+/*
+==================
+Sys_FunctionCheckSum
+==================
+*/
+int Sys_FunctionCheckSum(void *f1) {
+ return 0;
+}
+
+/*
+==================
+Sys_MonkeyShouldBeSpanked
+==================
+*/
+int Sys_MonkeyShouldBeSpanked( void ) {
+ return 0;
+}
+
+//===========================================================================
+
+void Sys_BeginProfiling(void)
+{
+}
+
+void Sys_EndProfiling(void)
+{
+}
+
+//===========================================================================
+
+/*
+================
+Sys_Init
+
+The cvar and file system has been setup, so configurations are loaded
+================
+*/
+void Sys_Init(void)
+{
+#ifdef OMNI_TIMER
+ InitializeTimers();
+ OTStackPushRoot(rootNode);
+#endif
+
+ NET_Init();
+ Sys_InitInput();
+}
+
+/*
+=================
+Sys_Shutdown
+=================
+*/
+void Sys_Shutdown(void)
+{
+ Com_Printf( "----- Sys_Shutdown -----\n" );
+ Sys_EndProfiling();
+ Sys_ShutdownInput();
+ Com_Printf( "------------------------\n" );
+}
+
+void Sys_Error(const char *error, ...)
+{
+ va_list argptr;
+ NSString *formattedString;
+
+ Sys_Shutdown();
+
+ va_start(argptr,error);
+ formattedString = [[NSString alloc] initWithFormat:[NSString stringWithCString:error] arguments:argptr];
+ va_end(argptr);
+
+ NSLog(@"Sys_Error: %@", formattedString);
+ NSRunAlertPanel(@"Quake 3 Error", formattedString, nil, nil, nil);
+
+ Sys_Quit();
+}
+
+void Sys_Quit(void)
+{
+ Sys_Shutdown();
+ [NSApp terminate:nil];
+}
+
+/*
+================
+Sys_Print
+
+This is called for all console output, even if the game is running
+full screen and the dedicated console window is hidden.
+================
+*/
+
+char *ansiColors[8] =
+ { "\033[30m" , /* ANSI Black */
+ "\033[31m" , /* ANSI Red */
+ "\033[32m" , /* ANSI Green */
+ "\033[33m" , /* ANSI Yellow */
+ "\033[34m" , /* ANSI Blue */
+ "\033[36m" , /* ANSI Cyan */
+ "\033[35m" , /* ANSI Magenta */
+ "\033[37m" }; /* ANSI White */
+
+void Sys_Print(const char *text)
+{
+#if 0
+ /* Okay, this is a stupid hack, but what the hell, I was bored. ;) */
+ const char *scan = text;
+ int index;
+
+ /* Make sure terminal mode is reset at the start of the line... */
+ fputs("\033[0m", stdout);
+
+ while(*scan) {
+ /* See if we have a color control code. If so, snarf the character,
+ print what we have so far, print the ANSI Terminal color code,
+ skip over the color control code and continue */
+ if(Q_IsColorString(scan)) {
+ index = ColorIndex(scan[1]);
+
+ /* Flush current message */
+ if(scan != text) {
+ fwrite(text, scan - text, 1, stdout);
+ }
+
+ /* Write ANSI color code */
+ fputs(ansiColors[index], stdout);
+
+ /* Reset search */
+ text = scan+2;
+ scan = text;
+ continue;
+ }
+ scan++;
+ }
+
+ /* Flush whatever's left */
+ fputs(text, stdout);
+
+ /* Make sure terminal mode is reset at the end of the line too... */
+ fputs("\033[0m", stdout);
+
+#else
+ fputs(text, stdout);
+#endif
+}
+
+
+
+/*
+================
+Sys_CheckCD
+
+Return true if the proper CD is in the drive
+================
+*/
+
+qboolean Sys_ObjectIsCDRomDevice(io_object_t object)
+{
+ CFStringRef value;
+ kern_return_t krc;
+ CFDictionaryRef properties;
+ qboolean isCDROM = qfalse;
+ io_iterator_t parentIterator;
+ io_object_t parent;
+
+ krc = IORegistryEntryCreateCFProperties(object, &properties, kCFAllocatorDefault, (IOOptionBits)0);
+ if (krc != KERN_SUCCESS) {
+ fprintf(stderr, "IORegistryEntryCreateCFProperties returned 0x%08x -- %s\n", krc, mach_error_string(krc));
+ return qfalse;
+ }
+
+ //NSLog(@"properties = %@", properties);
+
+ // See if this is a CD-ROM
+ value = CFDictionaryGetValue(properties, CFSTR(kIOCDMediaTypeKey));
+ if (value && CFStringCompare(value, CFSTR("CD-ROM"), 0) == kCFCompareEqualTo)
+ isCDROM = qtrue;
+ CFRelease(properties);
+
+ // If it isn't check each of its parents. It seems that the parent enumerator only returns the immediate parent. Maybe the plural indicates that an object can have multiple direct parents. So, we'll call ourselves recursively for each parent.
+ if (!isCDROM) {
+ krc = IORegistryEntryGetParentIterator(object, kIOServicePlane, &parentIterator);
+ if (krc != KERN_SUCCESS) {
+ fprintf(stderr, "IOServiceGetMatchingServices returned 0x%08x -- %s\n",
+ krc, mach_error_string(krc));
+ } else {
+ while (!isCDROM && (parent = IOIteratorNext(parentIterator))) {
+ if (Sys_ObjectIsCDRomDevice(parent))
+ isCDROM = qtrue;
+ IOObjectRelease(parent);
+ }
+
+ IOObjectRelease(parentIterator);
+ }
+ }
+
+ //NSLog(@"Sys_ObjectIsCDRomDevice -> %d", isCDROM);
+ return isCDROM;
+}
+
+qboolean Sys_IsCDROMDevice(const char *deviceName)
+{
+ kern_return_t krc;
+ io_iterator_t deviceIterator;
+ mach_port_t masterPort;
+ io_object_t object;
+ qboolean isCDROM = qfalse;
+
+ krc = IOMasterPort(bootstrap_port, &masterPort);
+ if (krc != KERN_SUCCESS) {
+ fprintf(stderr, "IOMasterPort returned 0x%08x -- %s\n", krc, mach_error_string(krc));
+ return qfalse;
+ }
+
+ // Get an iterator for this BSD device. If it is a CD, it will likely only be one partition of the larger CD-ROM device.
+ krc = IOServiceGetMatchingServices(masterPort,
+ IOBSDNameMatching(masterPort, 0, deviceName),
+ &deviceIterator);
+ if (krc != KERN_SUCCESS) {
+ fprintf(stderr, "IOServiceGetMatchingServices returned 0x%08x -- %s\n",
+ krc, mach_error_string(krc));
+ return qfalse;
+ }
+
+ while (!isCDROM && (object = IOIteratorNext(deviceIterator))) {
+ if (Sys_ObjectIsCDRomDevice(object)) {
+ isCDROM = qtrue;
+ }
+ IOObjectRelease(object);
+ }
+
+ IOObjectRelease(deviceIterator);
+
+ //NSLog(@"Sys_IsCDROMDevice -> %d", isCDROM);
+ return isCDROM;
+}
+
+qboolean Sys_CheckCD( void )
+{
+ // DO NOT just return success here if we have a library directory.
+ // Actually look for the CD.
+
+ // We'll look through the actual mount points rather than just looking
+ // for a particular directory since (a) the mount point may change
+ // between OS version (/foo in Public Beta, /Volumes/foo after Public Beta)
+ // and (b) this way someone can't just create a directory and warez the files.
+
+ unsigned int mountCount;
+ struct statfs *mounts;
+
+ mountCount = getmntinfo(&mounts, MNT_NOWAIT);
+ if (mountCount <= 0) {
+ perror("getmntinfo");
+#if 1 // Q3:TA doesn't need a CD, but we still need to locate it to allow for partial installs
+ return qtrue;
+#else
+ return qfalse;
+#endif
+ }
+
+ while (mountCount--) {
+ const char *lastComponent;
+
+ if ((mounts[mountCount].f_flags & MNT_RDONLY) != MNT_RDONLY) {
+ // Should have been a read only CD... this isn't it
+ continue;
+ }
+
+ if ((mounts[mountCount].f_flags & MNT_LOCAL) != MNT_LOCAL) {
+ // Should have been a local filesystem
+ continue;
+ }
+
+ lastComponent = strrchr(mounts[mountCount].f_mntonname, '/');
+ if (!lastComponent) {
+ // No slash in the mount point! How is that possible?
+ continue;
+ }
+
+ // Skip the slash and look for the game name
+ lastComponent++;
+ if ((strcasecmp(lastComponent, "Quake3") != 0)) {
+ continue;
+ }
+
+
+#if 0
+ fprintf(stderr, "f_bsize: %d\n", mounts[mountCount].f_bsize);
+ fprintf(stderr, "f_blocks: %d\n", mounts[mountCount].f_blocks);
+ fprintf(stderr, "type: %d\n", mounts[mountCount].f_type);
+ fprintf(stderr, "flags: %d\n", mounts[mountCount].f_flags);
+ fprintf(stderr, "fstype: %s\n", mounts[mountCount].f_fstypename);
+ fprintf(stderr, "f_mntonname: %s\n", mounts[mountCount].f_mntonname);
+ fprintf(stderr, "f_mntfromname: %s\n", mounts[mountCount].f_mntfromname);
+ fprintf(stderr, "\n\n");
+#endif
+
+ lastComponent = strrchr(mounts[mountCount].f_mntfromname, '/');
+ if (!lastComponent) {
+ // No slash in the device name! How is that possible?
+ continue;
+ }
+ lastComponent++;
+ if (!Sys_IsCDROMDevice(lastComponent))
+ continue;
+
+ // This looks good
+ Sys_SetDefaultCDPath(mounts[mountCount].f_mntonname);
+ return qtrue;
+ }
+
+#if 1 // Q3:TA doesn't need a CD, but we still need to locate it to allow for partial installs
+ return qtrue;
+#else
+ return qfalse;
+#endif
+}
+
+
+//===================================================================
+
+void Sys_BeginStreamedFile( fileHandle_t f, int readAhead ) {
+}
+
+void Sys_EndStreamedFile( fileHandle_t f ) {
+}
+
+int Sys_StreamedRead( void *buffer, int size, int count, fileHandle_t f ) {
+ return FS_Read( buffer, size * count, f );
+}
+
+void Sys_StreamSeek( fileHandle_t f, int offset, int origin ) {
+ FS_Seek( f, offset, origin );
+}
+
+
+void OutputDebugString(char * s)
+{
+#ifdef DEBUG
+ fprintf(stderr, "%s", s);
+#endif
+}
+
+/*
+==================
+Sys_LowPhysicalMemory()
+==================
+*/
+#define MEM_THRESHOLD 96*1024*1024
+
+qboolean Sys_LowPhysicalMemory()
+{
+ return NSRealMemoryAvailable() <= MEM_THRESHOLD;
+}
+
+static unsigned int _Sys_ProcessorCount = 0;
+
+unsigned int Sys_ProcessorCount()
+{
+ if (!_Sys_ProcessorCount) {
+ int name[] = {CTL_HW, HW_NCPU};
+ size_t size;
+
+ size = sizeof(_Sys_ProcessorCount);
+ if (sysctl(name, 2, &_Sys_ProcessorCount, &size, NULL, 0) < 0) {
+ perror("sysctl");
+ _Sys_ProcessorCount = 1;
+ } else {
+ Com_Printf("System processor count is %d\n", _Sys_ProcessorCount);
+ }
+ }
+
+ return _Sys_ProcessorCount;
+}
+
diff --git a/code/macosx/macosx_timers.h b/code/macosx/macosx_timers.h
new file mode 100755
index 0000000..a176fe8
--- /dev/null
+++ b/code/macosx/macosx_timers.h
@@ -0,0 +1,56 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+#ifdef OMNI_TIMER
+
+#import <OmniTimer/OmniTimer.h>
+
+#define OTSTART(node) OTStackPush(node)
+#define OTSTOP(node) OTStackPop()
+
+extern OTStackNode *rootNode;
+extern OTStackNode *markFragmentsNode1;
+extern OTStackNode *markFragmentsNode2;
+extern OTStackNode *markFragmentsGrid;
+extern OTStackNode *markFragmentsNode4;
+extern OTStackNode *addMarkFragmentsNode;
+extern OTStackNode *chopPolyNode;
+extern OTStackNode *boxTraceNode;
+extern OTStackNode *boxOnPlaneSideNode;
+extern OTStackNode *recursiveWorldNode;
+extern OTStackNode *surfaceAnimNode;
+extern OTStackNode *surfaceFaceNode;
+extern OTStackNode *surfaceMeshNode;
+extern OTStackNode *surfaceEndNode;
+extern OTStackNode *shadowEndNode;
+extern OTStackNode *stageIteratorGenericNode;
+extern OTStackNode *computeColorAndTexNode;
+extern OTStackNode *mp3DecodeNode;
+
+extern void InitializeTimers();
+
+#else
+
+#define OTSTART(node)
+#define OTSTOP(node)
+
+#endif
+
diff --git a/code/macosx/macosx_timers.m b/code/macosx/macosx_timers.m
new file mode 100755
index 0000000..fad50c2
--- /dev/null
+++ b/code/macosx/macosx_timers.m
@@ -0,0 +1,75 @@
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena source code is distributed in the hope that it will be
+useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+#ifdef OMNI_TIMER
+
+#import "macosx_timers.h"
+
+#import <Foundation/NSString.h>
+#import <stdio.h>
+
+OTStackNode *rootNode;
+OTStackNode *markFragmentsNode1;
+OTStackNode *markFragmentsNode2;
+OTStackNode *markFragmentsGrid;
+OTStackNode *markFragmentsNode4;
+OTStackNode *addMarkFragmentsNode;
+OTStackNode *chopPolyNode;
+OTStackNode *boxTraceNode;
+OTStackNode *boxOnPlaneSideNode;
+OTStackNode *recursiveWorldNode;
+OTStackNode *surfaceAnimNode;
+OTStackNode *surfaceFaceNode;
+OTStackNode *surfaceMeshNode;
+OTStackNode *surfaceEndNode;
+OTStackNode *shadowEndNode;
+OTStackNode *stageIteratorGenericNode;
+OTStackNode *computeColorAndTexNode;
+OTStackNode *mp3DecodeNode;
+
+void InitializeTimers()
+{
+ const char *env;
+
+ OTSetup();
+
+ rootNode = OTStackNodeCreate("root");
+ markFragmentsNode1 = OTStackNodeCreate("R_MarkFragments 1");
+ markFragmentsNode2 = OTStackNodeCreate("R_MarkFragments 2");
+ markFragmentsGrid = OTStackNodeCreate("R_MarkFragmentsGrid");
+ markFragmentsNode4 = OTStackNodeCreate("R_MarkFragments 4");
+ addMarkFragmentsNode = OTStackNodeCreate("R_AddMarkFragments");
+ chopPolyNode = OTStackNodeCreate("R_ChopPolyBehindPlane");
+ boxTraceNode = OTStackNodeCreate("CM_BoxTrace");
+ boxOnPlaneSideNode = OTStackNodeCreate("BoxOnPlaneSide");
+ recursiveWorldNode = OTStackNodeCreate("R_RecursiveWorldNode");
+ surfaceAnimNode = OTStackNodeCreate("RB_SurfaceAnim");
+ surfaceFaceNode = OTStackNodeCreate("RB_SurfaceFace");
+ surfaceMeshNode = OTStackNodeCreate("RB_SurfaceMesh");
+ surfaceEndNode = OTStackNodeCreate("RB_EndSurface");
+ shadowEndNode = OTStackNodeCreate("RB_ShadowTessEnd");
+ stageIteratorGenericNode = OTStackNodeCreate("RB_StageIteratorGeneric");
+ computeColorAndTexNode = OTStackNodeCreate("ComputeColors & ComputeTexCoords");
+ mp3DecodeNode = OTStackNodeCreate("MP3Stream_Decode");
+}
+
+#endif // OMNI_TIMER
+
diff --git a/code/macosx/timedemo.zsh b/code/macosx/timedemo.zsh
new file mode 100755
index 0000000..d3de235
--- /dev/null
+++ b/code/macosx/timedemo.zsh
@@ -0,0 +1,26 @@
+#!/bin/zsh
+
+buildRoot=./build
+executable=$buildRoot/Quake3.app/Contents/MacOS/Quake3
+ls -l $executable
+
+flags="$flags +set timedemo 1"
+flags="$flags +set s_initsound 0"
+flags="$flags +set vm_cgame 1"
+flags="$flags +set vm_game 1"
+flags="$flags +set r_texturebits 16"
+flags="$flags +set r_depthbits 16"
+flags="$flags +set r_colorbits 16"
+flags="$flags +set stencilbits 8"
+
+flags="$flags +set r_appleTransformHint 1"
+
+echo flags=$flags
+
+function demo {
+ echo Demo $*
+ $executable $flags +demo $* |& egrep "(seconds|VM)"
+}
+
+demo foo
+