common: code refactoring.

changed just internal variable & method names.

no logical changes.

Change-Id: I01782ec59dec3ff2232e03de7b3863100d9cc27f
This commit is contained in:
Hermet Park 2020-07-30 15:10:59 +09:00
parent 8dca270a30
commit 39b77361c5
7 changed files with 32 additions and 34 deletions

View file

@ -56,7 +56,7 @@ struct Canvas::Impl
if (!renderer->clear()) return Result::InsufficientCondition; if (!renderer->clear()) return Result::InsufficientCondition;
for (auto paint : paints) { for (auto paint : paints) {
paint->IMPL->method->dispose(*renderer); paint->IMPL->method()->dispose(*renderer);
delete(paint); delete(paint);
} }
paints.clear(); paints.clear();
@ -70,13 +70,13 @@ struct Canvas::Impl
//Update single paint node //Update single paint node
if (paint) { if (paint) {
if (!paint->IMPL->method->update(*renderer, nullptr, RenderUpdateFlag::None)) { if (!paint->IMPL->method()->update(*renderer, nullptr, RenderUpdateFlag::None)) {
return Result::InsufficientCondition; return Result::InsufficientCondition;
} }
//Update retained all paint nodes //Update retained all paint nodes
} else { } else {
for(auto paint: paints) { for(auto paint: paints) {
if (!paint->IMPL->method->update(*renderer, nullptr, RenderUpdateFlag::None)) { if (!paint->IMPL->method()->update(*renderer, nullptr, RenderUpdateFlag::None)) {
return Result::InsufficientCondition; return Result::InsufficientCondition;
} }
} }
@ -91,7 +91,7 @@ struct Canvas::Impl
if (!renderer->preRender()) return Result::InsufficientCondition; if (!renderer->preRender()) return Result::InsufficientCondition;
for(auto paint: paints) { for(auto paint: paints) {
if(!paint->IMPL->method->render(*renderer)) return Result::InsufficientCondition; if(!paint->IMPL->method()->render(*renderer)) return Result::InsufficientCondition;
} }
if (!renderer->postRender()) return Result::InsufficientCondition; if (!renderer->postRender()) return Result::InsufficientCondition;

View file

@ -39,35 +39,35 @@ Paint :: ~Paint()
Result Paint::rotate(float degree) noexcept Result Paint::rotate(float degree) noexcept
{ {
if (IMPL->method->rotate(degree)) return Result::Success; if (IMPL->method()->rotate(degree)) return Result::Success;
return Result::FailedAllocation; return Result::FailedAllocation;
} }
Result Paint::scale(float factor) noexcept Result Paint::scale(float factor) noexcept
{ {
if (IMPL->method->scale(factor)) return Result::Success; if (IMPL->method()->scale(factor)) return Result::Success;
return Result::FailedAllocation; return Result::FailedAllocation;
} }
Result Paint::translate(float x, float y) noexcept Result Paint::translate(float x, float y) noexcept
{ {
if (IMPL->method->translate(x, y)) return Result::Success; if (IMPL->method()->translate(x, y)) return Result::Success;
return Result::FailedAllocation; return Result::FailedAllocation;
} }
Result Paint::transform(const Matrix& m) noexcept Result Paint::transform(const Matrix& m) noexcept
{ {
if (IMPL->method->transform(m)) return Result::Success; if (IMPL->method()->transform(m)) return Result::Success;
return Result::FailedAllocation; return Result::FailedAllocation;
} }
Result Paint::bounds(float* x, float* y, float* w, float* h) const noexcept Result Paint::bounds(float* x, float* y, float* w, float* h) const noexcept
{ {
if (IMPL->method->bounds(x, y, w, h)) return Result::Success; if (IMPL->method()->bounds(x, y, w, h)) return Result::Success;
return Result::InsufficientCondition; return Result::InsufficientCondition;
} }

View file

@ -19,9 +19,9 @@
namespace tvg namespace tvg
{ {
struct PaintMethod struct StrategyMethod
{ {
virtual ~PaintMethod(){} virtual ~StrategyMethod(){}
virtual bool dispose(RenderMethod& renderer) = 0; virtual bool dispose(RenderMethod& renderer) = 0;
virtual bool update(RenderMethod& renderer, const RenderTransform* pTransform, uint32_t pFlag) = 0; virtual bool update(RenderMethod& renderer, const RenderTransform* pTransform, uint32_t pFlag) = 0;
@ -37,21 +37,31 @@ namespace tvg
struct Paint::Impl struct Paint::Impl
{ {
PaintMethod* method = nullptr; StrategyMethod* smethod = nullptr;
~Impl() { ~Impl() {
if (method) delete(method); if (smethod) delete(smethod);
}
void method(StrategyMethod* method)
{
smethod = method;
}
StrategyMethod* method()
{
return smethod;
} }
}; };
template<class T> template<class T>
struct TransformMethod : PaintMethod struct PaintMethod : StrategyMethod
{ {
T* inst = nullptr; T* inst = nullptr;
TransformMethod(T* inst) : inst(_inst) {} PaintMethod(T* _inst) : inst(_inst) {}
~TransformMethod(){} ~PaintMethod(){}
bool rotate(float degree) override bool rotate(float degree) override
{ {

View file

@ -25,7 +25,7 @@
Scene::Scene() : pImpl(make_unique<Impl>()) Scene::Scene() : pImpl(make_unique<Impl>())
{ {
Paint::IMPL->method = IMPL->transformMethod(); Paint::IMPL->method(new PaintMethod<Scene::Impl>(IMPL));
} }

View file

@ -40,7 +40,7 @@ struct Scene::Impl
bool dispose(RenderMethod& renderer) bool dispose(RenderMethod& renderer)
{ {
for (auto paint : paints) { for (auto paint : paints) {
paint->IMPL->method->dispose(renderer); paint->IMPL->method()->dispose(renderer);
delete(paint); delete(paint);
} }
paints.clear(); paints.clear();
@ -51,7 +51,7 @@ struct Scene::Impl
bool updateInternal(RenderMethod &renderer, const RenderTransform* transform, uint32_t flag) bool updateInternal(RenderMethod &renderer, const RenderTransform* transform, uint32_t flag)
{ {
for(auto paint: paints) { for(auto paint: paints) {
if (!paint->IMPL->method->update(renderer, transform, flag)) return false; if (!paint->IMPL->method()->update(renderer, transform, flag)) return false;
} }
return true; return true;
} }
@ -94,7 +94,7 @@ struct Scene::Impl
bool render(RenderMethod &renderer) bool render(RenderMethod &renderer)
{ {
for(auto paint: paints) { for(auto paint: paints) {
if(!paint->IMPL->method->render(renderer)) return false; if(!paint->IMPL->method()->render(renderer)) return false;
} }
return true; return true;
} }
@ -118,7 +118,7 @@ struct Scene::Impl
auto w2 = 0.0f; auto w2 = 0.0f;
auto h2 = 0.0f; auto h2 = 0.0f;
if (paint->IMPL->method->bounds(&x2, &y2, &w2, &h2)) return false; if (paint->IMPL->method()->bounds(&x2, &y2, &w2, &h2)) return false;
//Merge regions //Merge regions
if (x2 < x) x = x2; if (x2 < x) x = x2;
@ -203,12 +203,6 @@ struct Scene::Impl
if (!loader->read()) return Result::Unknown; if (!loader->read()) return Result::Unknown;
return Result::Success; return Result::Success;
} }
PaintMethod* transformMethod()
{
return new TransformMethod<Scene::Impl>(this);
}
}; };
#endif //_TVG_SCENE_IMPL_H_ #endif //_TVG_SCENE_IMPL_H_

View file

@ -31,7 +31,7 @@ constexpr auto PATH_KAPPA = 0.552284f;
Shape :: Shape() : pImpl(make_unique<Impl>(this)) Shape :: Shape() : pImpl(make_unique<Impl>(this))
{ {
Paint::IMPL->method = IMPL->transformMethod(); Paint::IMPL->method(new PaintMethod<Shape::Impl>(IMPL));
} }

View file

@ -236,12 +236,6 @@ struct Shape::Impl
return true; return true;
} }
PaintMethod* transformMethod()
{
return new TransformMethod<Shape::Impl>(this);
}
}; };
#endif //_TVG_SHAPE_IMPL_H_ #endif //_TVG_SHAPE_IMPL_H_