char key[256];
if(streamName.empty())
{
- sprintf(key, "aStreamAttr_%d", i);
+ snprintf(key, sizeof(key), "aStreamAttr_%d", i);
}
else
{
- sprintf(key, "%s", streamName.c_str());
+ snprintf(key, sizeof(key), "%s", streamName.c_str());
}
streamAtttributes.Add(key, ATTR_TYPES[dataTypeIndex]);
{
mTexture = Texture::New(TextureType::TEXTURE_2D, Pixel::RGBA8888, 2u, 2u);
auto* pixelArray = new uint32_t[4]{
- 0xFF0000FF, 0xFF0000FF, 0xFF0000FF, 0xFF0000FF};
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF};
auto pixelData = PixelData::New(reinterpret_cast<uint8_t*>(pixelArray), 16, 2, 2, Pixel::Format::RGBA8888, PixelData::DELETE_ARRAY);
mTexture.Upload(pixelData);
}
-
mTextureSet = TextureSet::New();
mTextureSet.SetTexture(0, mTexture);
- // mTextureSet.SetSampler(0, Sampler());
-
mRenderer.SetTextures(mTextureSet);
-
- // Attach renderer to the parent actor
- mEmitter->GetActor().AddRenderer(mRenderer);
+ mTextureSet.SetSampler(0, Sampler());
if(mBlendingMode == BlendingMode::SCREEN)
{
else
{
// Partial to handle
- [[maybe_unused]] auto partialSize = (particleCount / workerCount);
+ auto partialSize = (particleCount / workerCount);
struct UpdateTask
{
}
tasks.emplace_back(*this, list, index, count, streamData);
- 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
return false;
}
-} // namespace Dali::Toolkit::ParticleSystem::Internal
\ No newline at end of file
+void ParticleRenderer::PrepareToDie()
+{
+ if(mStreamBuffer)
+ {
+ mStreamBuffer.ClearVertexBufferUpdateCallback();
+ }
+}
+
+} // namespace Dali::Toolkit::ParticleSystem::Internal