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
1 changed files with 23 additions and 21 deletions

View File

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