From 38aca5bc750b0679dd7f2b7bb5e5a0b6f983dd8b Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Fri, 26 Sep 2025 21:43:58 +0800 Subject: Organize platform graphics demo. --- demos/platform/graphics/Base.cpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 demos/platform/graphics/Base.cpp (limited to 'demos/platform/graphics/Base.cpp') diff --git a/demos/platform/graphics/Base.cpp b/demos/platform/graphics/Base.cpp new file mode 100644 index 00000000..be39f7e0 --- /dev/null +++ b/demos/platform/graphics/Base.cpp @@ -0,0 +1,37 @@ +#include "Base.h" +#include +#include +#include +#include +#include + +CruPlatformGraphicsDemo::CruPlatformGraphicsDemo(std::string file_name, + int width, int height) + : file_name_(std::move(file_name)) { + factory_.reset(cru::platform::bootstrap::CreateGraphicsFactory()); + image_ = factory_->GetImageFactory()->CreateBitmap(width, height); + painter_ = image_->CreatePainter(); +} + +CruPlatformGraphicsDemo::~CruPlatformGraphicsDemo() { + painter_->EndDraw(); + + cru::io::CFileStream file_stream(file_name_.c_str(), "wb"); + + factory_->GetImageFactory()->EncodeToStream( + image_.get(), &file_stream, cru::platform::graphics::ImageFormat::Png, + 1.0f); +} + +cru::platform::graphics::IGraphicsFactory* +CruPlatformGraphicsDemo::GetFactory() { + return factory_.get(); +} + +cru::platform::graphics::IImage* CruPlatformGraphicsDemo::GetImage() { + return image_.get(); +} + +cru::platform::graphics::IPainter* CruPlatformGraphicsDemo::GetPainter() { + return painter_.get(); +} -- cgit v1.2.3