0.0.22 • Published 6 months ago

pixi-basis-ktx2 v0.0.22

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

pixi-basis-ktx2

This package contains the parser for .basis & .ktx2 files, and it also ships with the transcoder.

Installation

npm install pixi-basis-ktx2

Usage

Import loadKTX2 and/or loadBasis it into your class and add them as pixi loader parser (Typescript example):

import {loadKTX2, loadBasis, detectKTX2, detectBasis, resolveKTX2TextureUrl } from 'pixi-basis-ktx2';
import * as Pixi from 'pixi.js';

constructor() {
    // Adding needed parsers & detections
    // KTX2
    Pixi.Assets.loader.parsers.push(loadKTX2);
    Pixi.Assets.detections.push(detectKTX2);
    Pixi.Assets.resolver.parsers.push(resolveKTX2TextureUrl);
    // Basis
    Pixi.Assets.loader.parsers.push(loadBasis);
    Pixi.Assets.detections.push(detectBasis);
    //Pixi already added .basis in compressed textures resolver
}

Import KTX2Parser and/or BasisParser it into your class and load the transcoders (Typescript example):

import {KTX2Parser, BasisParser} from 'pixi-basis-ktx2';

private async init(): Promise<void> {
    // KTX2
    await KTX2Parser.loadTranscoder('YOUR_URL_TO/basis_transcoder.js', 'YOUR_URL_TO/basis_transcoder.wasm');
    // Basis
    await BasisParser.loadTranscoder('YOUR_URL_TO/basis_transcoder.js', 'YOUR_URL_TO/basis_transcoder.wasm');
}

Load your .ktx2 and/or .basis file as Pixi Texture with Asset.load (Typescript example):

import * as Pixi from 'pixi.js';

private async loadTexture(): Promise<void> {
    // KTX2
    const textureKTXTwo = (await Pixi.Assets.load<Pixi.Texture>('YOUR_PATH_TO/image.ktx2'));
    // Basis
    const textureBasis = (await Pixi.Assets.load<Pixi.Texture>('YOUR_PATH_TO/image.basis'));
}

Load your .ktx2 and/or .basis file as Pixi AnimationSprite with Asset.load (Typescript example):

import * as Pixi from 'pixi.js';

private async loadSpriteAnimation(): Promise<void> {
    // KTX2
    const spritePaths = ["path/image1.ktx2", "path/image2.ktx2"];
    const textureArray: Pixi.Texture[] = [];
    for (let i = 0; i < spritePaths.length; i++) {
        const textureKTXTwo = new Pixi.Texture((await Pixi.Assets.load<Pixi.BaseTexture>(spritePaths[i])));
        textureArray.push(textureKTXTwo);
    }
    const spriteAnim = new Pixi.AnimatedSprite(textureArray);

    // Basis
    const spritePaths = ["path/image1.basis", "path/image2.basis"];
    const textureArray: Pixi.Texture[] = [];
    for (let i = 0; i < spritePaths.length; i++) {
        const textureBasis = new Pixi.Texture((await Pixi.Assets.load<Pixi.BaseTexture>(spritePaths[i])));
        textureArray.push(textureBasis);
    }
    const spriteAnim = new Pixi.AnimatedSprite(textureArray);
}

Load your .ktx2 and/or .basis array buffer data as Pixi Texture (Typescript example):

import { loadKTX2BufferToTexture, loadKTX2BufferToArray, loadBasisBufferToTexture, loadKTX2BufferToArray } from 'pixi-basis-ktx2';
import * as Pixi from 'pixi.js';

private async loadTextureFromBuffer(byteArr: Uint8Array, fileName: string): Promise<void> {
    // KTX2
    const textureKTXTwo = loadKTX2BufferToTexture(byteArr, fileName, Pixi.Assets.loader); // Texture
    const textureKTXTwoArr = loadKTX2BufferToArray(byteArr, fileName, Pixi.Assets.loader); // Texture[]
    // Basis
    const textureBasis = loadBasisBufferToTexture(byteArr, fileName, Pixi.Assets.loader); // Texture
    const textureBasisArr = loadKTX2BufferToArray(byteArr, fileName, Pixi.Assets.loader); // Texture[]
}
0.0.21

6 months ago

0.0.22

6 months ago

0.0.20

1 year ago

0.0.18

1 year ago

0.0.19

1 year ago

0.0.16

1 year ago

0.0.17

1 year ago

0.0.14

1 year ago

0.0.15

1 year ago

0.0.13

1 year ago

0.0.12

2 years ago

0.0.10

2 years ago

0.0.11

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.3

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.6

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago