aboutsummaryrefslogtreecommitdiff
path: root/src/platform/graphics
diff options
context:
space:
mode:
Diffstat (limited to 'src/platform/graphics')
-rw-r--r--src/platform/graphics/CMakeLists.txt1
-rw-r--r--src/platform/graphics/Image.cpp15
2 files changed, 16 insertions, 0 deletions
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