From 09fc7f812e1257f0b1ed708c27e1317f97f7c6cf Mon Sep 17 00:00:00 2001 From: curt Date: Sat, 18 Apr 1998 04:11:25 +0000 Subject: [PATCH] Moved fg_debug to it's own library, added zlib support. --- Main/GLUTkey.c | 11 +- Main/GLUTmain.c | 14 ++- Main/Makefile.am | 7 +- Main/Makefile.in | 19 ++-- Main/fg_debug.c | 281 ---------------------------------------------- Main/fg_debug.h | 143 ----------------------- Main/fg_init.c | 23 ++-- Main/runfg.bat.in | 6 +- Main/views.c | 9 +- 9 files changed, 51 insertions(+), 462 deletions(-) delete mode 100644 Main/fg_debug.c delete mode 100644 Main/fg_debug.h diff --git a/Main/GLUTkey.c b/Main/GLUTkey.c index a513c01e1..cf0e458df 100644 --- a/Main/GLUTkey.c +++ b/Main/GLUTkey.c @@ -35,8 +35,8 @@ #include #include +#include #include
-#include
#include
#include @@ -257,10 +257,13 @@ void GLUTspecialkey(int k, int x, int y) { /* $Log$ -/* Revision 1.32 1998/04/14 02:21:01 curt -/* Incorporated autopilot heading hold contributed by: Jeff Goeke-Smith -/* +/* Revision 1.33 1998/04/18 04:11:25 curt +/* Moved fg_debug to it's own library, added zlib support. /* + * Revision 1.32 1998/04/14 02:21:01 curt + * Incorporated autopilot heading hold contributed by: Jeff Goeke-Smith + * + * * Revision 1.31 1998/04/08 23:34:05 curt * Patch from Durk to fix trim reversal with numlock key active. * diff --git a/Main/GLUTmain.c b/Main/GLUTmain.c index 5d5b7395c..acdfaba99 100644 --- a/Main/GLUTmain.c +++ b/Main/GLUTmain.c @@ -41,9 +41,9 @@ # include #endif +#include #include
#include
-#include
#include
#include
@@ -347,6 +347,7 @@ static void fgRenderFrame( void ) { struct fgVIEW *v; double angle; GLfloat white[4] = { 1.0, 1.0, 1.0, 1.0 }; + GLfloat black[4] = { 0.0, 0.0, 0.0, 1.0 }; l = &cur_light_params; t = &cur_time_params; @@ -417,6 +418,8 @@ static void fgRenderFrame( void ) { GL_LINEAR /* GL_LINEAR_MIPMAP_LINEAR */ ) ; xglTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE ) ; xglHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST ) ; + /* set base color (I don't think this is doing anything here) */ + xglColor4fv(white); fgTileMgrRender(); @@ -824,10 +827,13 @@ extern "C" { #endif /* $Log$ -/* Revision 1.70 1998/04/14 02:21:02 curt -/* Incorporated autopilot heading hold contributed by: Jeff Goeke-Smith -/* +/* Revision 1.71 1998/04/18 04:11:26 curt +/* Moved fg_debug to it's own library, added zlib support. /* + * Revision 1.70 1998/04/14 02:21:02 curt + * Incorporated autopilot heading hold contributed by: Jeff Goeke-Smith + * + * * Revision 1.69 1998/04/08 23:35:34 curt * Tweaks to Gnu automake/autoconf system. * diff --git a/Main/Makefile.am b/Main/Makefile.am index 46bd1aa74..26f85ba7b 100644 --- a/Main/Makefile.am +++ b/Main/Makefile.am @@ -8,7 +8,6 @@ fg_SOURCES = \ GLUTkey.c GLUTkey.h \ GLUTmain.c \ fg_config.h \ - fg_debug.c fg_debug.h \ fg_getopt.c fg_getopt.h \ fg_init.c fg_init.h \ views.c views.h @@ -26,8 +25,10 @@ fg_LDADD = \ $(top_builddir)/Simulator/Time/libTime.la \ $(top_builddir)/Simulator/Weather/libWeather.la \ $(top_builddir)/Simulator/Joystick/libJoystick.la \ - $(top_builddir)/Simulator/Math/libMath.la \ - $(top_builddir)/Lib/Bucket/libBucket.la + $(top_builddir)/Lib/Math/libMath.la \ + $(top_builddir)/Lib/Bucket/libBucket.la \ + $(top_builddir)/Lib/Debug/libDebug.la \ + $(top_builddir)/Lib/zlib/libz.la INCLUDES += \ -DGLUT \ diff --git a/Main/Makefile.in b/Main/Makefile.in index a22f5960c..f6ed44eb7 100644 --- a/Main/Makefile.in +++ b/Main/Makefile.in @@ -81,7 +81,6 @@ fg_SOURCES = \ GLUTkey.c GLUTkey.h \ GLUTmain.c \ fg_config.h \ - fg_debug.c fg_debug.h \ fg_getopt.c fg_getopt.h \ fg_init.c fg_init.h \ views.c views.h @@ -99,8 +98,10 @@ fg_LDADD = \ $(top_builddir)/Simulator/Time/libTime.la \ $(top_builddir)/Simulator/Weather/libWeather.la \ $(top_builddir)/Simulator/Joystick/libJoystick.la \ - $(top_builddir)/Simulator/Math/libMath.la \ - $(top_builddir)/Lib/Bucket/libBucket.la + $(top_builddir)/Lib/Math/libMath.la \ + $(top_builddir)/Lib/Bucket/libBucket.la \ + $(top_builddir)/Lib/Debug/libDebug.la \ + $(top_builddir)/Lib/zlib/libz.la mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = ../../Include/config.h CONFIG_CLEAN_FILES = runfg runfg.bat @@ -115,8 +116,7 @@ X_CFLAGS = @X_CFLAGS@ X_LIBS = @X_LIBS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ -fg_OBJECTS = GLUTkey.o GLUTmain.o fg_debug.o fg_getopt.o fg_init.o \ -views.o +fg_OBJECTS = GLUTkey.o GLUTmain.o fg_getopt.o fg_init.o views.o fg_DEPENDENCIES = $(top_builddir)/Simulator/Aircraft/libAircraft.la \ $(top_builddir)/Simulator/Astro/libAstro.la \ $(top_builddir)/Simulator/Autopilot/libAutopilot.la \ @@ -129,8 +129,9 @@ $(top_builddir)/Simulator/Scenery/libScenery.la \ $(top_builddir)/Simulator/Time/libTime.la \ $(top_builddir)/Simulator/Weather/libWeather.la \ $(top_builddir)/Simulator/Joystick/libJoystick.la \ -$(top_builddir)/Simulator/Math/libMath.la \ -$(top_builddir)/Lib/Bucket/libBucket.la +$(top_builddir)/Lib/Math/libMath.la \ +$(top_builddir)/Lib/Bucket/libBucket.la \ +$(top_builddir)/Lib/Debug/libDebug.la $(top_builddir)/Lib/zlib/libz.la fg_LDFLAGS = SCRIPTS = $(bin_SCRIPTS) @@ -145,8 +146,8 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP = --best -DEP_FILES = .deps/GLUTkey.P .deps/GLUTmain.P .deps/fg_debug.P \ -.deps/fg_getopt.P .deps/fg_init.P .deps/views.P +DEP_FILES = .deps/GLUTkey.P .deps/GLUTmain.P .deps/fg_getopt.P \ +.deps/fg_init.P .deps/views.P SOURCES = $(fg_SOURCES) OBJECTS = $(fg_OBJECTS) diff --git a/Main/fg_debug.c b/Main/fg_debug.c deleted file mode 100644 index 8c1e8f1c5..000000000 --- a/Main/fg_debug.c +++ /dev/null @@ -1,281 +0,0 @@ -/* -*- Mode: C++ -*- - * - * fg_debug.c -- Flight Gear debug utility functions - * - * Written by Paul Bleisch, started January 1998. - * - * Copyright (C) 1998 Paul Bleisch, pbleisch@acm.org - * - * This program 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. - * - * This program 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 this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * $Id$ - * (Log is kept at end of this file) - **************************************************************************/ - - -#include -#include -#include -#include - -#include // Line to command line arguments -#include
- - -static int fg_DebugSem = 1; -fgDebugClass fg_DebugClass = FG_NONE; // Need visibility for -fgDebugPriority fg_DebugPriority = FG_INFO; // command line processing. -static fgDebugCallback fg_DebugCallback = NULL; - -FILE *fg_DebugOutput = NULL; // Visibility needed for command line processor. - // This can be set to a FILE from the command - // line. If not, it will be set to stderr. - -/* TODO: Actually make this thing thread safe */ -#ifdef USETHREADS -#define FG_GRABDEBUGSEM while( --fg_DebugSem < 0 ) { fg_DebugSem++; } -#define FG_RELEASEDEBUGSEM fg_DebugSem++; -#else -#define FG_GRABDEBUGSEM -#define FG_RELEASEDEBUGSEM -#endif - -/* Used for convienence initialization from env variables. - */ -static struct { - char *str; - fgDebugClass dbg_class; -} fg_DebugClasses[] = { - { "FG_NONE", 0x00000000 }, - { "FG_TERRAIN", 0x00000001 }, - { "FG_ASTRO", 0x00000002 }, - { "FG_FLIGHT", 0x00000004 }, - { "FG_INPUT", 0x00000008 }, - { "FG_GL", 0x00000010 }, - { "FG_VIEW", 0x00000020 }, - { "FG_COCKPIT", 0x00000040 }, - { "FG_GENERAL", 0x00000080 }, - { "FG_MATH", 0x00000100 }, - { "FG_EVENT", 0x00000200 }, - { "FG_AIRCRAFT",0x00000400 }, - - /* Do not edit below here, last entry should be null */ - { "FG_ALL", 0xFFFFFFFF }, - { NULL, 0 } -}; - -static fgDebugClass fgDebugStrToClass( char *str ); - - -/* fgInitDebug =============================================================*/ -void fgInitDebug( void ) { - char *pszClass, *pszPrio, *pszFile; - - // Support for log file/alt debug output via command line, environment or - // reasonable default. - - if( strlen( logArgbuf ) > 3) { // First check for command line option - // Assumed that we will append. - fg_DebugOutput = fopen(logArgbuf, "a+" ); - } - - if( !fg_DebugOutput ) { // If not set on command line, environment? - pszFile = getenv( "FG_DEBUGFILE" ); - if( pszFile ) { // There is such an environmental variable. - fg_DebugOutput = fopen( pszFile, "a+" ); - } - } - - if( !fg_DebugOutput ) { // If neither command line nor environment - fg_DebugOutput = stderr; // then we use the fallback position - } - - FG_GRABDEBUGSEM; - fg_DebugSem = fg_DebugSem; /* shut up GCC */ - - // Test command line option overridge of debug priority. If the value - // is in range (properly optioned) the we will override both defaults - // and the environmental value. - - if ((priorityArgValue >= FG_BULK) && (priorityArgValue <= FG_ABORT)) { - fg_DebugPriority = priorityArgValue; - } else { // Either not set or out of range. We will not warn the user. - pszPrio = getenv( "FG_DEBUGPRIORITY" ); - if( pszPrio ) { - fg_DebugPriority = atoi( pszPrio ); - fprintf( stderr, - "fg_debug.c: Environment overrides default debug priority (%d)\n", - fg_DebugPriority ); - } - } - - - if ((debugArgValue >= FG_ALL) && (debugArgValue < FG_UNDEFD)) { - fg_DebugPriority = priorityArgValue; - } else { // Either not set or out of range. We will not warn the user. - pszClass = getenv( "FG_DEBUGCLASS" ); - if( pszClass ) { - fg_DebugClass = fgDebugStrToClass( pszClass ); - fprintf( stderr, - "fg_debug.c: Environment overrides default debug class (0x%08X)\n", - fg_DebugClass ); - } - } - - FG_RELEASEDEBUGSEM; -} - -/* fgDebugStrToClass ======================================================*/ -fgDebugClass fgDebugStrToClass( char *str ) { - char *hex = "0123456789ABCDEF"; - char *hexl = "0123456789abcdef"; - char *pt, *p, *ph, ps = 1; - unsigned int val = 0, i; - - if( str == NULL ) { - return 0; - } - - /* Check for 0xXXXXXX notation */ - if( (p = strstr( str, "0x")) ) { - p++; p++; - while (*p) { - if( (ph = strchr(hex,*p)) || (ph = strchr(hexl,*p)) ){ - val <<= 4; - val += ph-hex; - p++; - } else { - // fprintf( stderr, "Error in hex string '%s'\n", str ); - return FG_NONE; - } - } - } else { - /* Must be in string format */ - p = str; - ps = 1; - while( ps ) { - while( *p && (*p==' ' || *p=='\t') ) p++; /* remove whitespace */ - pt = p; /* mark token */ - while( *p && (*p!='|') ) p++; /* find OR or EOS */ - ps = *p; /* save value at p so we can attempt to be bounds safe */ - *p++ = 0; /* terminate token */ - /* determine value for token */ - i=0; - while( fg_DebugClasses[i].str && - strncmp( fg_DebugClasses[i].str, pt, - strlen(fg_DebugClasses[i].str)) ) i++; - if( fg_DebugClasses[i].str == NULL ) { - fprintf( stderr, - "fg_debug.c: Could not find message class '%s'\n", - pt ); - } else { - val |= fg_DebugClasses[i].dbg_class; - } - } - } - return (fgDebugClass)val; -} - - -/* fgSetDebugOutput =======================================================*/ -void fgSetDebugOutput( FILE *out ) { - FG_GRABDEBUGSEM; - fflush( fg_DebugOutput ); - fg_DebugOutput = out; - FG_RELEASEDEBUGSEM; -} - - -/* fgSetDebugLevels =======================================================*/ -void fgSetDebugLevels( fgDebugClass dbg_class, fgDebugPriority prio ) { - FG_GRABDEBUGSEM; - fg_DebugClass = dbg_class; - fg_DebugPriority = prio; - FG_RELEASEDEBUGSEM; -} - - -/* fgRegisterDebugCallback ================================================*/ -fgDebugCallback fgRegisterDebugCallback( fgDebugCallback callback ) { - fgDebugCallback old; - FG_GRABDEBUGSEM; - old = fg_DebugCallback; - fg_DebugCallback = callback; - FG_RELEASEDEBUGSEM; - return old; -} - - -/* fgPrintf ===============================================================*/ -int fgPrintf( fgDebugClass dbg_class, fgDebugPriority prio, char *fmt, ... ) { - char szOut[1024+1]; - va_list ap; - int ret = 0; - - // If no action to take, then don't bother with the semaphore - // activity Slight speed benefit. - - // printf("dbg_class = %d fg_DebugClass = %d\n", dbg_class, fg_DebugClass); - // printf("prio = %d fg_DebugPriority = %d\n", prio, fg_DebugPriority); - - if( !(dbg_class & fg_DebugClass) ) { - // Failed to match a specific debug class - if ( prio < fg_DebugPriority ) { - // priority is less than requested - - // "ret" is zero anyway. But we might think about changing - // it upon some error condition? - return ret; - } - } - - FG_GRABDEBUGSEM; - - /* ret = vsprintf( szOut, fmt, (&fmt+1)); (but it didn't work, thus ... */ - va_start (ap, fmt); - ret = vsprintf( szOut, fmt, ap); - va_end (ap); - - if( fg_DebugCallback!=NULL && fg_DebugCallback(dbg_class, prio, szOut) ) { - FG_RELEASEDEBUGSEM; - return ret; - } else { - fprintf( fg_DebugOutput, szOut ); - FG_RELEASEDEBUGSEM; - if( prio == FG_EXIT ) { - exit(0); - } else if( prio == FG_ABORT ) { - abort(); - } - } - return ret; -} - - -/* $Log$ -/* Revision 1.10 1998/03/14 00:31:21 curt -/* Beginning initial terrain texturing experiments. -/* - * Revision 1.9 1998/03/09 22:44:58 curt - * Modified so that you can specify FG_DEBUGCLASS ***or*** FG_DEBUG_PRIORITY - * - * Revision 1.8 1998/03/09 22:11:00 curt - * Processed through the format-o-matic. - * - * Revision 1.7 1998/02/16 13:39:43 curt - * Miscellaneous weekend tweaks. Fixed? a cache problem that caused whole - * tiles to occasionally be missing. - * - */ diff --git a/Main/fg_debug.h b/Main/fg_debug.h deleted file mode 100644 index aa3b44117..000000000 --- a/Main/fg_debug.h +++ /dev/null @@ -1,143 +0,0 @@ -/* -*- Mode: C++ -*- - * - * fg_debug.h -- Flight Gear debug utility functions - * - * Written by Paul Bleisch, started January 1998. - * - * Copyright (C) 1998 Paul Bleisch, pbleisch@acm.org - * - * This program 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. - * - * This program 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 this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * (Log is kept at end of this file) - **************************************************************************/ - - -#ifndef _FG_DEBUG_H -#define _FG_DEBUG_H - -#include - -/* NB: To add a dbg_class, add it here, and add it to the structure in - fg_debug.c */ -typedef enum { - FG_NONE = 0x00000000, - - FG_TERRAIN = 0x00000001, - FG_ASTRO = 0x00000002, - FG_FLIGHT = 0x00000004, - FG_INPUT = 0x00000008, - FG_GL = 0x00000010, - FG_VIEW = 0x00000020, - FG_COCKPIT = 0x00000040, - FG_GENERAL = 0x00000080, - FG_MATH = 0x00000100, - FG_EVENT = 0x00000200, - FG_AIRCRAFT= 0x00000400, - FG_UNDEFD = 0x00001000, // For range checking - - FG_ALL = 0xFFFFFFFF -} fgDebugClass; - -/* NB: To add a priority, add it here. */ -typedef enum { - FG_BULK, /* For frequent messages */ - FG_DEBUG, /* Less frequent debug type messages */ - FG_INFO, /* Informatory messages */ - FG_WARN, /* Possible impending problem */ - FG_ALERT, /* Very possible impending problem */ - FG_EXIT, /* Problem (no core) */ - FG_ABORT /* Abandon ship (core) */ -} fgDebugPriority; - - -/* Initialize the debuggin stuff. */ -void fgInitDebug( void ); - - -/* fgPrintf - - Expects: - class fgDebugClass mask for this message. - prio fgDebugPriority of this message. - fmt printf like string format - ... var args for fmt - - Returns: - number of items in fmt handled. - - This function works like the standard C library function printf() with - the addition of message classes and priorities (see fgDebugClasses - and fgDebugPriorities). These additions allow us to classify messages - and disable sets of messages at runtime. Only messages with a prio - greater than or equal to fg_DebugPriority and in the current debug class - (fg_DebugClass) are printed. -*/ -int fgPrintf( fgDebugClass dbg_class, fgDebugPriority prio, char *fmt, ... ); - - -/* fgSetDebugLevels() - - Expects: - dbg_class Bitmask representing classes to display. - prio Minimum priority of messages to display. -*/ -void fgSetDebugLevels( fgDebugClass dbg_class, fgDebugPriority prio ); - -/* fgSetDebugOutput() - - Expects: - file A FILE* to a stream to send messages to. - - It is assumed the file stream is open and writable. The system - defaults to stderr. The current stream is flushed but not - closed. -*/ -void fgSetDebugOutput( FILE *out ); - - -/* fgRegisterDebugCallback - - Expects: - callback A function that takes parameters as defined by the - fgDebugCallback type. - - Returns: - a pointer to the previously registered callback (if any) - - Install a user defined debug log callback. This callback is called w - whenever fgPrintf is called. The parameters passed to the callback are - defined above by fgDebugCallback. outstr is the string that is to be - printed. If callback returns nonzero, it is assumed that the message - was handled fully by the callback and **fgPrintf need do no further - processing of the message.** Only one callback may be installed at a - time. -*/ - -//typedef int (*fgDebugCallback)(fgDebugClass, fgDebugPriority, char *outstr); -//fgDebugCallback fgRegisterDebugCallback( fgDebugCallback callback ); - -typedef int (*fgDebugCallback)( int DebugClass, int DebugPriority, char *outstr); -fgDebugCallback fgRegisterDebugCallback( fgDebugCallback callback ); - - -// Leave these alone. Access intended for fg_debug and command line processing. -// -extern fgDebugClass fg_DebugClass; -extern fgDebugPriority fg_DebugPriority; - -extern FILE * fg_DebugOutput; - -#endif /* _FG_DEBUG_H */ - diff --git a/Main/fg_init.c b/Main/fg_init.c index 95201d543..e70e61184 100644 --- a/Main/fg_init.c +++ b/Main/fg_init.c @@ -44,6 +44,7 @@ #include #include #include +#include #include #include #include @@ -52,7 +53,6 @@ #include