Refactoring

This commit is contained in:
Isaac 2024-05-18 21:27:05 +04:00
parent 7f88fb6ffa
commit 4f506dd476
5 changed files with 11 additions and 0 deletions

View File

@ -67,6 +67,7 @@ public:
virtual void setAlpha(float alpha) = 0;
virtual void concatenate(lottie::CATransform3D const &transform) = 0;
virtual lottie::CATransform3D currentTransform() = 0;
virtual void draw(std::shared_ptr<Canvas> const &other, lottie::CGRect const &rect) = 0;
};

View File

@ -41,6 +41,7 @@ public:
virtual void setBlendMode(BlendMode blendMode) override;
virtual void setAlpha(float alpha) override;
virtual void concatenate(lottie::CATransform3D const &transform) override;
virtual lottie::CATransform3D currentTransform() override;
virtual std::shared_ptr<Image> makeImage() const;
virtual void draw(std::shared_ptr<Canvas> const &other, lottie::CGRect const &rect) override;

View File

@ -467,6 +467,10 @@ void CanvasImpl::concatenate(lottie::CATransform3D const &transform) {
CGContextConcatCTM(_context, CATransform3DGetAffineTransform(nativeTransform(transform)));
}
lottie::CATransform3D CanvasImpl::currentTransform() {
return lottie::fromNativeTransform(CATransform3DMakeAffineTransform(CGContextGetCTM(_context)));
}
std::shared_ptr<Image> CanvasImpl::makeImage() const {
::CGImageRef nativeImage = CGBitmapContextCreateImage(_context);
if (nativeImage) {

View File

@ -33,6 +33,7 @@ public:
virtual void setAlpha(float alpha) override;
virtual void concatenate(lottie::CATransform3D const &transform) override;
virtual lottie::CATransform3D currentTransform() override;
virtual void draw(std::shared_ptr<Canvas> const &other, lottie::CGRect const &rect) override;

View File

@ -271,6 +271,10 @@ void ThorVGCanvasImpl::concatenate(lottie::CATransform3D const &transform) {
));*/
}
lottie::CATransform3D ThorVGCanvasImpl::currentTransform() {
return _transform;
}
void ThorVGCanvasImpl::draw(std::shared_ptr<Canvas> const &other, lottie::CGRect const &rect) {
/*ThorVGCanvasImpl *impl = (ThorVGCanvasImpl *)other.get();
auto image = impl->surface()->makeImageSnapshot();