diff --git a/src/ide/pixeleditor.ts b/src/ide/pixeleditor.ts index 21e58819..909a76b2 100644 --- a/src/ide/pixeleditor.ts +++ b/src/ide/pixeleditor.ts @@ -27,22 +27,23 @@ export type SelectableTilemap = { } export type PixelEditorImageFormat = { - w:number - h:number - count?:number - bpp?:number - np?:number - bpw?:number - sl?:number - pofs?:number - remap?:number[] - reindex?:number[] - brev?:boolean - flip?:boolean + w:number // width + h:number // height + count?:number // # of images + bpp?:number // bits per pixel + np?:number // number of planes + bpw?:number // bits per word + sl?:number // words per line + pofs?:number // plane offset + remap?:number[] // remap array + reindex?:number[] // reindex array + brev?:boolean // bit reverse (msb is leftmost) + flip?:boolean // flip vertically + skip?:number // skip bytes + wpimg?:number // words per image + aspect?:number // aspect ratio + xform?:string // CSS transform destfmt?:PixelEditorImageFormat - xform?:string - skip?:number - aspect?:number }; export type PixelEditorPaletteFormat = { @@ -162,12 +163,13 @@ export function convertWordsToImages(words:UintArray, fmt:PixelEditorImageFormat var mask = (1 << bpp)-1; var pofs = fmt.pofs || wordsperline*height*count; var skip = fmt.skip || 0; + var wpimg = fmt.wpimg || wordsperline*height; var images = []; for (var n=0; n 0 && fmt.sl) // TODO? - words = new Uint8Array(wordsperline*height*count); + words = new Uint8Array(wpimg*count); else if (bitsperword <= 8) - words = new Uint8Array(wordsperline*height*count*nplanes); + words = new Uint8Array(wpimg*count*nplanes); else - words = new Uint32Array(wordsperline*height*count*nplanes); + words = new Uint32Array(wpimg*count*nplanes); + for (var n=0; n number) {