MCPcopy Create free account
hub / github.com/Tencent/libpag / GetImageMaxScale

Function GetImageMaxScale

exporter/src/export/PAGExport.cpp:95–122  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

93}
94
95static pag::Point GetImageMaxScale(pag::Composition* composition, pag::ID imageID) {
96 if (composition->type() != pag::CompositionType::Vector) {
97 return pag::Point::Zero();
98 }
99
100 pag::Point maxFactor = pag::Point::Zero();
101 for (auto layer : static_cast<pag::VectorComposition*>(composition)->layers) {
102 pag::Point factor = pag::Point::Make(1.0f, 1.0f);
103
104 if (layer->type() != pag::LayerType::Image) {
105 continue;
106 }
107 if (static_cast<pag::ImageLayer*>(layer)->imageBytes->id != imageID) {
108 continue;
109 }
110 if (layer->type() == pag::LayerType::PreCompose) {
111 factor = GetImageMaxScale(static_cast<pag::PreComposeLayer*>(layer)->composition, imageID);
112 }
113
114 auto layerFactor = layer->getMaxScaleFactor();
115 factor.x *= layerFactor.x;
116 factor.y *= layerFactor.y;
117 maxFactor.x = std::max(maxFactor.x, factor.x);
118 maxFactor.y = std::max(maxFactor.y, factor.y);
119 }
120
121 return maxFactor;
122}
123
124static pag::Point GetBitmapCompositionMaxScale(pag::Composition* composition,
125 pag::ID compositionID) {

Callers 1

exportRescaleImagesMethod · 0.85

Calls 3

MakeFunction · 0.50
typeMethod · 0.45
getMaxScaleFactorMethod · 0.45

Tested by

no test coverage detected