sdfsdfs
This commit is contained in:
88
node_modules/pixi.js/lib/scene/container/RenderGroupSystem.mjs
generated
vendored
Normal file
88
node_modules/pixi.js/lib/scene/container/RenderGroupSystem.mjs
generated
vendored
Normal file
@@ -0,0 +1,88 @@
|
||||
import { ExtensionType } from '../../extensions/Extensions.mjs';
|
||||
import { Matrix } from '../../maths/matrix/Matrix.mjs';
|
||||
import { buildInstructions } from './utils/buildInstructions.mjs';
|
||||
import { clearList } from './utils/clearList.mjs';
|
||||
import { collectRenderGroups } from './utils/collectRenderGroups.mjs';
|
||||
import { executeInstructions } from './utils/executeInstructions.mjs';
|
||||
import { updateRenderGroupTransforms } from './utils/updateRenderGroupTransforms.mjs';
|
||||
import { validateRenderables } from './utils/validateRenderables.mjs';
|
||||
|
||||
"use strict";
|
||||
const tempMatrix = new Matrix();
|
||||
class RenderGroupSystem {
|
||||
constructor(renderer) {
|
||||
this._renderer = renderer;
|
||||
}
|
||||
render({ container, transform }) {
|
||||
container.isRenderGroup = true;
|
||||
const parent = container.parent;
|
||||
const renderGroupParent = container.renderGroup.renderGroupParent;
|
||||
container.parent = null;
|
||||
container.renderGroup.renderGroupParent = null;
|
||||
const renderer = this._renderer;
|
||||
const renderGroups = collectRenderGroups(container.renderGroup, []);
|
||||
let originalLocalTransform = tempMatrix;
|
||||
if (transform) {
|
||||
originalLocalTransform = originalLocalTransform.copyFrom(container.renderGroup.localTransform);
|
||||
container.renderGroup.localTransform.copyFrom(transform);
|
||||
}
|
||||
const renderPipes = renderer.renderPipes;
|
||||
for (let i = 0; i < renderGroups.length; i++) {
|
||||
const renderGroup = renderGroups[i];
|
||||
renderGroup.runOnRender();
|
||||
renderGroup.instructionSet.renderPipes = renderPipes;
|
||||
if (!renderGroup.structureDidChange) {
|
||||
validateRenderables(renderGroup, renderPipes);
|
||||
} else {
|
||||
clearList(renderGroup.childrenRenderablesToUpdate.list, 0);
|
||||
}
|
||||
updateRenderGroupTransforms(renderGroup);
|
||||
if (renderGroup.structureDidChange) {
|
||||
renderGroup.structureDidChange = false;
|
||||
buildInstructions(renderGroup, renderer);
|
||||
} else {
|
||||
updateRenderables(renderGroup);
|
||||
}
|
||||
renderGroup.childrenRenderablesToUpdate.index = 0;
|
||||
renderer.renderPipes.batch.upload(renderGroup.instructionSet);
|
||||
}
|
||||
renderer.globalUniforms.start({
|
||||
worldTransformMatrix: transform ? container.renderGroup.localTransform : container.renderGroup.worldTransform,
|
||||
worldColor: container.renderGroup.worldColorAlpha
|
||||
});
|
||||
executeInstructions(container.renderGroup, renderPipes);
|
||||
if (renderPipes.uniformBatch) {
|
||||
renderPipes.uniformBatch.renderEnd();
|
||||
}
|
||||
if (transform) {
|
||||
container.renderGroup.localTransform.copyFrom(originalLocalTransform);
|
||||
}
|
||||
container.parent = parent;
|
||||
container.renderGroup.renderGroupParent = renderGroupParent;
|
||||
}
|
||||
destroy() {
|
||||
this._renderer = null;
|
||||
}
|
||||
}
|
||||
/** @ignore */
|
||||
RenderGroupSystem.extension = {
|
||||
type: [
|
||||
ExtensionType.WebGLSystem,
|
||||
ExtensionType.WebGPUSystem,
|
||||
ExtensionType.CanvasSystem
|
||||
],
|
||||
name: "renderGroup"
|
||||
};
|
||||
function updateRenderables(renderGroup) {
|
||||
const { list, index } = renderGroup.childrenRenderablesToUpdate;
|
||||
for (let i = 0; i < index; i++) {
|
||||
const container = list[i];
|
||||
if (container.didViewUpdate) {
|
||||
renderGroup.updateRenderable(container);
|
||||
}
|
||||
}
|
||||
clearList(list, index);
|
||||
}
|
||||
|
||||
export { RenderGroupSystem };
|
||||
//# sourceMappingURL=RenderGroupSystem.mjs.map
|
Reference in New Issue
Block a user