@pixi/core
Version:
Core PixiJS
1 lines • 5.09 kB
Source Map (JSON)
{"version":3,"file":"QuadUv.mjs","sources":["../../src/utils/QuadUv.ts"],"sourcesContent":["import { Buffer } from '../geometry/Buffer';\nimport { Geometry } from '../geometry/Geometry';\n\nimport type { Rectangle } from '@pixi/math';\n\n/**\n * Helper class to create a quad with uvs like in v4\n * @memberof PIXI\n */\nexport class QuadUv extends Geometry\n{\n vertexBuffer: Buffer;\n uvBuffer: Buffer;\n\n /** An array of vertices. */\n vertices: Float32Array;\n\n /** The Uvs of the quad. */\n uvs: Float32Array;\n\n constructor()\n {\n super();\n\n this.vertices = new Float32Array([\n -1, -1,\n 1, -1,\n 1, 1,\n -1, 1,\n ]);\n\n this.uvs = new Float32Array([\n 0, 0,\n 1, 0,\n 1, 1,\n 0, 1,\n ]);\n\n this.vertexBuffer = new Buffer(this.vertices);\n this.uvBuffer = new Buffer(this.uvs);\n\n this.addAttribute('aVertexPosition', this.vertexBuffer)\n .addAttribute('aTextureCoord', this.uvBuffer)\n .addIndex([0, 1, 2, 0, 2, 3]);\n }\n\n /**\n * Maps two Rectangle to the quad.\n * @param targetTextureFrame - The first rectangle\n * @param destinationFrame - The second rectangle\n * @returns - Returns itself.\n */\n map(targetTextureFrame: Rectangle, destinationFrame: Rectangle): this\n {\n let x = 0; // destinationFrame.x / targetTextureFrame.width;\n let y = 0; // destinationFrame.y / targetTextureFrame.height;\n\n this.uvs[0] = x;\n this.uvs[1] = y;\n\n this.uvs[2] = x + (destinationFrame.width / targetTextureFrame.width);\n this.uvs[3] = y;\n\n this.uvs[4] = x + (destinationFrame.width / targetTextureFrame.width);\n this.uvs[5] = y + (destinationFrame.height / targetTextureFrame.height);\n\n this.uvs[6] = x;\n this.uvs[7] = y + (destinationFrame.height / targetTextureFrame.height);\n\n x = destinationFrame.x;\n y = destinationFrame.y;\n\n this.vertices[0] = x;\n this.vertices[1] = y;\n\n this.vertices[2] = x + destinationFrame.width;\n this.vertices[3] = y;\n\n this.vertices[4] = x + destinationFrame.width;\n this.vertices[5] = y + destinationFrame.height;\n\n this.vertices[6] = x;\n this.vertices[7] = y + destinationFrame.height;\n\n this.invalidate();\n\n return this;\n }\n\n /**\n * Legacy upload method, just marks buffers dirty.\n * @returns - Returns itself.\n */\n invalidate(): this\n {\n this.vertexBuffer._updateID++;\n this.uvBuffer._updateID++;\n\n return this;\n }\n}\n"],"names":[],"mappings":"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"}