Api improvements: ambience-count-[l|g]t-val and Comparator

This commit is contained in:
2026-04-03 23:54:22 -04:00
parent bedcf78b29
commit 7516da6aa8
4 changed files with 111 additions and 19 deletions
@@ -988,19 +988,18 @@ void OpenClCollatingAndMeshingEngine::produceAmbienceStimulusFrame(
parent.ambienceStimulusBuffer.load(std::memory_order_acquire);
if (!ambienceBuff) { return; }
uint32_t lowVal = ambienceBuff->ambienceIntensityLowVal;
const auto& ambienceCountComparator = ambienceBuff->ambienceCountComparator;
// Read average intensity values from averageIntensityBuffer
float* averageIntensityAverages = reinterpret_cast<float*>(
averageIntensityBufferPtr);
// Count frames whose average intensity is <= lowVal (postrin only)
// Count frames whose average intensity matches the configured comparator.
uint32_t ambienceCount = 0;
for (uint32_t i = 0; i < nSucceeded; ++i)
{
float avg = averageIntensityAverages[i];
if (avg <= static_cast<float>(lowVal))
{
if (ambienceCountComparator(avg)) {
++ambienceCount;
}
}
@@ -1223,7 +1222,8 @@ public:
{
std::shared_ptr<PcloudAmbienceStimulusBuffer> ambienceBuff =
engine.parent.ambienceStimulusBuffer.load(std::memory_order_acquire);
uint32_t lowVal = ambienceBuff->ambienceIntensityLowVal;
const auto& ambienceCountComparator =
ambienceBuff->ambienceCountComparator;
uint32_t postrinThreshold = ambienceBuff->postrinInterestThreshold;
float* averageIntensityAverages = reinterpret_cast<float*>(
@@ -1233,8 +1233,7 @@ public:
for (uint32_t i = 0; i < nSucceeded; ++i)
{
float avg = averageIntensityAverages[i];
if (avg <= static_cast<float>(lowVal))
{
if (ambienceCountComparator(avg)) {
++framesMetThreshold;
}
}