⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftdebug.h

📁 Qt/Embedded是一个多平台的C++图形用户界面应用程序框架
💻 H
字号:
/***************************************************************************//*                                                                         *//*  ftdebug.h                                                              *//*                                                                         *//*    Debugging and logging component (specification).                     *//*                                                                         *//*  Copyright 1996-2000 by                                                 *//*  David Turner, Robert Wilhelm, and Werner Lemberg.                      *//*                                                                         *//*  This file is part of the FreeType project, and may only be used        *//*  modified and distributed under the terms of the FreeType project       *//*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     *//*  this file you indicate that you have read the license and              *//*  understand and accept it fully.                                        *//*                                                                         *//***************************************************************************/  /*************************************************************************/  /*                                                                       */  /* This component contains various macros and functions used to ease the */  /* debugging of the FreeType engine.  Its main purpose is in assertion   */  /* checking, tracing, and error detection.                               */  /*                                                                       */  /* There are now three debugging modes:                                  */  /*                                                                       */  /* - trace mode                                                          */  /*                                                                       */  /*   Error and trace messages are sent to the log file (which can be the */  /*   standard error output).                                             */  /*                                                                       */  /* - error mode                                                          */  /*                                                                       */  /*   Only error messages are generated.                                  */  /*                                                                       */  /* - release mode:                                                       */  /*                                                                       */  /*   No error message is sent or generated.  The code is free from any   */  /*   debugging parts.                                                    */  /*                                                                       */  /*************************************************************************/#ifndef FTDEBUG_H#define FTDEBUG_H#include <ftconfig.h>   /* for FT_DEBUG_LEVEL_TRACE, FT_DEBUG_LEVEL_ERROR */#ifdef __cplusplus  extern "C" {#endif#ifdef FT_DEBUG_LEVEL_TRACE  typedef enum  FT_Trace_  {    /* the first level must always be `trace_any' */    trace_any = 0,    /* first, define an enum for each common component */    trace_io,        /* in ftsys */    trace_memory,    /* in ftsys */    trace_sync,      /* in ftsys */    trace_stream,    /* stream manager - see ftstream.c */    trace_calc,      /* computations   - see ftcalc.c   */    trace_raster,    /* raster         - see ftraster.c */    trace_list,      /* list manager   - see ftlist.c   */    trace_objs,      /* base objects   - see ftobjs.c   */    /* then define an enum for each TrueType driver component */    trace_ttobjs,    trace_ttload,    trace_ttgload,    trace_ttinterp,    trace_ttcmap,    trace_ttextend,    trace_ttdriver,#if 0    /* define an enum for each TrueDoc driver component */    trace_tdobjs,    trace_tdload,    trace_tdgload,    trace_tdhint,    trace_tddriver,#endif    /* define an enum for each Type1 driver component */    trace_t1objs,    trace_t1load,    trace_t1gload,    trace_t1hint,    trace_t1driver,    /* other trace levels */    trace_init,    /* the last level must always be `trace_max' */    trace_max  } FT_Trace;  /* declared in ftdebug.c */  extern char  ft_trace_levels[trace_max];  /*************************************************************************/  /*                                                                       */  /* IMPORTANT!                                                            */  /*                                                                       */  /* Each component must define the macro FT_COMPONENT to a valid          */  /* Trace_Component value before using any TRACE macro.                   */  /*                                                                       */  /*************************************************************************/#define FT_TRACE( level, varformat )                        \          do                                                \          {                                                 \            if ( ft_trace_levels[FT_COMPONENT] >= level )   \              FT_Message##varformat;                        \          } while ( 0 )  EXPORT_DEF  void  FT_SetTraceLevel( FT_Trace  component,                          char      level );#elif defined( FT_DEBUG_LEVEL_ERROR )#define FT_TRACE( level, varformat )    while ( 0 ) { }     /* nothing */#else  /* release mode */#define FT_Assert( condition )          while ( 0 ) { }     /* nothing */#define FT_TRACE( level, varformat )    while ( 0 ) { }     /* nothing */#define FT_ERROR( varformat )           while ( 0 ) { }     /* nothing */#endif /* FT_DEBUG_LEVEL_TRACE, FT_DEBUG_LEVEL_ERROR */  /*************************************************************************/  /*                                                                       */  /* Define macros and functions that are common to the debug and trace    */  /* modes.                                                                */  /*                                                                       */  /* You need vprintf() to be able to compile ftdebug.c.                   */  /*                                                                       */  /*************************************************************************/#if defined( FT_DEBUG_LEVEL_TRACE ) || defined( FT_DEBUG_LEVEL_ERROR )#include "stdio.h"  /* for vprintf() */#define FT_Assert( condition )                                      \          do                                                        \          {                                                         \            if ( !( condition ) )                                   \              FT_Panic( "assertion failed on line %d of file %s\n", \                        __LINE__, __FILE__ );                       \          } while ( 0 )  /* print a message */  extern void  FT_Message( const char*  fmt, ... );  /* print a message and exit */  extern void  FT_Panic  ( const char*  fmt, ... );#define FT_ERROR( varformat )  FT_Message##varformat#endif /* FT_DEBUG_LEVEL_TRACE || FT_DEBUG_LEVEL_ERROR *//* you need two opening resp. closing parentheses!   Example: FT_TRACE0(( "Value is %i", foo ))      */#define FT_TRACE0( varformat )  FT_TRACE( 0, varformat )#define FT_TRACE1( varformat )  FT_TRACE( 1, varformat )#define FT_TRACE2( varformat )  FT_TRACE( 2, varformat )#define FT_TRACE3( varformat )  FT_TRACE( 3, varformat )#define FT_TRACE4( varformat )  FT_TRACE( 4, varformat )#define FT_TRACE5( varformat )  FT_TRACE( 5, varformat )#define FT_TRACE6( varformat )  FT_TRACE( 6, varformat )#define FT_TRACE7( varformat )  FT_TRACE( 7, varformat )#ifdef __cplusplus  }#endif#endif /* FTDEBUG_H *//* END */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -