aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2023-10-06 19:29:07 +0800
committercrupest <crupest@outlook.com>2023-10-06 19:29:07 +0800
commitded4428d7286925db1f5ab9f18f549c85033839d (patch)
tree68e8e8acbd5e5dbc19bd503f4df7c93b66ee7001
parent301b74c63deab5f09cc09d4edc07e0c86faa7cfa (diff)
downloadcru-ded4428d7286925db1f5ab9f18f549c85033839d.tar.gz
cru-ded4428d7286925db1f5ab9f18f549c85033839d.tar.bz2
cru-ded4428d7286925db1f5ab9f18f549c85033839d.zip
Init web canvas.
-rw-r--r--include/cru/platform/Resource.h2
-rw-r--r--include/cru/platform/graphics/web_canvas/WebCanvasGraphicsFactory.h8
-rw-r--r--include/cru/platform/graphics/web_canvas/WebCanvasResource.h21
-rw-r--r--src/platform/CMakeLists.txt3
-rw-r--r--src/platform/graphics/web_canvas/CMakeLists.txt7
-rw-r--r--src/platform/graphics/web_canvas/Factory.cpp0
-rw-r--r--src/platform/graphics/web_canvas/Resource.cpp12
-rw-r--r--src/platform/web/CMakeLists.txt6
-rw-r--r--src/platform/web/Resource.cpp0
9 files changed, 57 insertions, 2 deletions
diff --git a/include/cru/platform/Resource.h b/include/cru/platform/Resource.h
index fe95ebb3..ba3c5617 100644
--- a/include/cru/platform/Resource.h
+++ b/include/cru/platform/Resource.h
@@ -4,8 +4,6 @@
#include "cru/common/Base.h"
#include "cru/common/String.h"
-#include <string_view>
-
namespace cru::platform {
struct CRU_PLATFORM_API IPlatformResource : virtual Interface {
CRU_DEFAULT_CONSTRUCTOR_DESTRUCTOR(IPlatformResource)
diff --git a/include/cru/platform/graphics/web_canvas/WebCanvasGraphicsFactory.h b/include/cru/platform/graphics/web_canvas/WebCanvasGraphicsFactory.h
new file mode 100644
index 00000000..ce141c43
--- /dev/null
+++ b/include/cru/platform/graphics/web_canvas/WebCanvasGraphicsFactory.h
@@ -0,0 +1,8 @@
+#pragma once
+
+namespace cru::platform::graphics::web_canvas {
+class WebCanvasGraphicsFactory {
+
+};
+}
+
diff --git a/include/cru/platform/graphics/web_canvas/WebCanvasResource.h b/include/cru/platform/graphics/web_canvas/WebCanvasResource.h
new file mode 100644
index 00000000..de3e38ac
--- /dev/null
+++ b/include/cru/platform/graphics/web_canvas/WebCanvasResource.h
@@ -0,0 +1,21 @@
+#pragma once
+
+#include "cru/common/Base.h"
+#include "cru/platform/Resource.h"
+
+namespace cru::platform::graphics::web_canvas {
+class WebCanvasResource : public Object, public virtual IPlatformResource {
+ public:
+ static const String kPlatformId;
+
+ WebCanvasResource();
+
+ CRU_DELETE_COPY(WebCanvasResource)
+ CRU_DELETE_MOVE(WebCanvasResource)
+
+ ~WebCanvasResource() override;
+
+ public:
+ String GetPlatformId() const override;
+};
+} // namespace cru::platform::graphics::web_canvas
diff --git a/src/platform/CMakeLists.txt b/src/platform/CMakeLists.txt
index 22c9faa3..204660a4 100644
--- a/src/platform/CMakeLists.txt
+++ b/src/platform/CMakeLists.txt
@@ -17,6 +17,9 @@ elseif (APPLE)
add_subdirectory(osx)
add_subdirectory(graphics/quartz)
add_subdirectory(gui/osx)
+elseif (EMSCRIPTEN)
+ add_subdirectory(web)
+ add_subdirectory(graphics/web_canvas)
endif()
add_subdirectory(bootstrap)
diff --git a/src/platform/graphics/web_canvas/CMakeLists.txt b/src/platform/graphics/web_canvas/CMakeLists.txt
new file mode 100644
index 00000000..0227adb7
--- /dev/null
+++ b/src/platform/graphics/web_canvas/CMakeLists.txt
@@ -0,0 +1,7 @@
+add_library(CruPlatformGraphicsWebCanvas
+ Factory.cpp
+ Resource.cpp
+)
+
+target_link_libraries(CruPlatformGraphicsWebCanvas PUBLIC CruPlatformBaseWeb CruPlatformGraphics)
+
diff --git a/src/platform/graphics/web_canvas/Factory.cpp b/src/platform/graphics/web_canvas/Factory.cpp
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/src/platform/graphics/web_canvas/Factory.cpp
diff --git a/src/platform/graphics/web_canvas/Resource.cpp b/src/platform/graphics/web_canvas/Resource.cpp
new file mode 100644
index 00000000..bb54fd06
--- /dev/null
+++ b/src/platform/graphics/web_canvas/Resource.cpp
@@ -0,0 +1,12 @@
+#include "cru/platform/graphics/web_canvas/WebCanvasResource.h"
+
+namespace cru::platform::graphics::web_canvas {
+const String WebCanvasResource::kPlatformId = u"WebCanvas";
+
+WebCanvasResource::WebCanvasResource() {}
+
+WebCanvasResource::~WebCanvasResource() {}
+
+String WebCanvasResource::GetPlatformId() const { return kPlatformId; }
+
+} // namespace cru::platform::graphics::web_canvas
diff --git a/src/platform/web/CMakeLists.txt b/src/platform/web/CMakeLists.txt
new file mode 100644
index 00000000..76817dfa
--- /dev/null
+++ b/src/platform/web/CMakeLists.txt
@@ -0,0 +1,6 @@
+add_library(CruPlatformBaseWeb
+ Resource.cpp
+)
+
+target_link_libraries(CruPlatformBaseWeb PUBLIC CruPlatformBase)
+
diff --git a/src/platform/web/Resource.cpp b/src/platform/web/Resource.cpp
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/src/platform/web/Resource.cpp