UNPKG

arx-convert

Version:

Converts various Arx Fatalis formats to JSON or YAML and back

66 lines 1.83 kB
import { BinaryIO } from './BinaryIO.js'; export class Color { static readFrom(binary, mode) { switch (mode) { case 'abgr': { const [a, b, g, r] = binary.readUint8Array(4); return { r, g, b, a: a / 255 }; } case 'bgra': { const [b, g, r, a] = binary.readUint8Array(4); return { r, g, b, a: a / 255 }; } case 'rgb': { const [r, g, b] = binary.readFloat32Array(3); return { r: Math.floor(r * 255), g: Math.floor(g * 255), b: Math.floor(b * 255), a: 1 }; } } } static accumulateFrom({ r, g, b, a }, mode) { const buffer = new ArrayBuffer(Color.sizeOf(mode)); const binary = new BinaryIO(buffer); switch (mode) { case 'abgr': { binary.writeUint8Array([a * 255, b, g, r]); break; } case 'bgra': { binary.writeUint8Array([b, g, r, a * 255]); break; } case 'rgb': { binary.writeFloat32Array([r / 255, g / 255, b / 255]); break; } } return buffer; } static sizeOf(mode) { switch (mode) { case 'abgr': case 'bgra': { return BinaryIO.sizeOfUint8Array(4); } case 'rgb': { return BinaryIO.sizeOfFloat32Array(3); } } } static get black() { return { r: 0, g: 0, b: 0, a: 1, }; } static get transparent() { return { r: 0, g: 0, b: 0, a: 0, }; } } //# sourceMappingURL=Color.js.map