aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/sdl
diff options
context:
space:
mode:
Diffstat (limited to 'backends/platform/sdl')
-rw-r--r--backends/platform/sdl/sdl.cpp24
-rw-r--r--backends/platform/sdl/sdl.h3
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;