1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 06:04:49 +01:00
cnc-ddraw/inc/debug.h

91 lines
2.2 KiB
C
Raw Normal View History

2020-10-13 09:20:52 +02:00
#ifndef DEBUG_H
#define DEBUG_H
2017-11-26 08:49:30 +01:00
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
2024-06-22 01:19:25 +02:00
#include <intrin.h>
2017-11-26 08:49:30 +01:00
2024-03-03 02:53:07 +01:00
LONG WINAPI dbg_exception_handler(EXCEPTION_POINTERS* exception);
2020-10-13 09:20:52 +02:00
void dbg_counter_start();
double dbg_counter_stop();
2021-06-11 20:30:43 +02:00
void dbg_debug_string(const char* format, ...);
2022-09-29 13:44:25 +02:00
void dbg_print_rect(char* info, LPRECT rect);
2020-10-13 09:20:52 +02:00
void dbg_draw_frame_info_start();
void dbg_draw_frame_info_end();
2023-09-14 22:12:10 +02:00
void dbg_printf(const char* fmt, ...);
2020-10-13 09:20:52 +02:00
void dbg_init();
2024-05-24 22:16:32 +02:00
void dbg_dump_wnd_styles(DWORD style, DWORD exstyle);
2023-08-17 13:42:26 +02:00
void dbg_dump_swp_flags(DWORD flags);
2022-09-30 14:27:41 +02:00
void dbg_dump_ddp_flags(DWORD flags);
2022-09-30 14:16:30 +02:00
void dbg_dump_scl_flags(DWORD flags);
void dbg_dump_edm_flags(DWORD flags);
void dbg_dump_dds_flip_flags(DWORD flags);
2020-10-13 09:20:52 +02:00
void dbg_dump_dds_blt_flags(DWORD flags);
2021-06-11 20:30:43 +02:00
void dbg_dump_dds_blt_fx_flags(DWORD flags);
2020-10-13 09:20:52 +02:00
void dbg_dump_dds_caps(DWORD caps);
void dbg_dump_dds_flags(DWORD flags);
void dbg_dump_dds_blt_fast_flags(DWORD flags);
void dbg_dump_dds_lock_flags(DWORD flags);
2021-02-18 05:00:35 +01:00
char* dbg_mes_to_str(int id);
2020-10-13 09:20:52 +02:00
2024-08-31 08:09:51 +02:00
__declspec(noreturn) void __cdecl dbg_invoke_watson(
_In_opt_z_ wchar_t const*,
_In_opt_z_ wchar_t const*,
_In_opt_z_ wchar_t const*,
_In_ unsigned int,
_In_ uintptr_t);
2020-10-13 09:20:52 +02:00
extern double g_dbg_frame_time;
extern DWORD g_dbg_frame_count;
extern LPTOP_LEVEL_EXCEPTION_FILTER g_dbg_exception_filter;
2017-11-26 08:49:30 +01:00
2024-06-22 01:19:25 +02:00
#if defined(__GNUC__) /* wrap msvc intrinsics onto gcc builtins */
#undef _ReturnAddress
#undef _AddressOfReturnAddress
#define _ReturnAddress() __builtin_return_address(0)
#define _AddressOfReturnAddress() __builtin_frame_address (0)
#else
#pragma intrinsic(_ReturnAddress)
#endif /* __GNUC__ */
2023-09-06 20:06:26 +02:00
//#define _DEBUG 1
2017-11-26 08:49:30 +01:00
2021-06-11 20:30:43 +02:00
/* use OutputDebugStringA rather than printf */
2020-10-13 10:15:42 +02:00
//#define _DEBUG_S 1
2017-11-26 08:49:30 +01:00
2021-06-11 20:30:43 +02:00
/* log everything (slow) */
2017-11-26 09:09:38 +01:00
//#define _DEBUG_X 1
2017-11-26 08:49:30 +01:00
2020-10-13 09:20:52 +02:00
2017-11-26 08:49:30 +01:00
#ifdef _DEBUG
2017-11-26 09:09:38 +01:00
#ifdef _DEBUG_S
2020-10-13 09:20:52 +02:00
2021-06-11 20:30:43 +02:00
#define TRACE(format, ...) dbg_debug_string("xDBG " format, ##__VA_ARGS__)
2020-10-13 09:20:52 +02:00
#ifdef _DEBUG_X
2021-06-11 20:30:43 +02:00
#define TRACE_EXT(format, ...) dbg_debug_string("xDBG " format, ##__VA_ARGS__)
2019-04-14 07:28:06 +02:00
#else
2021-06-11 20:30:43 +02:00
#define TRACE_EXT(format, ...)
2020-10-13 09:20:52 +02:00
#endif
#else
2021-06-11 20:30:43 +02:00
#define TRACE(format, ...) dbg_printf(format, ##__VA_ARGS__)
2020-10-13 09:20:52 +02:00
#ifdef _DEBUG_X
2021-06-11 20:30:43 +02:00
#define TRACE_EXT(format, ...) dbg_printf(format, ##__VA_ARGS__)
2020-10-13 09:20:52 +02:00
#else
2021-06-11 20:30:43 +02:00
#define TRACE_EXT(format, ...)
2020-10-13 09:20:52 +02:00
#endif
2017-11-26 08:49:30 +01:00
#endif
#else
2021-06-11 20:30:43 +02:00
#define TRACE(format, ...)
#define TRACE_EXT(format, ...)
2020-10-13 09:20:52 +02:00
#endif
2021-06-11 20:30:43 +02:00
2020-10-13 09:20:52 +02:00
#endif