Lines Matching +full:- +full:o
2 * Copyright (c) 2020 - 2024 the ThorVG project. All rights reserved.
38 switch (paint->type()) { \
39 case Type::Shape: ret = P((Shape*)paint)->METHOD; break; \
40 case Type::Scene: ret = P((Scene*)paint)->METHOD; break; \
41 case Type::Picture: ret = P((Picture*)paint)->METHOD; break; \
42 case Type::Text: ret = P((Text*)paint)->METHOD; break; \
72 renderer->viewport({0, 0, 0, 0}); in _clipRect()
86 auto ptsCnt = shape->pathCoords(&pts); in _compFastTrack()
92 auto& rm = P(cmpTarget)->transform(); in _compFastTrack()
108 …if ((tvg::equal(pt1->x, pt2->x) && tvg::equal(pt2->y, pt3->y) && tvg::equal(pt3->x, pt4->x) && tvg… in _compFastTrack()
109 …(tvg::equal(pt2->x, pt3->x) && tvg::equal(pt1->y, pt2->y) && tvg::equal(pt1->x, pt4->x) && tvg::eq… in _compFastTrack()
126 after.w = static_cast<int32_t>(ceil(v2.x - after.x)); in _compFastTrack()
127 after.h = static_cast<int32_t>(ceil(v2.y - after.y)); in _compFastTrack()
133 renderer->viewport(after); in _compFastTrack()
159 if (ret) ret->composite(nullptr, CompositeMethod::None); in duplicate()
164 ret->pImpl->tr = tr; in duplicate()
165 ret->pImpl->renderFlag |= RenderUpdateFlag::Transform; in duplicate()
167 ret->pImpl->opacity = opacity; in duplicate()
169 if (compData) ret->pImpl->composite(ret, compData->target->duplicate(), compData->method); in duplicate()
170 if (clipper) ret->pImpl->clip(clipper->duplicate()); in duplicate()
216 if (compData && !(compData->target->pImpl->ctxFlag & ContextFlag::FastTrack)) { in render()
220 … if (MASK_REGION_MERGING(compData->method)) region.add(P(compData->target)->bounds(renderer)); in render()
222 cmp = renderer->target(region, COMPOSITE_TO_COLORSPACE(renderer, compData->method)); in render()
223 if (renderer->beginComposite(cmp, CompositeMethod::None, 255)) { in render()
224 compData->target->pImpl->render(renderer); in render()
228 if (cmp) renderer->beginComposite(cmp, compData->method, compData->target->pImpl->opacity); in render()
233 if (cmp) renderer->endComposite(cmp); in render()
241 if (this->renderer != renderer) { in update()
242 if (this->renderer) TVGERR("RENDERER", "paint's renderer has been changed!"); in update()
243 renderer->ref(); in update()
244 this->renderer = renderer; in update()
255 auto target = compData->target; in update()
256 auto method = compData->method; in update()
257 P(target)->ctxFlag &= ~ContextFlag::FastTrack; //reset in update()
261 if (target->type() == Type::Shape) { in update()
264 shape->fillColor(nullptr, nullptr, nullptr, &a); in update()
266 if (!shape->fill() && !(PP(shape)->compData)) { in update()
267 …lphaMask && a == 255 && PP(shape)->opacity == 255) || (method == CompositeMethod::InvAlphaMask && … in update()
268 viewport = renderer->viewport(); in update()
270 P(target)->ctxFlag |= ContextFlag::FastTrack; in update()
276 trd = P(target)->update(renderer, pm, clips, 255, pFlag, false); in update()
281 if (this->clipper) { in update()
282 P(this->clipper)->ctxFlag &= ~ContextFlag::FastTrack; //reset in update()
283 viewport = renderer->viewport(); in update()
286 …if (!P(this->clipper)->clipper && (compFastTrack = _compFastTrack(renderer, this->clipper, pm, vie… in update()
287 P(this->clipper)->ctxFlag |= ContextFlag::FastTrack; in update()
290 trd = P(this->clipper)->update(renderer, pm, clips, 255, pFlag, true); in update()
298 opacity = MULTIPLY(opacity, this->opacity); in update()
306 if (compFastTrack == Result::Success) renderer->viewport(viewport); in update()
307 else if (this->clipper) clips.pop(); in update()
316 const auto& m = this->transform(origin); in bounds()
338 auto x2 = -FLT_MAX; in bounds()
339 auto y2 = -FLT_MAX; in bounds()
353 if (w) *w = x2 - x1; in bounds()
354 if (h) *h = y2 - y1; in bounds()
368 if (P(compData->target)->unref() == 0) delete(compData->target); in reset()
382 paint->id = 0; in reset()
403 if (pImpl->rotate(degree)) return Result::Success; in rotate()
410 if (pImpl->scale(factor)) return Result::Success; in scale()
417 if (pImpl->translate(x, y)) return Result::Success; in translate()
424 if (pImpl->transform(m)) return Result::Success; in transform()
431 return pImpl->transform(); in transform()
437 return this->bounds(x, y, w, h, false); in bounds()
443 if (pImpl->bounds(x, y, w, h, transformed, true, transformed)) return Result::Success; in bounds()
450 return pImpl->duplicate(); in duplicate()
458 if (p && p->type() != Type::Shape) { in clip()
462 pImpl->clip(p); in clip()
473 if (pImpl->composite(this, p, method)) return Result::Success; in composite()
482 if (pImpl->compData) { in composite()
483 if (target) *target = pImpl->compData->target; in composite()
484 return pImpl->compData->method; in composite()
487 if (pImpl->clipper) { in composite()
488 if (target) *target = pImpl->clipper; in composite()
497 Result Paint::opacity(uint8_t o) noexcept in opacity() argument
499 if (pImpl->opacity == o) return Result::Success; in opacity()
501 pImpl->opacity = o; in opacity()
502 pImpl->renderFlag |= RenderUpdateFlag::Color; in opacity()
510 return pImpl->opacity; in opacity()
525 if (pImpl->blendMethod != method) { in blend()
526 pImpl->blendMethod = method; in blend()
527 pImpl->renderFlag |= RenderUpdateFlag::Blend; in blend()