diff options
Diffstat (limited to 'backends/platform/sdl')
| -rw-r--r-- | backends/platform/sdl/sdl.cpp | 24 | ||||
| -rw-r--r-- | backends/platform/sdl/sdl.h | 3 | 
2 files changed, 27 insertions, 0 deletions
diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp index 2e3819f6f5..8a139e5c1b 100644 --- a/backends/platform/sdl/sdl.cpp +++ b/backends/platform/sdl/sdl.cpp @@ -562,6 +562,30 @@ void OSystem_SDL::quit() {  #endif  } +void OSystem_SDL::logMessage(LogMessageType::Type type, const char *message) { +	BaseBackend::logMessage(type, message); + +#if defined( USE_WINDBG ) +#if defined( _WIN32_WCE ) +	TCHAR buf_unicode[1024]; +	MultiByteToWideChar(CP_ACP, 0, message, strlen(message) + 1, buf_unicode, sizeof(buf_unicode)); +	OutputDebugString(buf_unicode); + +	if (type == LogMessageType::kError) { +#ifndef DEBUG +		drawError(message); +#else +		int cmon_break_into_the_debugger_if_you_please = *(int *)(message + 1);	// bus error +		printf("%d", cmon_break_into_the_debugger_if_you_please);			// don't optimize the int out +#endif +	} + +#else +	OutputDebugString(message); +#endif +#endif +} +  void OSystem_SDL::setupIcon() {  	int x, y, w, h, ncols, nbytes, i;  	unsigned int rgba[256]; diff --git a/backends/platform/sdl/sdl.h b/backends/platform/sdl/sdl.h index b701824517..328bb03426 100644 --- a/backends/platform/sdl/sdl.h +++ b/backends/platform/sdl/sdl.h @@ -191,6 +191,9 @@ public:  	// Quit  	virtual void quit(); // overloaded by CE backend +	// Logging +	virtual void logMessage(LogMessageType::Type type, const char *message); +  	void deinit();  	virtual void getTimeAndDate(TimeDate &t) const;  | 
