This commit is contained in:
Zemledelec 2025-11-12 19:50:18 +04:00
parent 58e0cbe829
commit d3af894918
2 changed files with 40 additions and 20 deletions

View File

@ -177,29 +177,34 @@ class Ray {
public setSrc(src: string | null) {
this._src = src;
let bh = this._handler;
if (bh && src && src.length) {
if (bh) {
let rn = bh._entityCollection.renderNode;
if (rn && rn.renderer) {
let ta = rn.renderer.strokeTextureAtlas;
ta.loadImage(src, (img: HTMLImageElementExt) => {
if (img.__nodeIndex != undefined && ta.get(img.__nodeIndex)) {
this._image = img;
let taData = ta.get(img!.__nodeIndex!)!;
let minY = taData.texCoords[1],
imgHeight = taData.texCoords[3] - minY;
bh!.setTexCoordArr(
this._handlerIndex,
taData.texCoords,
minY,
imgHeight
);
} else {
ta.addImage(img);
ta.createTexture();
this._image = img;
rn!.updateTexCoords();
}
});
if (src && src.length) {
ta.loadImage(src, (img: HTMLImageElementExt) => {
if (img.__nodeIndex != undefined && ta.get(img.__nodeIndex)) {
this._image = img;
let taData = ta.get(img!.__nodeIndex!)!;
let minY = taData.texCoords[1],
imgHeight = taData.texCoords[3] - minY;
bh!.setTexCoordArr(
this._handlerIndex,
taData.texCoords,
minY,
imgHeight
);
} else {
ta.addImage(img);
ta.createTexture();
this._image = img;
rn!.updateTexCoords();
}
});
} else {
bh!.setTextureEnabled(this._handlerIndex, false);
rn!.updateTexCoords();
}
}
}
}

View File

@ -849,6 +849,21 @@ class RayHandler {
this._changedBuffers[TEXCOORD_BUFFER] = true;
}
public setTextureEnabled(index: number, enabled: boolean) {
let i = index * 24;
let a = this._texCoordArr;
let f = enabled ? 0 : 1;
a[i + 3] = f;
a[i + 7] = f;
a[i + 11] = f;
a[i + 15] = f;
a[i + 19] = f;
a[i + 23] = f;
this._changedBuffers[TEXCOORD_BUFFER] = true;
}
public setTexOffsetArr(index: number, value: number) {
let i = index * 6;
let a = this._texOffsetArr;