/*
- * Copyright (c) 2023 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2025 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
*/
-#include <dali-test-suite-utils.h>
+#include <dali-toolkit-test-suite-utils.h>
#include <dali-toolkit/public-api/particle-system/particle-domain.h>
#include <dali-toolkit/public-api/particle-system/particle-emitter.h>
#include <dali-toolkit/public-api/particle-system/particle-list.h>
using ParticleEmitterWrapper = Dali::Toolkit::ParticleSystem::Internal::ParticleEmitter;
+namespace
+{
Texture CreateTexture()
{
Texture texture = Texture::New(Dali::TextureType::TEXTURE_2D, Dali::Pixel::RGBA8888, 100, 100);
[[maybe_unused]] auto& col = particle.Get<Vector4>(ParticleStream::COLOR_STREAM_BIT);
[[maybe_unused]] auto& vel = particle.Get<Vector3>(ParticleStream::VELOCITY_STREAM_BIT);
[[maybe_unused]] auto& sca = particle.Get<Vector3>(ParticleStream::SCALE_STREAM_BIT);
- //auto& basePos = particle.Get<Vector3>(ParticleStream::SCALE_STREAM_BIT);
+ // auto& basePos = particle.Get<Vector3>(ParticleStream::SCALE_STREAM_BIT);
}
return count;
return emitter;
}
+} // namespace
int UtcDaliParticleSystemEmitterNew(void)
{
+ ToolkitTestApplication application;
+
// create particle emitter
auto emitter = ParticleEmitter::New();
int UtcDaliParticleSystemEmitterNew2(void)
{
+ ToolkitTestApplication application;
+
// create particle emitter
auto emitter = ParticleEmitter::New();
int UtcDaliParticleSystemEmitterDefaultStreams(void)
{
+ ToolkitTestApplication application;
+
// create particle emitter
auto emitter = ParticleEmitter::New();
int UtcDaliParticleSystemEmitterModifierStack(void)
{
+ ToolkitTestApplication application;
+
// create particle emitter
auto emitter = ParticleEmitter::New();
int UtcDaliParticleSystemTest(void)
{
- TestApplication application;
+ ToolkitTestApplication application;
// Create actor to be used with emitter
Actor actor = Actor::New();
int UtcDaliParticleSystemTestWithTextureScreen(void)
{
- TestApplication application;
+ ToolkitTestApplication application;
// Create actor to be used with emitter
Actor actor = Actor::New();
int UtcDaliParticleSystemTestWithTextureAdd(void)
{
- TestApplication application;
+ ToolkitTestApplication application;
// Create actor to be used with emitter
Actor actor = Actor::New();
int UtcDaliParticleSystemTestInitialSetup(void)
{
- TestApplication application;
+ ToolkitTestApplication application;
// Create actor to be used with emitter
Actor actor = Actor::New();
int UtcDaliParticleSystemTestMT(void)
{
- TestApplication application;
+ ToolkitTestApplication application;
// Create actor to be used with emitter
Actor actor = Actor::New();
int UtcDaliParticleSystemTestParticleSource(void)
{
- TestApplication application;
+ ToolkitTestApplication application;
// Create actor to be used with emitter
Actor actor = Actor::New();
int UtcDaliParticleSystemReplaceEmitter(void)
{
- TestApplication application;
+ ToolkitTestApplication application;
// Create actor to be used with emitter
Actor actor = Actor::New();
*
*/
-#include <dali-toolkit/internal/particle-system/particle-emitter-impl.h>
-#include <dali-toolkit/internal/particle-system/particle-list-impl.h>
+// CLASS HEADER
#include <dali-toolkit/internal/particle-system/particle-renderer-impl.h>
-#include <dali/devel-api/rendering/renderer-devel.h>
+// EXTERNAL HEADERS
#include <dali/devel-api/actors/actor-devel.h>
#include <dali/devel-api/common/capabilities.h>
+#include <dali/devel-api/rendering/renderer-devel.h>
#include <dali/graphics-api/graphics-buffer.h>
#include <dali/graphics-api/graphics-controller.h>
#include <dali/graphics-api/graphics-program.h>
#include <dali/graphics-api/graphics-shader.h>
+#include <dali/integration-api/adaptor-framework/adaptor.h>
+#include <dali/integration-api/debug.h>
+
+// INTERNAL HEADERS
+#include <dali-toolkit/internal/particle-system/particle-emitter-impl.h>
+#include <dali-toolkit/internal/particle-system/particle-list-impl.h>
namespace Dali::Toolkit::ParticleSystem::Internal
{
mStreamBuffer.SetData(data.Begin(), mEmitter->GetParticleList().GetCapacity() * NUMBER_OF_VERTEX_ELEMENTS_PER_PARTICLE); // needed to initialize
// Sets up callback
- mStreamBuffer.SetVertexBufferUpdateCallback(std::move(mStreamBufferUpdateCallback));
+ if(DALI_LIKELY(Dali::Adaptor::IsAvailable()))
+ {
+ // Note : MUST NOT call this API during app terminating
+ mStreamBuffer.SetVertexBufferUpdateCallback(std::move(mStreamBufferUpdateCallback));
+ }
mRenderer = Renderer::New(mGeometry, mShader);
const auto count = i == workerCount - 1 ? particleCount - index : partial;
tasks.emplace_back(*this, list, index, count, dst + (elementByte * NUMBER_OF_VERTEX_ELEMENTS_PER_PARTICLE) * index);
- taskQueue.emplace_back([&t = tasks.back()](uint32_t threadId)
- { t.Update(); });
+ taskQueue.emplace_back([&t = tasks.back()](uint32_t threadId) { t.Update(); });
}
// Execute worker tasks
void ParticleRenderer::PrepareToDie()
{
- if(mStreamBuffer)
+ if(DALI_LIKELY(Dali::Adaptor::IsAvailable()) && mStreamBuffer)
{
+ // Note : MUST NOT call this API during app terminating
mStreamBuffer.ClearVertexBufferUpdateCallback();
}
}