StimProducer: add destroyAttachedStimulusBuffer virtual method

Implemented in base class and in derived class
PcloudStimulusProducer.
This commit is contained in:
2025-11-20 01:25:46 -04:00
parent ee6405048a
commit 51d2a70a3f
5 changed files with 40 additions and 16 deletions
@@ -205,6 +205,23 @@ PcloudStimulusProducer::getAttachedStimulusBuffer(
return nullptr;
}
void PcloudStimulusProducer::destroyAttachedStimulusBuffer(
const std::shared_ptr<StimulusBuffer>& buffer)
{
if (!buffer) { return; }
// Clear specialized buffer pointers if they match
if (meshStimulusBuffer == buffer)
{ meshStimulusBuffer.reset(); }
if (intensityStimulusBuffer == buffer)
{ intensityStimulusBuffer.reset(); }
if (ambienceStimulusBuffer == buffer)
{ ambienceStimulusBuffer.reset(); }
// Call base class implementation to remove from attachedStimulusBuffers
StimulusProducer::destroyAttachedStimulusBuffer(buffer);
}
std::shared_ptr<StimulusBuffer>
PcloudStimulusProducer::getOrCreateAttachedStimulusBuffer(
const std::shared_ptr<device::DeviceAttachmentSpec>& deviceAttachmentSpec