@swf2es/format 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/LICENSE +202 -0
  2. package/LICENSE.third-party +35 -0
  3. package/README.md +22 -2
  4. package/dist/abc-names.d.ts +3 -0
  5. package/dist/abc-names.d.ts.map +1 -0
  6. package/dist/abc-names.js +127 -0
  7. package/dist/abc-names.js.map +1 -0
  8. package/dist/actions.d.ts +106 -0
  9. package/dist/actions.d.ts.map +1 -0
  10. package/dist/actions.js +223 -0
  11. package/dist/actions.js.map +1 -0
  12. package/dist/air-descriptor.d.ts +11 -0
  13. package/dist/air-descriptor.d.ts.map +1 -0
  14. package/dist/air-descriptor.js +64 -0
  15. package/dist/air-descriptor.js.map +1 -0
  16. package/dist/api-versions.d.ts +12 -0
  17. package/dist/api-versions.d.ts.map +1 -0
  18. package/dist/api-versions.js +23 -0
  19. package/dist/api-versions.js.map +1 -0
  20. package/dist/bitmap.d.ts +34 -0
  21. package/dist/bitmap.d.ts.map +1 -0
  22. package/dist/bitmap.js +200 -0
  23. package/dist/bitmap.js.map +1 -0
  24. package/dist/button.d.ts +39 -0
  25. package/dist/button.d.ts.map +1 -0
  26. package/dist/button.js +61 -0
  27. package/dist/button.js.map +1 -0
  28. package/dist/compression.d.ts +47 -0
  29. package/dist/compression.d.ts.map +1 -0
  30. package/dist/compression.js +201 -0
  31. package/dist/compression.js.map +1 -0
  32. package/dist/display.d.ts +106 -0
  33. package/dist/display.d.ts.map +1 -0
  34. package/dist/display.js +306 -0
  35. package/dist/display.js.map +1 -0
  36. package/dist/filters.d.ts +66 -0
  37. package/dist/filters.d.ts.map +1 -0
  38. package/dist/filters.js +137 -0
  39. package/dist/filters.js.map +1 -0
  40. package/dist/font.d.ts +60 -0
  41. package/dist/font.d.ts.map +1 -0
  42. package/dist/font.js +169 -0
  43. package/dist/font.js.map +1 -0
  44. package/dist/index.d.ts +27 -0
  45. package/dist/index.d.ts.map +1 -0
  46. package/dist/index.js +27 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/pbj.d.ts +178 -0
  49. package/dist/pbj.d.ts.map +1 -0
  50. package/dist/pbj.js +485 -0
  51. package/dist/pbj.js.map +1 -0
  52. package/dist/shape.d.ts +152 -0
  53. package/dist/shape.d.ts.map +1 -0
  54. package/dist/shape.js +412 -0
  55. package/dist/shape.js.map +1 -0
  56. package/dist/sound.d.ts +71 -0
  57. package/dist/sound.d.ts.map +1 -0
  58. package/dist/sound.js +92 -0
  59. package/dist/sound.js.map +1 -0
  60. package/dist/swf.d.ts +77 -0
  61. package/dist/swf.d.ts.map +1 -0
  62. package/dist/swf.js +164 -0
  63. package/dist/swf.js.map +1 -0
  64. package/dist/tags.d.ts +57 -0
  65. package/dist/tags.d.ts.map +1 -0
  66. package/dist/tags.js +59 -0
  67. package/dist/tags.js.map +1 -0
  68. package/dist/text.d.ts +75 -0
  69. package/dist/text.d.ts.map +1 -0
  70. package/dist/text.js +136 -0
  71. package/dist/text.js.map +1 -0
  72. package/dist/zip.d.ts +17 -0
  73. package/dist/zip.d.ts.map +1 -0
  74. package/dist/zip.js +92 -0
  75. package/dist/zip.js.map +1 -0
  76. package/package.json +33 -3
  77. package/src/abc-names.ts +138 -0
  78. package/src/actions.ts +319 -0
  79. package/src/air-descriptor.ts +84 -0
  80. package/src/api-versions.ts +27 -0
  81. package/src/bitmap.ts +259 -0
  82. package/src/button.ts +99 -0
  83. package/src/compression.ts +243 -0
  84. package/src/display.ts +419 -0
  85. package/src/filters.ts +206 -0
  86. package/src/font.ts +238 -0
  87. package/src/index.ts +151 -0
  88. package/src/pbj.ts +651 -0
  89. package/src/shape.ts +618 -0
  90. package/src/sound.ts +173 -0
  91. package/src/swf.ts +234 -0
  92. package/src/tags.ts +58 -0
  93. package/src/text.ts +213 -0
  94. package/src/zip.ts +135 -0
