瀏覽代碼

Add Emscripten support to core library

Michael Ragazzon 3 年之前
父節點
當前提交
5af6006961
共有 3 個文件被更改,包括 14 次插入2 次删除
  1. 3 1
      Include/RmlUi/Core/Debug.h
  2. 4 0
      Include/RmlUi/Core/Platform.h
  3. 7 1
      Source/Core/SystemInterface.cpp

+ 3 - 1
Include/RmlUi/Core/Debug.h

@@ -47,7 +47,9 @@
 		#define RMLUI_BREAK
 		#define RMLUI_BREAK
 	#endif
 	#endif
 #elif defined (RMLUI_PLATFORM_MACOSX)
 #elif defined (RMLUI_PLATFORM_MACOSX)
-	#define RMLUI_BREAK {__builtin_trap();} // namespace Rml
+	#define RMLUI_BREAK {__builtin_trap();}
+#else
+	#define RMLUI_BREAK
 #endif
 #endif
 
 
 
 

+ 4 - 0
Include/RmlUi/Core/Platform.h

@@ -36,6 +36,10 @@
 	#define RMLUI_PLATFORM_UNIX
 	#define RMLUI_PLATFORM_UNIX
 	#define RMLUI_PLATFORM_MACOSX
 	#define RMLUI_PLATFORM_MACOSX
 	#define RMLUI_PLATFORM_NAME "macosx"
 	#define RMLUI_PLATFORM_NAME "macosx"
+#elif defined __EMSCRIPTEN__
+	#define RMLUI_PLATFORM_UNIX
+	#define RMLUI_PLATFORM_EMSCRIPTEN
+	#define RMLUI_PLATFORM_NAME "emscripten"
 #else
 #else
 	#define RMLUI_PLATFORM_UNIX
 	#define RMLUI_PLATFORM_UNIX
 	#define RMLUI_PLATFORM_LINUX
 	#define RMLUI_PLATFORM_LINUX

+ 7 - 1
Source/Core/SystemInterface.cpp

@@ -33,6 +33,8 @@
 
 
 #ifdef RMLUI_PLATFORM_WIN32
 #ifdef RMLUI_PLATFORM_WIN32
 #include <windows.h>
 #include <windows.h>
+#else
+#include <stdio.h>
 #endif
 #endif
 
 
 namespace Rml {
 namespace Rml {
@@ -70,7 +72,11 @@ bool SystemInterface::LogMessage(Log::Type logtype, const String& message)
 #else
 #else
 bool SystemInterface::LogMessage(Log::Type /*logtype*/, const String& message)
 bool SystemInterface::LogMessage(Log::Type /*logtype*/, const String& message)
 {
 {
-	fprintf(stderr,"%s\n", message.c_str());
+#ifdef RMLUI_PLATFORM_EMSCRIPTEN
+	puts(message.c_str());
+#else
+	fprintf(stderr, "%s\n", message.c_str());
+#endif
 	return true;
 	return true;
 }
 }
 #endif	
 #endif