diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-09-23 23:23:38 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-09-23 23:23:38 +0800 |
commit | f76b47291ac164ec0169f721dab5b1b0fe016322 (patch) | |
tree | 74a4bdaf8fa977942de92eb7019be666802130ef /demos/platform/graphics/DrawCircle.cpp | |
parent | fcd9eff000a967e16a0a987609210fba4a92dd0c (diff) | |
download | cru-f76b47291ac164ec0169f721dab5b1b0fe016322.tar.gz cru-f76b47291ac164ec0169f721dab5b1b0fe016322.tar.bz2 cru-f76b47291ac164ec0169f721dab5b1b0fe016322.zip |
Organize platform demo.
Diffstat (limited to 'demos/platform/graphics/DrawCircle.cpp')
-rw-r--r-- | demos/platform/graphics/DrawCircle.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/demos/platform/graphics/DrawCircle.cpp b/demos/platform/graphics/DrawCircle.cpp new file mode 100644 index 00000000..d3246527 --- /dev/null +++ b/demos/platform/graphics/DrawCircle.cpp @@ -0,0 +1,31 @@ +#include "cru/base/io/CFileStream.h" +#include "cru/platform/Color.h" +#include "cru/platform/bootstrap/GraphicsBootstrap.h" +#include "cru/platform/graphics/Factory.h" +#include "cru/platform/graphics/ImageFactory.h" +#include "cru/platform/graphics/Painter.h" + +#include <memory> + +int main() { + std::unique_ptr<cru::platform::graphics::IGraphicsFactory> graphics_factory( + cru::platform::bootstrap::CreateGraphicsFactory()); + + 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("draw-circle-demo.png", "wb"); + + graphics_factory->GetImageFactory()->EncodeToStream( + image.get(), &file_stream, cru::platform::graphics::ImageFormat::Png, + 1.0f); + + return 0; +} |