[RDView] 修复 hsb 属性读取异常和渲染异常

This commit is contained in:
OLDREDSTONE 2026-01-16 23:31:09 +08:00
parent 4b842c721b
commit 38a17ad35d

View File

@ -762,12 +762,15 @@ function createLayerFromBackground(key, bound, color, style, backgroundRepeat =
const height = bound.height;
const infoLeft = info.bounds.left;
const infoTop = info.bounds.top;
const widthScale = width / info.bounds.width;
const heightScale = height / info.bounds.height;
layer.style.left = `${(left - pivotX) * style.scale}px`;
layer.style.top = `${(top - pivotY) * style.scale}px`;
layer.style.width = `${width * style.scale}px`;
layer.style.height = `${height * style.scale}px`;
layer.style.backgroundPosition = `-${infoLeft * style.scale}px -${infoTop * style.scale}px`;
layer.style.backgroundSize = `${assetSize.width * width * style.scale}px ${assetSize.height * height * style.scale}px`;
layer.style.backgroundPosition = `-${infoLeft * widthScale * style.scale}px -${infoTop * heightScale * style.scale}px`;
layer.style.backgroundSize = `${assetSize.width * widthScale * style.scale}px ${assetSize.height * heightScale * style.scale}px`;
console.log(layer.style.backgroundSize);
} else {
bound = bound ?? new Point(0, 0);
const left = bound.x;
@ -963,7 +966,6 @@ function createElementEvent(obj, style) {
}
if (!slices.has(key0)) {
if (!slices.has("event_Unknown")) {
console.log(slices);
return null;
}
key0 = "event_Unknown";
@ -1262,7 +1264,10 @@ function createElementEvent(obj, style) {
const top = iconSize / 2 - iconBounds.height * s / 2;
const patternLayers = [];
const backLayers2 = createBackLayer(new Size(slcinfo.bounds.width, slcinfo.bounds.height), colorOf(obj.tab ?? evinfo.defaultTab), style);
for (let p of obj.pattern ?? "------") {
if (typeof obj.pattern !== "string" || obj.pattern.length !== 6) {
obj.pattern = "------";
}
for (let p of obj.pattern) {
const beatxLayer = createLayerFromBackground(p === "x" ? beatx : beatline, new Rect(left, top, width, iconBounds.height * s), null, style);
patternLayers.push(...beatxLayer);
left += width;
@ -1511,18 +1516,19 @@ function createElementEvent(obj, style) {
if (obj["$style"]) {
const hsb = obj["$style"].hsb ?? [
0,
0,
0
1,
1
];
if (hsb[0] !== 0 || hsb[1] !== 0 || hsb[2] !== 0) {
if (hsb.length === 3 && (hsb[0] !== 0 || hsb[1] !== 0 || hsb[2] !== 0)) {
layersToAdd.forEach((layer) => {
if (!layer.filterData) return;
layer.filterData.hue = hsb[0];
layer.filterData.saturation = hsb[1];
layer.filterData.brightness = hsb[2];
});
}
layersToAdd.forEach((layer) => {
layer.updateFilter();
layer.updateFilter?.();
});
}
element.onStateChange = (style2) => {