Skip to content

Commit ec797cc

Browse files
update
1 parent ddc3b1f commit ec797cc

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

cocos/rendering/render-additive-light-queue.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,10 @@ export class RenderAdditiveLightQueue {
322322
const buffer = pass.getInstancedBuffer(lightIdx);
323323
buffer.merge(subModel, lightPassIdx);
324324
buffer.dynamicOffsets[0] = this._lightBufferStride * lightIdx;
325-
if (!this._instancedQueues[lightIdx]) { this._instancedQueues[lightIdx] = new RenderInstancedQueue(); }
325+
if (this._instancedQueues.length <= lightIdx || !this._instancedQueues[lightIdx]) {
326+
this._instancedQueues.length = lightIdx + 1;
327+
this._instancedQueues[lightIdx] = new RenderInstancedQueue();
328+
}
326329
this._instancedQueues[lightIdx].queue.add(buffer);
327330
} break;
328331
default:

native/cocos/renderer/pipeline/RenderAdditiveLightQueue.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,10 @@ void RenderAdditiveLightQueue::addRenderQueue(scene::SubModel *subModel, const s
216216
auto *buffer = pass->getInstancedBuffer(lightIdx);
217217
buffer->merge(subModel, lightPassIdx);
218218
buffer->setDynamicOffset(0, _lightBufferStride * lightIdx);
219-
if (!_instancedQueues[lightIdx]) { _instancedQueues[lightIdx] = ccnew RenderInstancedQueue(); }
219+
if (_instancedQueues.size() <= lightIdx || !_instancedQueues[lightIdx]) {
220+
_instancedQueues.resize(lightIdx + 1);
221+
_instancedQueues[lightIdx] = ccnew RenderInstancedQueue();
222+
}
220223
_instancedQueues[lightIdx]->add(buffer);
221224
} break;
222225
case scene::BatchingSchemes::NONE: {

0 commit comments

Comments
 (0)