aboutsummaryrefslogtreecommitdiff
path: root/src/platform/bootstrap/GraphicsBootstrap.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/platform/bootstrap/GraphicsBootstrap.cpp')
-rw-r--r--src/platform/bootstrap/GraphicsBootstrap.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/platform/bootstrap/GraphicsBootstrap.cpp b/src/platform/bootstrap/GraphicsBootstrap.cpp
new file mode 100644
index 00000000..cce42af8
--- /dev/null
+++ b/src/platform/bootstrap/GraphicsBootstrap.cpp
@@ -0,0 +1,25 @@
+#include "cru/platform/bootstrap/GraphicsBootstrap.h"
+
+#if defined(_WIN32)
+#include "cru/platform/graphics/direct2d/Factory.h"
+#elif defined(__APPLE__)
+#include "cru/platform/graphics/quartz/Factory.h"
+#elif defined(__unix)
+#include "cru/platform/graphics/cairo/CairoGraphicsFactory.h"
+#else
+#endif
+
+namespace cru::platform::bootstrap {
+CRU_PLATFORM_GRAPHICS_BOOTSTRAP_API cru::platform::graphics::IGraphicsFactory*
+CreateGraphicsFactory() {
+#if defined(_WIN32)
+ return new cru::platform::graphics::direct2d::DirectGraphicsFactory();
+#elif defined(__APPLE__)
+ return new cru::platform::graphics::quartz::QuartzGraphicsFactory();
+#elif defined(__unix)
+ return new cru::platform::graphics::cairo::CairoGraphicsFactory();
+#else
+ NotImplemented();
+#endif
+}
+} // namespace cru::platform::bootstrap