home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / graphics / directx / pplane / debug.h < prev    next >
C/C++ Source or Header  |  1997-07-14  |  3KB  |  129 lines

  1. #ifndef DEBUG_H
  2. #define DEBUG_H
  3. /*
  4. **-----------------------------------------------------------------------------
  5. **  File:       Debug.h
  6. **  Purpose:    Sample Debug code
  7. **  Notes:
  8. **
  9. **  Copyright (c) 1995 - 1997 by Microsoft, all rights reserved
  10. **-----------------------------------------------------------------------------
  11. */
  12.  
  13. /*
  14. **-----------------------------------------------------------------------------
  15. **  Include files
  16. **-----------------------------------------------------------------------------
  17. */
  18.  
  19. #include "Common.h"
  20.  
  21.  
  22.  
  23. /*
  24. **-----------------------------------------------------------------------------
  25. **  Defines
  26. **-----------------------------------------------------------------------------
  27. */
  28.  
  29. #ifdef DEBUG
  30. // Note:  Define DEBUG_PROMPT_ME if you want MessageBox Error prompting
  31. //          This can get annoying quickly...
  32. // #define DEBUG_PROMPT_ME
  33.  
  34.     // Pre and Post debug string info
  35.     #define START_STR    TEXT ("BOIDS: ")
  36.     #define END_STR        TEXT ("\r\n")
  37. #endif // DEBUG
  38.  
  39. // Debug Levels
  40. #define DEBUG_ALWAYS    0L
  41. #define DEBUG_CRITICAL    1L
  42. #define DEBUG_ERROR        2L
  43. #define DEBUG_MINOR        3L
  44. #define DEBUG_WARN        4L
  45. #define DEBUG_DETAILS    5L
  46.  
  47.  
  48. // Sample Errors
  49. #define APPERR_GENERIC            MAKE_DDHRESULT (10001)
  50. #define    APPERR_INVALIDPARAMS    MAKE_DDHRESULT (10002)
  51. #define APPERR_NOTINITIALIZED    MAKE_DDHRESULT (10003)
  52. #define APPERR_OUTOFMEMORY        MAKE_DDHRESULT (10004)
  53. #define APPERR_NOTFOUND            MAKE_DDHRESULT (10005)
  54.  
  55.  
  56.  
  57. /*
  58. **-----------------------------------------------------------------------------
  59. **  Macros
  60. **-----------------------------------------------------------------------------
  61. */
  62.  
  63. #ifdef DEBUG
  64.     #define DPF dprintf
  65.     #define ASSERT(x) \
  66.         if (! (x)) \
  67.         { \
  68.             DPF (DEBUG_ALWAYS, TEXT("Assertion violated: %s, File = %s, Line = #%ld\n"), \
  69.                  TEXT(#x), TEXT(__FILE__), (DWORD)__LINE__ ); \
  70.             abort (); \
  71.         }        
  72.  
  73.    #define REPORTERR(x) \
  74.        ReportDDError ((x), TEXT("File = %s, Line = #%ld\n"), \
  75.                       TEXT(__FILE__), (DWORD)__LINE__ );
  76.  
  77.    #define FATALERR(x) \
  78.        ReportDDError ((x), TEXT("File = %s, Line = #%ld\n"), \
  79.                       TEXT(__FILE__), (DWORD)__LINE__ ); \
  80.        OnPause (TRUE); \
  81.        DestroyWindow (g_hMainWindow);
  82. #else
  83.    #define REPORTERR(x)
  84.    #define DPF 1 ? (void)0 : (void)
  85.    #define ASSERT(x)
  86.    #define FATALERR(x) \
  87.        OnPause (TRUE); \
  88.        DestroyWindow (g_hMainWindow);
  89. #endif // DEBUG
  90.  
  91.  
  92.  
  93. /*
  94. **-----------------------------------------------------------------------------
  95. **  Global Variables
  96. **-----------------------------------------------------------------------------
  97. */
  98.  
  99. // Debug Variables
  100. #ifdef DEBUG
  101.     extern DWORD g_dwDebugLevel;
  102. #endif
  103.  
  104. extern BOOL  g_fDebug;
  105.  
  106.  
  107.  
  108. /*
  109. **-----------------------------------------------------------------------------
  110. **  Function Prototypes
  111. **-----------------------------------------------------------------------------
  112. */
  113.  
  114. // Debug Routines
  115. #ifdef DEBUG
  116.     void __cdecl dprintf (DWORD dwDebugLevel, LPCTSTR szFormat, ...);
  117. #endif //DEBUG
  118.  
  119. void _cdecl ReportDDError (HRESULT hResult, LPCTSTR szFormat, ...);
  120.  
  121. /*
  122. **-----------------------------------------------------------------------------
  123. **  End of File
  124. **-----------------------------------------------------------------------------
  125. */
  126. #endif // End DEBUG_H
  127.  
  128.  
  129.