Make console to Windows debug output controlled by CVAR

DebugView can be used to view output without debugger attached
This commit is contained in:
alexey.lysiuk 2015-09-23 10:18:57 +03:00
parent c743b19e6d
commit 37dde2e77d

View file

@ -137,6 +137,7 @@ extern bool ConWindowHidden;
// PUBLIC DATA DEFINITIONS ------------------------------------------------- // PUBLIC DATA DEFINITIONS -------------------------------------------------
CVAR (String, queryiwad_key, "shift", CVAR_GLOBALCONFIG|CVAR_ARCHIVE); CVAR (String, queryiwad_key, "shift", CVAR_GLOBALCONFIG|CVAR_ARCHIVE);
CVAR (Bool, con_debugoutput, false, 0);
double PerfToSec, PerfToMillisec; double PerfToSec, PerfToMillisec;
UINT TimerPeriod; UINT TimerPeriod;
@ -1053,29 +1054,30 @@ static TArray<FString> bufferedConsoleStuff;
void I_PrintStr(const char *cp) void I_PrintStr(const char *cp)
{ {
#ifdef _DEBUG if (con_debugoutput)
// Strip out any color escape sequences before writing to debug output
char * copy = new char[strlen(cp)+1];
const char * srcp = cp;
char * dstp = copy;
while (*srcp != 0)
{ {
if (*srcp!=0x1c && *srcp!=0x1d && *srcp!=0x1e && *srcp!=0x1f) // Strip out any color escape sequences before writing to debug output
{ char * copy = new char[strlen(cp)+1];
*dstp++=*srcp++; const char * srcp = cp;
} char * dstp = copy;
else
{
if (srcp[1]!=0) srcp+=2;
else break;
}
}
*dstp=0;
OutputDebugStringA(copy); while (*srcp != 0)
delete [] copy; {
#endif // _DEBUG if (*srcp!=0x1c && *srcp!=0x1d && *srcp!=0x1e && *srcp!=0x1f)
{
*dstp++=*srcp++;
}
else
{
if (srcp[1]!=0) srcp+=2;
else break;
}
}
*dstp=0;
OutputDebugStringA(copy);
delete [] copy;
}
if (ConWindowHidden) if (ConWindowHidden)
{ {