106 lines
3.3 KiB
C
106 lines
3.3 KiB
C
|
/*==========================================================================
|
||
|
*
|
||
|
* Copyright (C) 1995 Microsoft Corporation. All Rights Reserved.
|
||
|
*
|
||
|
* File: dpf.h
|
||
|
* Content: header file for debug printf
|
||
|
*@@BEGIN_MSINTERNAL
|
||
|
* History:
|
||
|
* Date By Reason
|
||
|
* ==== == ======
|
||
|
* 06-apr-95 craige initial implementation
|
||
|
* 06-feb-96 colinmc added simple assertion mechanism for DirectDraw
|
||
|
* 15-apr-96 kipo added msinternal
|
||
|
*@@END_MSINTERNAL
|
||
|
*
|
||
|
***************************************************************************/
|
||
|
#ifndef __DPF_INCLUDED__
|
||
|
#define __DPF_INCLUDED__
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
#ifdef WINNT
|
||
|
#undef DEBUG
|
||
|
#ifdef DBG
|
||
|
#define DEBUG
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
extern void cdecl DXdprintf( UINT lvl, LPSTR szFormat, ...);
|
||
|
extern void cdecl D3DInfoPrintf( UINT lvl, LPSTR szFormat, ...);
|
||
|
extern void cdecl D3DWarnPrintf( UINT lvl, LPSTR szFormat, ...);
|
||
|
extern void cdecl D3DErrorPrintf( LPSTR szFormat, ...);
|
||
|
|
||
|
extern void DPFInit( void );
|
||
|
#ifdef DEBUG
|
||
|
#define DPF_DECLARE(szName) char * __pszDpfName=#szName":"
|
||
|
#define DPFINIT() DPFInit()
|
||
|
#define DPF DXdprintf
|
||
|
#define DPF_ERR(a) DXdprintf( 0, DPF_MODNAME ": " a );
|
||
|
extern HWND hWndListBox;
|
||
|
#if defined( _WIN32 ) && !defined(WINNT)
|
||
|
#define DEBUG_BREAK() _try { _asm { int 3 } } _except (EXCEPTION_EXECUTE_HANDLER) {;}
|
||
|
#else
|
||
|
#define DEBUG_BREAK() DebugBreak()
|
||
|
#endif
|
||
|
#define USE_DDASSERT
|
||
|
|
||
|
// New for D3D
|
||
|
#define D3D_ERR D3DErrorPrintf
|
||
|
#define D3D_WARN D3DWarnPrintf
|
||
|
#define D3D_INFO D3DInfoPrintf
|
||
|
#else
|
||
|
#pragma warning(disable:4002)
|
||
|
#define DPF_DECLARE(szName)
|
||
|
#define DPFINIT()
|
||
|
#define DPF()
|
||
|
#define DPF_ERR(a)
|
||
|
#define DEBUG_BREAK()
|
||
|
|
||
|
#define D3D_ERR(a)
|
||
|
#define D3D_WARN()
|
||
|
#define D3D_INFO()
|
||
|
#endif
|
||
|
|
||
|
#if defined(DEBUG) && defined(USE_DDASSERT)
|
||
|
|
||
|
extern void _DDAssert(LPCSTR szFile, int nLine, LPCSTR szCondition);
|
||
|
|
||
|
#define DDASSERT(condition) if (!(condition)) _DDAssert(__FILE__, __LINE__, #condition)
|
||
|
|
||
|
#else /* DEBUG && USE_DDASSERT */
|
||
|
|
||
|
#define DDASSERT(condition)
|
||
|
|
||
|
#endif /* DEBUG && USE_DDASSERT */
|
||
|
|
||
|
#ifdef _WIN32
|
||
|
|
||
|
#ifdef DEBUG
|
||
|
__inline DWORD clockrate() {LARGE_INTEGER li; QueryPerformanceFrequency(&li); return li.LowPart;}
|
||
|
__inline DWORD perf_clock() {LARGE_INTEGER li; QueryPerformanceCounter(&li); return li.LowPart;}
|
||
|
|
||
|
#define TIMEVAR(t) DWORD t ## T; DWORD t ## N
|
||
|
#define TIMEZERO(t) t ## T = 0, t ## N = 0
|
||
|
#define TIMESTART(t) t ## T -= perf_clock(), t ## N ++
|
||
|
#define TIMESTOP(t) t ## T += perf_clock()
|
||
|
#define TIMEFMT(t) ((DWORD)(t) / clockrate()), (((DWORD)(t) * 1000 / clockrate())%1000)
|
||
|
#define TIMEOUT(t) if (t ## N) DPF(1, #t ": %ld calls, %ld.%03ld sec (%ld.%03ld)", t ## N, TIMEFMT(t ## T), TIMEFMT(t ## T / t ## N))
|
||
|
#else
|
||
|
#define TIMEVAR(t)
|
||
|
#define TIMEZERO(t)
|
||
|
#define TIMESTART(t)
|
||
|
#define TIMESTOP(t)
|
||
|
#define TIMEFMT(t)
|
||
|
#define TIMEOUT(t)
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|