diff options
Diffstat (limited to 'demos/Graphics/DrawCircle/DrawCircle.cpp')
-rw-r--r-- | demos/Graphics/DrawCircle/DrawCircle.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/demos/Graphics/DrawCircle/DrawCircle.cpp b/demos/Graphics/DrawCircle/DrawCircle.cpp new file mode 100644 index 00000000..aa73d44c --- /dev/null +++ b/demos/Graphics/DrawCircle/DrawCircle.cpp @@ -0,0 +1,29 @@ +#include "cru/common/io/CFileStream.h" +#include "cru/platform/Color.h" +#include "cru/platform/graphics/Factory.h" +#include "cru/platform/graphics/ImageFactory.h" +#include "cru/platform/graphics/Painter.h" + +#include <memory> + +namespace cru::demos::graphics { + void DrawCircle(platform::graphics::IGraphicsFactory* graphics_factory) { + + auto image = graphics_factory->GetImageFactory()->CreateBitmap(500, 500); + + { + auto brush = + graphics_factory->CreateSolidColorBrush(cru::platform::colors::skyblue); + auto painter = image->CreatePainter(); + painter->FillEllipse(cru::platform::Rect{200, 200, 100, 100}, brush.get()); + painter->EndDraw(); + } + + cru::io::CFileStream file_stream("./test_image.png", "w"); + + graphics_factory->GetImageFactory()->EncodeToStream( + image.get(), &file_stream, cru::platform::graphics::ImageFormat::Png, + 1.0f); + } +} + |