@pixi/core
Version:
Core PixiJS
64 lines (61 loc) • 1.66 kB
JavaScript
import { Buffer } from '../geometry/Buffer.mjs';
import { Geometry } from '../geometry/Geometry.mjs';
class QuadUv extends Geometry {
constructor() {
super();
this.vertices = new Float32Array([
-1,
-1,
1,
-1,
1,
1,
-1,
1
]);
this.uvs = new Float32Array([
0,
0,
1,
0,
1,
1,
0,
1
]);
this.vertexBuffer = new Buffer(this.vertices);
this.uvBuffer = new Buffer(this.uvs);
this.addAttribute("aVertexPosition", this.vertexBuffer).addAttribute("aTextureCoord", this.uvBuffer).addIndex([0, 1, 2, 0, 2, 3]);
}
map(targetTextureFrame, destinationFrame) {
let x = 0;
let y = 0;
this.uvs[0] = x;
this.uvs[1] = y;
this.uvs[2] = x + destinationFrame.width / targetTextureFrame.width;
this.uvs[3] = y;
this.uvs[4] = x + destinationFrame.width / targetTextureFrame.width;
this.uvs[5] = y + destinationFrame.height / targetTextureFrame.height;
this.uvs[6] = x;
this.uvs[7] = y + destinationFrame.height / targetTextureFrame.height;
x = destinationFrame.x;
y = destinationFrame.y;
this.vertices[0] = x;
this.vertices[1] = y;
this.vertices[2] = x + destinationFrame.width;
this.vertices[3] = y;
this.vertices[4] = x + destinationFrame.width;
this.vertices[5] = y + destinationFrame.height;
this.vertices[6] = x;
this.vertices[7] = y + destinationFrame.height;
this.invalidate();
return this;
}
invalidate() {
this.vertexBuffer._updateID++;
this.uvBuffer._updateID++;
return this;
}
}
export { QuadUv };
//# sourceMappingURL=QuadUv.mjs.map