package/dist/font.js ADDED
@@ -0,0 +1,169 @@
1
+ // DefineFont through DefineFont3: a font's glyphs, the outlines a field that
2
+ // embeds it draws, and its layout, the advances, kerning, ascent and
3
+ // descent a field's text is laid out by.
4
+ import { readString, utf8 } from "./display.js";
5
+ import { readRecords } from "./shape.js";
6
+ import { SwfReader } from "./swf.js";
7
+ import { DefineFont, DefineFont3, DefineFontInfo2 } from "./tags.js";
8
+ import { readFontName } from "./text.js";
9
+ /** DefineFont4 (91): a name, style, and optional OpenType CFF bytes. */
10
+ export function readFont4(bytes, tag) {
11
+ const r = new SwfReader(bytes, tag.offset, tag.offset + tag.length);
12
+ const id = r.u16();
13
+ const flags = r.u8();
14
+ const name = readString(r);
15
+ return {
16
+ id,
17
+ name,
18
+ bold: (flags & 1) !== 0,
19
+ italic: (flags & 2) !== 0,
20
+ data: flags & 4 ? bytes.subarray(r.pos, r.end) : null,
21
+ };
22
+ }
23
+ /** DefineFont (10), whose first offset gives the glyph count; its name and codes come separately. */
24
+ function readFont1(bytes, tag) {
25
+ const r = new SwfReader(bytes, tag.offset, tag.offset + tag.length);
26
+ const font = {
27
+ id: r.u16(),
28
+ name: "",
29
+ bold: false,
30
+ italic: false,
31
+ em: 1024,
32
+ glyphs: [],
33
+ layout: false,
34
+ ascent: 0,
35
+ descent: 0,
36
+ leading: 0,
37
+ kerning: new Map(),
38
+ };
39
+ const table = r.pos;
40
+ const first = r.u16();
41
+ if (r.overrun || first < 2 || first % 2 !== 0 || table + first > r.end) {
42
+ return font;
43
+ }
44
+ const offsets = [first];
45
+ for (let i = 1; i < first / 2; i++) {
46
+ const offset = r.u16();
47
+ if (offset < offsets[i - 1] || table + offset > r.end) {
48
+ return font;
49
+ }
50
+ offsets.push(offset);
51
+ }
52
+ offsets.push(r.end - table);
53
+ for (let i = 0; i < offsets.length - 1; i++) {
54
+ const start = offsets[i];
55
+ const end = offsets[i + 1];
56
+ const records = readRecords(new SwfReader(bytes, table + start, table + end), 1).records;
57
+ font.glyphs.push({ code: -1, records, advance: 0, bounds: null });
58
+ }
59
+ return font;
60
+ }
61
+ /** DefineFontInfo (13) or DefineFontInfo2 (62); the latter has a language byte before its codes. */
62
+ export function readFontInfo(bytes, tag) {
63
+ const r = new SwfReader(bytes, tag.offset, tag.offset + tag.length);
64
+ const id = r.u16();
65
+ const length = r.u8();
66
+ const name = utf8(bytes.subarray(r.pos, Math.min(r.pos + length, r.end))).replace(/\0+$/, "");
67
+ r.pos += length;
68
+ const flags = r.u8();
69
+ if (tag.code === DefineFontInfo2) {
70
+ r.u8();
71
+ }
72
+ const codes = [];
73
+ const size = flags & 1 ? 2 : 1;
74
+ while (r.pos + size <= r.end) {
75
+ codes.push(size === 2 ? r.u16() : r.u8());
76
+ }
77
+ return { id, name, bold: (flags & 2) !== 0, italic: (flags & 4) !== 0, codes };
78
+ }
79
+ /** DefineFont (10), DefineFont2 (48) or DefineFont3 (75), as far as the tag goes. */
80
+ export function readFont(bytes, tag) {
81
+ if (tag.code === DefineFont) {
82
+ return readFont1(bytes, tag);
83
+ }
84
+ const named = readFontName(bytes, tag);
85
+ const r = new SwfReader(bytes, tag.offset, tag.offset + tag.length);
86
+ r.u16();
87
+ const flags = r.u8();
88
+ r.u8();
89
+ r.pos += 1 + r.u8();
90
+ const hasLayout = (flags & 0x80) !== 0;
91
+ const wideOffsets = (flags & 0x08) !== 0;
92
+ const wideCodes = (flags & 0x04) !== 0;
93
+ const count = r.u16();
94
+ const table = r.pos;
95
+ const offset = () => (wideOffsets ? r.u32() : r.u16());
96
+ const offsets = [];
97
+ for (let i = 0; i < count; i++) {
98
+ offsets.push(offset());
99
+ }
100
+ const codeTable = count > 0 ? offset() : 0;
101
+ const glyphs = [];
102
+ for (let i = 0; i < count; i++) {
103
+ const shape = new SwfReader(bytes, table + offsets[i], tag.offset + tag.length);
104
+ glyphs.push({ code: 0, records: readRecords(shape, 1).records, advance: 0, bounds: null });
105
+ }
106
+ const font = {
107
+ ...named,
108
+ em: tag.code === DefineFont3 ? 20480 : 1024,
109
+ glyphs,
110
+ layout: false,
111
+ ascent: 0,
112
+ descent: 0,
113
+ leading: 0,
114
+ kerning: new Map(),
115
+ };
116
+ if (count > 0) {
117
+ r.pos = table + codeTable;
118
+ }
119
+ const code = () => (wideCodes ? r.u16() : r.u8());
120
+ for (const glyph of glyphs) {
121
+ glyph.code = code();
122
+ }
123
+ if (!hasLayout || r.overrun) {
124
+ return font;
125
+ }
126
+ font.ascent = r.u16();
127
+ font.descent = r.u16();
128
+ font.leading = r.s16();
129
+ for (const glyph of glyphs) {
130
+ glyph.advance = r.s16();
131
+ }
132
+ for (const glyph of glyphs) {
133
+ glyph.bounds = r.rect();
134
+ }
135
+ const pairs = r.u16();
136
+ for (let i = 0; i < pairs && !r.overrun; i++) {
137
+ const first = code();
138
+ const second = code();
139
+ font.kerning.set((first << 16) | second, r.s16());
140
+ }
141
+ font.layout = !r.overrun;
142
+ return font;
143
+ }
144
+ /** The glyph for a character, by a binary search of the code table, as Flash finds it: null for one the font lacks. */
145
+ export function glyphOf(font, code) {
146
+ let lo = 0;
147
+ let hi = font.glyphs.length - 1;
148
+ while (lo <= hi) {
149
+ const mid = (lo + hi) >> 1;
150
+ const c = font.glyphs[mid].code;
151
+ if (c === code) {
152
+ return font.glyphs[mid];
153
+ }
154
+ if (c < code) {
155
+ lo = mid + 1;
156
+ }
157
+ else {
158
+ hi = mid - 1;
159
+ }
160
+ }
161
+ return null;
162
+ }
163
+ /** DefineFontAlignZones (73): the font it is for and its CSM hint; the zones themselves are not read. */
164
+ export function readFontAlignZones(bytes, tag) {
165
+ const r = new SwfReader(bytes, tag.offset, tag.offset + tag.length);
166
+ const id = r.u16();
167
+ return { id, csmHint: r.u8() >> 6 };
168
+ }
169
+ //# sourceMappingURL=font.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font.js","sourceRoot":"","sources":["../src/font.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Parsers for the SWF container and its tags: shapes, fonts, text, bitmaps,
3
+ * sounds, buttons and filters, a DoABC's bytes, which codegen parses, and
4
+ * the AVM1 action blocks, which it compiles; and Pixel Bender's bytecode,
5
+ * which a script hands flash.display.Shader. Also an AIR application's
6
+ * descriptor, and the ZIP archives AIR packages are.
7
+ * The compiler and the player both use this package, so it must stay free of
8
+ * DOM and node APIs.
9
+ */
10
+ export { abcReferences } from "./abc-names.js";
11
+ export { type ActionBlock, type ActionList, type ActionOwner, ButtonCondition, ClipEvent, readActions, } from "./actions.js";
12
+ export { type AirDescriptor, readAirDescriptor } from "./air-descriptor.js";
13
+ export { AIR_API_VERSION, API_VERSION, checkApiVersion } from "./api-versions.js";
14
+ export { type Bitmap, isBitmapTag, readBitmap } from "./bitmap.js";
15
+ export { BUTTON_DOWN, BUTTON_HIT_TEST, BUTTON_OVER, BUTTON_UP, type Button, type ButtonRecord, readButton, } from "./button.js";
16
+ export { CompressedDataError, CompressedDataTooLargeError, decompressSwf, decompressSwfPrefix, deflateCompress, LZMA_HEADER, lzmaByteArrayCompress, lzmaByteArrayUncompress, type ZlibLevel, zlibCompress, zlibUncompress, } from "./compression.js";
17
+ export { type Place, readBinaryData, readDoAbc, readExports, readFrameLabel, readPlace, readRemove, readScalingGrid, readSceneData, readSprite, readString, readSymbolClass, type SceneData, } from "./display.js";
18
+ export { type FilterColor, readFilters, type SwfFilter } from "./filters.js";
19
+ export { type Font, type Font4, type FontInfo, type Glyph, glyphOf, readFont, readFont4, readFontAlignZones, readFontInfo, } from "./font.js";
20
+ export { PBJ_RULES, PBJ_STRING, PBJ_TYPE_SIZES, PBJ_TYPES, type PbjCompute, PbjError, type PbjIf, type PbjInput, type PbjKernel, type PbjLoad, type PbjMetadata, PbjOp, type PbjOperation, type PbjParameter, type PbjRegister, type PbjRule, type PbjSample, type PbjSelect, pbjFloatType, readPbj, } from "./pbj.js";
21
+ export { type ColorTransform, type Fill, type Gradient, type GradientStop, IDENTITY, type Line, type Matrix, type MorphShape, readColorTransform, readMatrix, readMorphShape, readShape, type Shape, type ShapeRecord, } from "./shape.js";
22
+ export { type ButtonSounds, readButtonSound, readSound, readSoundInfo, readSoundStreamBlock, readSoundStreamHead, readStartSound, type Sound, type SoundEnvelopePoint, type SoundInfo, type SoundStreamBlock, type SoundStreamHead, type StartSound, } from "./sound.js";
23
+ export { backgroundColor, fileAttributes, isAs3, type Rect, readSwf, readSwfHeader, readTags, type Swf, type SwfCompression, type SwfHeader, SwfReader, type Tag, } from "./swf.js";
24
+ export * as tags from "./tags.js";
25
+ export { type CsmTextSettings, type EditText, type FontName, readCsmTextSettings, readEditText, readFontName, readStaticText, type StaticText, type TextRecord, } from "./text.js";
26
+ export { readZip, type ZipEntry, ZipError } from "./zip.js";
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Parsers for the SWF container and its tags: shapes, fonts, text, bitmaps,
3
+ * sounds, buttons and filters, a DoABC's bytes, which codegen parses, and
4
+ * the AVM1 action blocks, which it compiles; and Pixel Bender's bytecode,
5
+ * which a script hands flash.display.Shader. Also an AIR application's
6
+ * descriptor, and the ZIP archives AIR packages are.
7
+ * The compiler and the player both use this package, so it must stay free of
8
+ * DOM and node APIs.
9
+ */
10
+ export { abcReferences } from "./abc-names.js";
11
+ export { ButtonCondition, ClipEvent, readActions, } from "./actions.js";
12
+ export { readAirDescriptor } from "./air-descriptor.js";
13
+ export { AIR_API_VERSION, API_VERSION, checkApiVersion } from "./api-versions.js";
14
+ export { isBitmapTag, readBitmap } from "./bitmap.js";
15
+ export { BUTTON_DOWN, BUTTON_HIT_TEST, BUTTON_OVER, BUTTON_UP, readButton, } from "./button.js";
16
+ export { CompressedDataError, CompressedDataTooLargeError, decompressSwf, decompressSwfPrefix, deflateCompress, LZMA_HEADER, lzmaByteArrayCompress, lzmaByteArrayUncompress, zlibCompress, zlibUncompress, } from "./compression.js";
17
+ export { readBinaryData, readDoAbc, readExports, readFrameLabel, readPlace, readRemove, readScalingGrid, readSceneData, readSprite, readString, readSymbolClass, } from "./display.js";
18
+ export { readFilters } from "./filters.js";
19
+ export { glyphOf, readFont, readFont4, readFontAlignZones, readFontInfo, } from "./font.js";
20
+ export { PBJ_RULES, PBJ_STRING, PBJ_TYPE_SIZES, PBJ_TYPES, PbjError, PbjOp, pbjFloatType, readPbj, } from "./pbj.js";
21
+ export { IDENTITY, readColorTransform, readMatrix, readMorphShape, readShape, } from "./shape.js";
22
+ export { readButtonSound, readSound, readSoundInfo, readSoundStreamBlock, readSoundStreamHead, readStartSound, } from "./sound.js";
23
+ export { backgroundColor, fileAttributes, isAs3, readSwf, readSwfHeader, readTags, SwfReader, } from "./swf.js";
24
+ export * as tags from "./tags.js";
25
+ export { readCsmTextSettings, readEditText, readFontName, readStaticText, } from "./text.js";
26
+ export { readZip, ZipError } from "./zip.js";
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAIL,eAAe,EACf,SAAS,EACT,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAsB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAe,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EACL,WAAW,EACX,eAAe,EACf,WAAW,EACX,SAAS,EAGT,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,uBAAuB,EAEvB,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,cAAc,EACd,SAAS,EACT,WAAW,EACX,cAAc,EACd,SAAS,EACT,UAAU,EACV,eAAe,EACf,aAAa,EACb,UAAU,EACV,UAAU,EACV,eAAe,GAEhB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAoB,WAAW,EAAkB,MAAM,cAAc,CAAC;AAC7E,OAAO,EAKL,OAAO,EACP,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,SAAS,EACT,UAAU,EACV,cAAc,EACd,SAAS,EAET,QAAQ,EAMR,KAAK,EAOL,YAAY,EACZ,OAAO,GACR,MAAM,UAAU,CAAC;AAClB,OAAO,EAKL,QAAQ,EAIR,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,SAAS,GAGV,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,eAAe,EACf,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,GAOf,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,eAAe,EACf,cAAc,EACd,KAAK,EAEL,OAAO,EACP,aAAa,EACb,QAAQ,EAIR,SAAS,GAEV,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAIL,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,cAAc,GAGf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,OAAO,EAAiB,QAAQ,EAAE,MAAM,UAAU,CAAC"}
package/dist/pbj.d.ts ADDED
@@ -0,0 +1,178 @@
1
+ /** The parameter and metadata types, by their PBJ code, as ShaderParameterType names them. */
2
+ export declare const PBJ_TYPES: readonly [null, "float", "float2", "float3", "float4", "matrix2x2", "matrix3x3", "matrix4x4", "int", "int2", "int3", "int4", "string", "bool", "bool2", "bool3", "bool4"];
3
+ export declare const PBJ_STRING = 12;
4
+ /** How many numbers a value of each type holds, by code; 0 for a string. */
5
+ export declare const PBJ_TYPE_SIZES: number[];
6
+ /** Whether a type's numbers are floats, by code. */
7
+ export declare function pbjFloatType(type: number): boolean;
8
+ export declare const PbjOp: {
9
+ readonly nop: 0;
10
+ readonly add: 1;
11
+ readonly sub: 2;
12
+ readonly mul: 3;
13
+ readonly rcp: 4;
14
+ readonly div: 5;
15
+ readonly atan2: 6;
16
+ readonly pow: 7;
17
+ readonly mod: 8;
18
+ readonly min: 9;
19
+ readonly max: 10;
20
+ readonly step: 11;
21
+ readonly sin: 12;
22
+ readonly cos: 13;
23
+ readonly tan: 14;
24
+ readonly asin: 15;
25
+ readonly acos: 16;
26
+ readonly atan: 17;
27
+ readonly exp: 18;
28
+ readonly exp2: 19;
29
+ readonly log: 20;
30
+ readonly log2: 21;
31
+ readonly sqrt: 22;
32
+ readonly rsqrt: 23;
33
+ readonly abs: 24;
34
+ readonly sign: 25;
35
+ readonly floor: 26;
36
+ readonly ceil: 27;
37
+ readonly fract: 28;
38
+ readonly mov: 29;
39
+ readonly floatToInt: 30;
40
+ readonly intToFloat: 31;
41
+ readonly matMatMul: 32;
42
+ readonly vecMatMul: 33;
43
+ readonly matVecMul: 34;
44
+ readonly normalize: 35;
45
+ readonly length: 36;
46
+ readonly distance: 37;
47
+ readonly dot: 38;
48
+ readonly cross: 39;
49
+ readonly equal: 40;
50
+ readonly notEqual: 41;
51
+ readonly lessThan: 42;
52
+ readonly lessThanEqual: 43;
53
+ readonly logicalNot: 44;
54
+ readonly logicalAnd: 45;
55
+ readonly logicalOr: 46;
56
+ readonly logicalXor: 47;
57
+ readonly sampleNearest: 48;
58
+ readonly sampleLinear: 49;
59
+ readonly load: 50;
60
+ readonly select: 51;
61
+ readonly if: 52;
62
+ readonly else: 53;
63
+ readonly endIf: 54;
64
+ readonly floatToBool: 55;
65
+ readonly boolToFloat: 56;
66
+ readonly intToBool: 57;
67
+ readonly boolToInt: 58;
68
+ readonly vectorEqual: 59;
69
+ readonly vectorNotEqual: 60;
70
+ readonly any: 61;
71
+ readonly all: 62;
72
+ readonly kernelMetadata: 160;
73
+ readonly parameter: 161;
74
+ readonly parameterMetadata: 162;
75
+ readonly texture: 163;
76
+ readonly name: 164;
77
+ readonly version: 165;
78
+ };
79
+ /** A register an operation names. */
80
+ export interface PbjRegister {
81
+ index: number;
82
+ int: boolean;
83
+ /**
84
+ * A destination's channels, 0 to 3 for r to a, those its mask writes in
85
+ * order; a source's swizzle, four channels, of which `size` are its own:
86
+ * an operation reads as many as it writes, the rest by the swizzle's
87
+ * remaining bits, as Flash does.
88
+ */
89
+ channels: number[];
90
+ /** A source's own channels; a destination's channel count. */
91
+ size: number;
92
+ /** 2, 3 or 4 for a matrix of that size, its columns from `index` on; 0 otherwise. */
93
+ matrix: number;
94
+ }
95
+ /** An operation of a destination and a source, or of matrices. */
96
+ export interface PbjCompute {
97
+ op: number;
98
+ dst: PbjRegister;
99
+ src: PbjRegister;
100
+ }
101
+ export interface PbjLoad {
102
+ op: typeof PbjOp.load;
103
+ dst: PbjRegister;
104
+ /** A float, or an int as the 16 bits Flash keeps. */
105
+ value: number;
106
+ }
107
+ export interface PbjSample {
108
+ op: typeof PbjOp.sampleNearest | typeof PbjOp.sampleLinear;
109
+ dst: PbjRegister;
110
+ src: PbjRegister;
111
+ texture: number;
112
+ }
113
+ export interface PbjIf {
114
+ op: typeof PbjOp.if;
115
+ src: PbjRegister;
116
+ }
117
+ export interface PbjSelect {
118
+ op: typeof PbjOp.select;
119
+ dst: PbjRegister;
120
+ condition: PbjRegister;
121
+ a: PbjRegister;
122
+ b: PbjRegister;
123
+ }
124
+ export type PbjOperation = PbjCompute | PbjLoad | PbjSample | PbjIf | {
125
+ op: typeof PbjOp.else | typeof PbjOp.endIf;
126
+ } | PbjSelect;
127
+ /** A metadata value: a string, or its numbers, ints as the unsigned 16 bits PBJ stores. */
128
+ export interface PbjMetadata {
129
+ key: string;
130
+ type: number;
131
+ value: string | number[];
132
+ }
133
+ export interface PbjParameter {
134
+ name: string;
135
+ /** The type's code, PBJ_TYPES; one Flash does not know is kept, as it keeps it. */
136
+ type: number;
137
+ output: boolean;
138
+ register: PbjRegister;
139
+ /** Its metadata, from the second metadata opcode alone: Flash drops the first's here. */
140
+ metadata: PbjMetadata[];
141
+ }
142
+ export interface PbjInput {
143
+ name: string;
144
+ /** The texture's number, which sampling names and ShaderInput.index gives. */
145
+ index: number;
146
+ channels: number;
147
+ }
148
+ export interface PbjKernel {
149
+ /** The kernel's name, or null where it has none: ShaderData then has no `name`. */
150
+ name: string | null;
151
+ /** Every first-opcode metadata, an int or a string, which Flash gives the kernel wherever it stands. */
152
+ metadata: PbjMetadata[];
153
+ parameters: PbjParameter[];
154
+ inputs: PbjInput[];
155
+ operations: PbjOperation[];
156
+ }
157
+ /** Why Flash refuses a kernel: EOFError 2030 for bytes that end too soon, ArgumentError 2004 for anything else. */
158
+ export declare class PbjError extends Error {
159
+ readonly errorID: 2004 | 2030;
160
+ constructor(errorID: 2004 | 2030);
161
+ }
162
+ /**
163
+ * Which register kinds and sizes adl takes for each operation of one
164
+ * destination and one source, by opcode: `kinds` lists the destination's
165
+ * and the source's kinds as pairs, and `sizes` how the destination's
166
+ * channel count and the source's size may go together.
167
+ */
168
+ export interface PbjRule {
169
+ kinds: number[];
170
+ sizes: "same" | "any" | "scalar" | "vector" | "length" | "cross";
171
+ }
172
+ export declare const PBJ_RULES: Map<number, PbjRule>;
173
+ /**
174
+ * The kernel `bytes` hold, or PbjError with the error Flash refuses it
175
+ * with. Every byte is read: PBJ has no length, so it ends with the bytes.
176
+ */
177
+ export declare function readPbj(bytes: Uint8Array): PbjKernel;
178
+ //# sourceMappingURL=pbj.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pbj.d.ts","sourceRoot":"","sources":["../src/pbj.ts"],"names":[],"mappings":"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"}