aboutsummaryrefslogtreecommitdiff
path: root/src/platform
diff options
context:
space:
mode:
Diffstat (limited to 'src/platform')
-rw-r--r--src/platform/Color.cpp3
-rw-r--r--src/platform/graphics/CMakeLists.txt1
-rw-r--r--src/platform/graphics/Image.cpp15
3 files changed, 18 insertions, 1 deletions
diff --git a/src/platform/Color.cpp b/src/platform/Color.cpp
index dd1736ca..81709c6f 100644
--- a/src/platform/Color.cpp
+++ b/src/platform/Color.cpp
@@ -1,9 +1,10 @@
#include "cru/platform/Color.h"
+#include <gsl/gsl>
+
#include <algorithm>
#include <cmath>
#include <cstdint>
-#include <gsl/gsl>
#include <optional>
#include <stdexcept>
#include <string>
diff --git a/src/platform/graphics/CMakeLists.txt b/src/platform/graphics/CMakeLists.txt
index 1d983188..dc0a429e 100644
--- a/src/platform/graphics/CMakeLists.txt
+++ b/src/platform/graphics/CMakeLists.txt
@@ -1,6 +1,7 @@
add_library(cru_platform_graphics SHARED
ForDllExport.cpp
Geometry.cpp
+ Image.cpp
NullPainter.cpp
)
target_compile_definitions(cru_platform_graphics PRIVATE CRU_PLATFORM_GRAPHICS_EXPORT_API)
diff --git a/src/platform/graphics/Image.cpp b/src/platform/graphics/Image.cpp
new file mode 100644
index 00000000..2c787dd7
--- /dev/null
+++ b/src/platform/graphics/Image.cpp
@@ -0,0 +1,15 @@
+#include "cru/platform/graphics/Image.h"
+
+#include "cru/platform/graphics/Factory.h"
+#include "cru/platform/graphics/ImageFactory.h"
+#include "cru/platform/graphics/Painter.h"
+
+namespace cru::platform::graphics {
+std::unique_ptr<IImage> IImage::CloneToBitmap() {
+ auto image = GetGraphicsFactory()->GetImageFactory()->CreateBitmap(
+ GetWidth(), GetHeight());
+ auto painter = image->CreatePainter();
+ painter->DrawImage(Point{}, this);
+ return image;
+}
+} // namespace cru::platform::graphics