|
@@ -157,7 +157,7 @@ namespace Visual {
|
|
|
export function setOverpaint(renderObject: GraphicsRenderObject | undefined, overpaint: Overpaint, lociApply: LociApply, clear: boolean, smoothing?: SmoothingContext) {
|
|
|
if (!renderObject) return;
|
|
|
|
|
|
- const { tOverpaint, dOverpaintType, uGroupCount, instanceCount } = renderObject.values;
|
|
|
+ const { tOverpaint, dOverpaintType, dOverpaint, uGroupCount, instanceCount } = renderObject.values;
|
|
|
const count = uGroupCount.ref.value * instanceCount.ref.value;
|
|
|
|
|
|
// ensure texture has right size
|
|
@@ -180,6 +180,7 @@ namespace Visual {
|
|
|
}
|
|
|
ValueCell.update(tOverpaint, tOverpaint.ref.value);
|
|
|
ValueCell.updateIfChanged(dOverpaintType, 'groupInstance');
|
|
|
+ ValueCell.updateIfChanged(dOverpaint, overpaint.layers.length > 0);
|
|
|
|
|
|
if (overpaint.layers.length === 0) return;
|
|
|
|
|
@@ -206,7 +207,7 @@ namespace Visual {
|
|
|
export function setTransparency(renderObject: GraphicsRenderObject | undefined, transparency: Transparency, lociApply: LociApply, clear: boolean, smoothing?: SmoothingContext) {
|
|
|
if (!renderObject) return;
|
|
|
|
|
|
- const { tTransparency, dTransparencyType, transparencyAverage, uGroupCount, instanceCount } = renderObject.values;
|
|
|
+ const { tTransparency, dTransparencyType, transparencyAverage, dTransparency, uGroupCount, instanceCount } = renderObject.values;
|
|
|
const count = uGroupCount.ref.value * instanceCount.ref.value;
|
|
|
|
|
|
// ensure texture has right size and variant
|
|
@@ -228,6 +229,7 @@ namespace Visual {
|
|
|
ValueCell.update(tTransparency, tTransparency.ref.value);
|
|
|
ValueCell.updateIfChanged(transparencyAverage, getTransparencyAverage(array, count));
|
|
|
ValueCell.updateIfChanged(dTransparencyType, 'groupInstance');
|
|
|
+ ValueCell.updateIfChanged(dTransparency, transparency.layers.length > 0);
|
|
|
|
|
|
if (transparency.layers.length === 0) return;
|
|
|
|
|
@@ -254,7 +256,7 @@ namespace Visual {
|
|
|
export function setSubstance(renderObject: GraphicsRenderObject | undefined, substance: Substance, lociApply: LociApply, clear: boolean, smoothing?: SmoothingContext) {
|
|
|
if (!renderObject) return;
|
|
|
|
|
|
- const { tSubstance, dSubstanceType, uGroupCount, instanceCount } = renderObject.values;
|
|
|
+ const { tSubstance, dSubstanceType, dSubstance, uGroupCount, instanceCount } = renderObject.values;
|
|
|
const count = uGroupCount.ref.value * instanceCount.ref.value;
|
|
|
|
|
|
// ensure texture has right size
|
|
@@ -277,6 +279,7 @@ namespace Visual {
|
|
|
}
|
|
|
ValueCell.update(tSubstance, tSubstance.ref.value);
|
|
|
ValueCell.updateIfChanged(dSubstanceType, 'groupInstance');
|
|
|
+ ValueCell.updateIfChanged(dSubstance, substance.layers.length > 0);
|
|
|
|
|
|
if (substance.layers.length === 0) return;
|
|
|
|
|
@@ -303,7 +306,7 @@ namespace Visual {
|
|
|
export function setClipping(renderObject: GraphicsRenderObject | undefined, clipping: Clipping, lociApply: LociApply, clear: boolean) {
|
|
|
if (!renderObject) return;
|
|
|
|
|
|
- const { tClipping, uGroupCount, instanceCount } = renderObject.values;
|
|
|
+ const { tClipping, dClipping, uGroupCount, instanceCount } = renderObject.values;
|
|
|
const count = uGroupCount.ref.value * instanceCount.ref.value;
|
|
|
|
|
|
// ensure texture has right size
|
|
@@ -323,6 +326,7 @@ namespace Visual {
|
|
|
lociApply(loci, apply, false);
|
|
|
}
|
|
|
ValueCell.update(tClipping, tClipping.ref.value);
|
|
|
+ ValueCell.updateIfChanged(dClipping, clipping.layers.length > 0);
|
|
|
}
|
|
|
|
|
|
export function setTransform(renderObject: GraphicsRenderObject | undefined, transform?: Mat4, instanceTransforms?: Float32Array | null) {
|