@pixi/core
Version:
Core PixiJS
68 lines (63 loc) • 1.76 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var Buffer = require('../geometry/Buffer.js');
var Geometry = require('../geometry/Geometry.js');
class QuadUv extends Geometry.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.Buffer(this.vertices);
this.uvBuffer = new Buffer.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;
}
}
exports.QuadUv = QuadUv;
//# sourceMappingURL=QuadUv.js.map