-
Notifications
You must be signed in to change notification settings - Fork 0
/
debugproc.cpp
111 lines (92 loc) · 2.84 KB
/
debugproc.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
//=============================================================================
//
// デバッグ表示処理 [debugproc.cpp]
// Author :
//
//=============================================================================
#include <stdio.h>
#include "debugproc.h"
#include "renderer.h"
//*****************************************************************************
// マクロ定義
//*****************************************************************************
//*****************************************************************************
// プロトタイプ宣言
//*****************************************************************************
//*****************************************************************************
// グローバル変数
//*****************************************************************************
char g_aStrDebug[1024] = {"\0"}; // デバッグ情報
//=============================================================================
// デバッグ表示処理の描画処理
//=============================================================================
void DrawDebugProc(void)
{
RECT rect = {0, 0, SCREEN_WIDTH, SCREEN_HEIGHT};
DebugTextOut(g_aStrDebug, 0, 0);
// 情報クリア
memset(g_aStrDebug, 0, sizeof g_aStrDebug);
}
//=============================================================================
// デバッグ表示の登録
//=============================================================================
void PrintDebugProc(char *fmt,...)
{
#if 0
long *pParam;
static char aBuf[256];
pParam = (long*)&fmt;
sprintf(aBuf, fmt, pParam[1], pParam[2], pParam[3], pParam[4],
pParam[5], pParam[6], pParam[7], pParam[8],
pParam[9], pParam[10], pParam[11], pParam[12]);
#else
va_list list; // 可変引数を処理する為に使用する変数
char *pCur;
char aBuf[256]={"\0"};
char aWk[32];
// 可変引数にアクセスする前の初期処理
va_start(list, fmt);
pCur = fmt;
for( ; *pCur; ++pCur)
{
if(*pCur != '%')
{
sprintf_s(aWk, "%c", *pCur);
}
else
{
pCur++;
switch(*pCur)
{
case 'd':
// 可変引数にアクセスしてその変数を取り出す処理
sprintf_s(aWk, "%d", va_arg(list, int));
break;
case 'f':
// 可変引数にアクセスしてその変数を取り出す処理
sprintf_s(aWk, "%.2f", va_arg(list, double)); // double型で指定
break;
case 's':
// 可変引数にアクセスしてその変数を取り出す処理
sprintf_s(aWk, "%s", va_arg(list, char*));
break;
case 'c':
// 可変引数にアクセスしてその変数を取り出す処理
sprintf_s(aWk, "%c", va_arg(list, char));
break;
default:
sprintf_s(aWk, "%c", *pCur);
break;
}
}
strcat_s(aBuf, aWk);
}
// 可変引数にアクセスした後の終了処理
va_end(list);
// 連結
if((strlen(g_aStrDebug) + strlen(aBuf)) < ((sizeof g_aStrDebug) - 1))
{
strcat_s(g_aStrDebug, aBuf);
}
#endif
}