feat: updated engine version to 4.4-rc1
This commit is contained in:
parent
ee00efde1f
commit
21ba8e33af
5459 changed files with 1128836 additions and 198305 deletions
|
|
@ -20,15 +20,32 @@
|
|||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <cstdarg>
|
||||
#include "tvgScene.h"
|
||||
|
||||
/************************************************************************/
|
||||
/* Internal Class Implementation */
|
||||
/************************************************************************/
|
||||
|
||||
Result Scene::Impl::resetEffects()
|
||||
{
|
||||
if (effects) {
|
||||
for (auto e = effects->begin(); e < effects->end(); ++e) {
|
||||
delete(*e);
|
||||
}
|
||||
delete(effects);
|
||||
effects = nullptr;
|
||||
}
|
||||
return Result::Success;
|
||||
}
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/* External Class Implementation */
|
||||
/************************************************************************/
|
||||
|
||||
Scene::Scene() : pImpl(new Impl(this))
|
||||
{
|
||||
Paint::pImpl->id = TVG_CLASS_ID_SCENE;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -44,9 +61,15 @@ unique_ptr<Scene> Scene::gen() noexcept
|
|||
}
|
||||
|
||||
|
||||
uint32_t Scene::identifier() noexcept
|
||||
TVG_DEPRECATED uint32_t Scene::identifier() noexcept
|
||||
{
|
||||
return TVG_CLASS_ID_SCENE;
|
||||
return (uint32_t) Type::Scene;
|
||||
}
|
||||
|
||||
|
||||
Type Scene::type() const noexcept
|
||||
{
|
||||
return Type::Scene;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -54,7 +77,11 @@ Result Scene::push(unique_ptr<Paint> paint) noexcept
|
|||
{
|
||||
auto p = paint.release();
|
||||
if (!p) return Result::MemoryCorruption;
|
||||
PP(p)->ref();
|
||||
P(p)->ref();
|
||||
|
||||
//Relocated the paint to the current scene space
|
||||
P(p)->renderFlag |= RenderUpdateFlag::Transform;
|
||||
|
||||
pImpl->paints.push_back(p);
|
||||
|
||||
return Result::Success;
|
||||
|
|
@ -79,3 +106,46 @@ list<Paint*>& Scene::paints() noexcept
|
|||
{
|
||||
return pImpl->paints;
|
||||
}
|
||||
|
||||
|
||||
Result Scene::push(SceneEffect effect, ...) noexcept
|
||||
{
|
||||
if (effect == SceneEffect::ClearAll) return pImpl->resetEffects();
|
||||
|
||||
if (!pImpl->effects) pImpl->effects = new Array<RenderEffect*>;
|
||||
|
||||
va_list args;
|
||||
va_start(args, effect);
|
||||
|
||||
RenderEffect* re = nullptr;
|
||||
|
||||
switch (effect) {
|
||||
case SceneEffect::GaussianBlur: {
|
||||
re = RenderEffectGaussianBlur::gen(args);
|
||||
break;
|
||||
}
|
||||
case SceneEffect::DropShadow: {
|
||||
re = RenderEffectDropShadow::gen(args);
|
||||
break;
|
||||
}
|
||||
case SceneEffect::Fill: {
|
||||
re = RenderEffectFill::gen(args);
|
||||
break;
|
||||
}
|
||||
case SceneEffect::Tint: {
|
||||
re = RenderEffectTint::gen(args);
|
||||
break;
|
||||
}
|
||||
case SceneEffect::Tritone: {
|
||||
re = RenderEffectTritone::gen(args);
|
||||
break;
|
||||
}
|
||||
default: break;
|
||||
}
|
||||
|
||||
if (!re) return Result::InvalidArguments;
|
||||
|
||||
pImpl->effects->push(re);
|
||||
|
||||
return Result::Success;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue